Stylesheets werden nur mit Less erzeugt. Damit können sie gleich
optimiert werden. jQuery wurde entfernt. Übersetzungen wurden korrigiert. Neue sync.sh Datei, welche änderungen mit rsync auf den Server spielt und das neuladen erzwingt.
This commit is contained in:
60
maistar_ranking/managers.py
Normal file
60
maistar_ranking/managers.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
"""
|
||||
Created on 22.11.2014
|
||||
|
||||
@author: christian
|
||||
"""
|
||||
from django.db import models
|
||||
|
||||
from . import settings
|
||||
|
||||
|
||||
class GameManager(models.Manager):
|
||||
use_for_related_fields = True
|
||||
|
||||
def player_games(self, player, season=None, **kwargs):
|
||||
queryset = self.filter(
|
||||
models.Q(player1=player) | models.Q(player2=player) |
|
||||
models.Q(player3=player) | models.Q(player4=player) |
|
||||
models.Q(player5=player) | models.Q(player6=player)
|
||||
)
|
||||
if season:
|
||||
queryset = queryset.filter(season=season)
|
||||
if kwargs:
|
||||
queryset = queryset.filter(**kwargs)
|
||||
return queryset
|
||||
|
||||
|
||||
class LadderManager(models.Manager):
|
||||
use_for_related_fields = True
|
||||
|
||||
def calculate_rankings(self, season):
|
||||
"""
|
||||
Berechnet die Jahresrankings für die Spieler neu.
|
||||
@param season: Das Jahr das neu berechnet werden soll
|
||||
@type season: Integer
|
||||
"""
|
||||
rankings = self.filter(season=season)
|
||||
rankings.update(placement=None)
|
||||
rankings = rankings.filter(
|
||||
games_count__gte=settings.MAISTAR_GAMES_FOR_LADDERRANKING) # @IgnorePep8
|
||||
rankings = rankings.order_by('avg_placement', '-avg_score')
|
||||
placement = 1
|
||||
previous_avg_placement = None
|
||||
previous_avg_score = None
|
||||
previous_placement = None
|
||||
for ranking in rankings:
|
||||
if ranking.avg_placement == previous_avg_placement \
|
||||
and ranking.avg_score == previous_avg_score:
|
||||
ranking.placement = previous_placement
|
||||
else:
|
||||
ranking.placement = placement
|
||||
ranking.save(force_update=True)
|
||||
previous_avg_placement = ranking.avg_placement
|
||||
previous_avg_score = ranking.avg_score
|
||||
previous_placement = ranking.placement
|
||||
placement += 1
|
||||
|
||||
def get_seasons(self):
|
||||
return self.values_list('season', flat=True).order_by(
|
||||
'season').distinct()
|
||||
Reference in New Issue
Block a user