Пример #1
0
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()
Пример #2
0
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'))
Пример #3
0
 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
Пример #4
0
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'))
Пример #5
0
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']