*Code wurde PEP-8 gerecht formatiert * Kleine Fehler die der PyCharm Inspector beanstandet wurden korrigiert
91 lines
2.9 KiB
Python
91 lines
2.9 KiB
Python
# -*- encoding: utf-8 -*-
|
|
|
|
"""
|
|
Created on 19.09.2011
|
|
|
|
@author: christian
|
|
"""
|
|
# import stuff we need from django
|
|
from django.contrib import admin
|
|
from . import models, set_dirty
|
|
from forms import PlayerFormSet
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
def recalculate(modeladmin, request, queryset):
|
|
if isinstance(modeladmin, HanchanAdmin):
|
|
for hanchan in queryset:
|
|
hanchan.save()
|
|
elif isinstance(modeladmin, EventRankingAdmin):
|
|
for event_ranking in queryset:
|
|
set_dirty(event=event_ranking.event_id, user=event_ranking.user_id)
|
|
elif isinstance(modeladmin, KyuDanAdmin):
|
|
for kyu_dan_ranking in queryset:
|
|
set_dirty(user=kyu_dan_ranking.user_id)
|
|
elif isinstance(modeladmin, LadderSeasonAdmin):
|
|
for ranking_season in queryset:
|
|
set_dirty(season=ranking_season.id)
|
|
elif isinstance(modeladmin, LadderRankingAdmin):
|
|
for ladder_ranking in queryset:
|
|
set_dirty(user=ladder_ranking.user_id, season=ladder_ranking.season_id) # @IgnorePep8
|
|
recalculate.short_description = _("Recalculate")
|
|
|
|
|
|
class PlayerInline(admin.TabularInline):
|
|
extra = 4
|
|
formset = PlayerFormSet
|
|
readonly_fields = ('placement', 'kyu_points', 'dan_points', 'bonus_points',
|
|
'comment',)
|
|
max_num = 4
|
|
model = models.Player
|
|
|
|
|
|
class EventRankingAdmin(admin.ModelAdmin):
|
|
list_filter = ['event']
|
|
list_display = ('placement', 'user', 'event', 'avg_placement', 'avg_score',
|
|
'hanchan_count', 'good_hanchans', 'won_hanchans', 'dirty')
|
|
list_display_links = ('user',)
|
|
actions = [recalculate]
|
|
|
|
|
|
class HanchanAdmin(admin.ModelAdmin):
|
|
actions = [recalculate]
|
|
date_hierarchy = 'start'
|
|
list_filter = ['season', 'event']
|
|
list_display = ('event', 'start', 'player_names', 'comment',
|
|
'confirmed', 'valid', 'check_validity')
|
|
inlines = (PlayerInline,)
|
|
readonly_fields = ('valid', 'check_validity')
|
|
|
|
def save_formset(self, request, form, formset, change):
|
|
print "Custom save_formset"
|
|
formset.save()
|
|
form.is_valid()
|
|
form.save()
|
|
|
|
|
|
class KyuDanAdmin(admin.ModelAdmin):
|
|
actions = [recalculate]
|
|
list_display = ('user', 'kyu', 'kyu_points', 'dan', 'dan_points',
|
|
'hanchan_count', 'dirty')
|
|
|
|
|
|
class LadderRankingAdmin(admin.ModelAdmin):
|
|
actions = [recalculate]
|
|
list_display = ('placement', 'season', 'user', 'avg_placement',
|
|
'avg_score', 'hanchan_count', 'good_hanchans', 'won_hanchans', 'dirty')
|
|
list_display_links = ('user',)
|
|
list_filter = ('season',)
|
|
|
|
|
|
class LadderSeasonAdmin(admin.ModelAdmin):
|
|
actions = [recalculate]
|
|
list_display = ('name', 'start', 'end', 'dirty')
|
|
|
|
|
|
admin.site.register(models.EventRanking, EventRankingAdmin)
|
|
admin.site.register(models.Hanchan, HanchanAdmin)
|
|
admin.site.register(models.KyuDanRanking, KyuDanAdmin)
|
|
admin.site.register(models.LadderSeason, LadderSeasonAdmin)
|
|
admin.site.register(models.LadderRanking, LadderRankingAdmin)
|