65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
# -*- encoding: utf-8 -*-
|
|
"""
|
|
Created on 19.09.2011
|
|
|
|
@author: christian
|
|
"""
|
|
|
|
from django.contrib import admin
|
|
from django.utils.translation import ugettext as _
|
|
|
|
from . import forms, models
|
|
|
|
|
|
def recalculate(modeladmin, request, queryset): # @UnusedVariable
|
|
if isinstance(modeladmin, RankingAdmin):
|
|
seasons = set()
|
|
for ranking in queryset:
|
|
ranking.recalculate()
|
|
seasons.add(ranking.season)
|
|
for season in seasons:
|
|
models.Ranking.objects.calculate_rankings(season)
|
|
|
|
|
|
recalculate.short_description = _("Recalculate")
|
|
|
|
|
|
class RankingAdmin(admin.ModelAdmin):
|
|
actions = [recalculate]
|
|
list_display = (
|
|
'season', 'placement', 'user', 'avg_placement', 'avg_score',
|
|
'games_count', 'games_good', 'games_won'
|
|
)
|
|
list_display_links = ('user',)
|
|
list_filter = ['season']
|
|
|
|
|
|
class GameAdmin(admin.ModelAdmin):
|
|
actions = [recalculate]
|
|
# date_hierarchy = 'event__start'
|
|
fields = (
|
|
'event',
|
|
('player1', 'player1_score', 'player1_placement'),
|
|
('player2', 'player2_score', 'player2_placement'),
|
|
('player3', 'player3_score', 'player3_placement'),
|
|
('player4', 'player4_score', 'player4_placement'),
|
|
('player5', 'player5_score', 'player5_placement'),
|
|
('player6', 'player6_score', 'player6_placement'),
|
|
'comment',
|
|
'confirmed'
|
|
)
|
|
form = forms.GameForm
|
|
list_display = ('event', 'season', 'player_names', 'comment', 'confirmed')
|
|
readonly_fields = (
|
|
'player1_placement', 'player2_placement', 'player3_placement',
|
|
'player4_placement', 'player5_placement', 'player6_placement'
|
|
)
|
|
search_fields = [
|
|
'player1__username', 'player2__username', 'player3__username',
|
|
'player4__username', 'player5__username', 'player6__username'
|
|
]
|
|
|
|
|
|
admin.site.register(models.Game, GameAdmin)
|
|
admin.site.register(models.Ranking, RankingAdmin)
|