def competition(request, competition=None, email=None, userid=None): if email: user = CustomUser.objects.get(email=email) elif userid: user = CustomUser.objects.get(id=userid) email = user.email else: user = request.user if user.is_anonymous(): messages.error(request, "You must be logged in to view the competition") return redirect(reverse('home')) competition = Competition.objects.get(pk=competition) current = getCurrentTable() last = getPreviousTable(competition=competition) try: prediction = Prediction.objects\ .filter(competition=competition, user=user).get() predictions = prediction.in_context() entered = True except Prediction.DoesNotExist: prediction = Prediction.objects\ .filter(competition=competition) if prediction.count(): prediction = prediction[0] predictions = prediction.in_context() entered = False final = prediction.last_used_table max_goal_diff = current.max_goal_diff(last) return locals()
def logged_in(request): if request.user.is_superuser: logout(request) return redirect(reverse('home')) fb = _get_facebook_cookie(request.COOKIES) if request.user.is_authenticated(): if request.user.has_prediction(): current = getCurrentTable() leagues = request.user.leagues_by_state(STATE_ACCEPTED) my_leagues = leagues.filter(owner=request.user) now = datetime.datetime.now() open_or_entered = Q(start_date__lt=now, close_date__gt=now) | \ Q(start_date__lt=now, competition_date__gt=now, prediction__user=request.user) open_comps = Competition.objects\ .filter(start_date__lt=now, competition_date__gt=now)\ .distinct()\ .order_by('competition_date') open_comps = _decorate_with_predictions(open_comps, request.user) closed_comps = Competition.objects\ .filter(competition_date__lt=now)\ .exclude(pk=settings.FIRST_COMPETITION_ID)\ .all() closed_comps = _decorate_with_predictions(closed_comps, request.user) future_comps = Competition.objects\ .filter(competition_date__gt=now, start_date__gt=now).all() open_and_closed_comps = list(chain(open_comps, closed_comps)) return locals() else: return redirect(reverse('home'))
def __init__(self, *args, **kw): default_table = kw.pop('default_table', None) if not default_table: default_table = getCurrentTable() super(PredictionForm, self).__init__(*args, **kw) choices = [(t.id, t.name) for t in default_table\ .ordered_teams.all()] self.fields['prediction'].choices = choices
def closed_competitions(request): if request.user.is_authenticated()\ and request.user.has_prediction(): current = getCurrentTable() leagues = request.user.leagues_by_state(STATE_ACCEPTED) my_leagues = leagues.filter(owner=request.user) now = datetime.datetime.now() closed_comps = Competition.objects\ .filter(competition_date__lt=now)\ .exclude(pk=settings.FIRST_COMPETITION_ID)\ .all() closed_comps = _decorate_with_predictions(closed_comps, request.user) return locals() else: return redirect(reverse('make_prediction'))
class PredictionForm(TemplatedForm): _choices = [(t.id, t.name) for t in getCurrentTable()\ .teams.all().order_by('name')] prediction = forms.MultipleChoiceField(label="", choices=_choices, widget=HiddenSelectMultiple) def __init__(self, *args, **kw): default_table = kw.pop('default_table', None) if not default_table: default_table = getCurrentTable() super(PredictionForm, self).__init__(*args, **kw) choices = [(t.id, t.name) for t in default_table\ .ordered_teams.all()] self.fields['prediction'].choices = choices def save(self, domain_override=""): return self.cleaned_data['prediction']