Esempio n. 1
0
def competition_details(request, event_id, competition_id):
    # Get competition
    competition = competition_times_formatter(
        get_object_or_404(Competition,
                          pk=int(competition_id),
                          active=True,
                          event_id=int(event_id)))

    # Check if user can participate (deadline not caught yet)
    can_participate = False
    if timezone.now() < competition.participation_end:
        can_participate = True

    # Handle signup form
    if request.method == 'POST' and can_participate:
        # Make sure user is authenticated
        if not request.user.is_active or not request.user.is_authenticated():
            raise Http403

        # Handle post data
        participationform = ParticipationForm(request.POST)
        if participationform.is_valid():
            p = participationform.save(commit=False)
            p.competition = competition
            p.user = request.user
            p.save()
            return HttpResponseRedirect(
                reverse('km:competition', args=(
                    event_id,
                    competition_id,
                )))
    else:
        participationform = ParticipationForm()

    # Get all participants
    participants = CompetitionParticipation.objects.filter(
        competition=competition)

    # Check if user has participated
    signed_up = False
    participation = None
    if request.user.is_active and request.user.is_authenticated():
        try:
            participation = CompetitionParticipation.objects.get(
                competition=competition, user=request.user)
            signed_up = True
        except CompetitionParticipation.DoesNotExist:
            pass

    # All done, dump template
    return render(
        request, 'kompomaatti/competition_details.html', {
            'sel_event_id': int(event_id),
            'competition': competition,
            'participation': participation,
            'signed_up': signed_up,
            'can_participate': can_participate,
            'participationform': participationform,
            'participants': participants,
        })
Esempio n. 2
0
def competitions(request, event_id):
    # Get competitions
    competitions = []
    for competition in Competition.objects.filter(active=True, event_id=int(event_id)):
        competitions.append(competition_times_formatter(competition))
    
    # Dump the template
    return render(request, 'kompomaatti/competitions.html', {
        'sel_event_id': int(event_id),
        'competitions': competitions,
    })
Esempio n. 3
0
def competitions(request, event_id):
    # Get competitions
    competitions = []
    for competition in Competition.objects.filter(active=True, event_id=int(event_id)):
        competitions.append(competition_times_formatter(competition))
    
    # Dump the template
    return render(request, 'kompomaatti/competitions.html', {
        'sel_event_id': int(event_id),
        'competitions': competitions,
    })
Esempio n. 4
0
def competition_details(request, event_id, competition_id):
    # Get competition
    competition = competition_times_formatter(get_object_or_404(Competition, pk=int(competition_id), active=True, event_id=int(event_id)))
    
    # Check if user can participate (deadline not caught yet)
    can_participate = False
    if datetime.now() < competition.participation_end:
        can_participate = True
        
    # Handle signup form
    if request.method == 'POST' and can_participate:
        # Make sure user is authenticated
        if not request.user.is_active or not request.user.is_authenticated():
            raise Http403
        
        # Handle post data
        participationform = ParticipationForm(request.POST)
        if participationform.is_valid():
            p = participationform.save(commit=False)
            p.competition = competition
            p.user = request.user
            p.save()
            return HttpResponseRedirect(reverse('km:competition', args=(event_id, competition_id,)))
    else:
        participationform = ParticipationForm()
    
    # Get all participants
    participants = CompetitionParticipation.objects.filter(competition=competition)
    
    # Check if user has participated
    signed_up = False
    participation = None
    if request.user.is_active and request.user.is_authenticated():
        try:
            participation = CompetitionParticipation.objects.get(competition=competition, user=request.user)
            signed_up = True
        except CompetitionParticipation.DoesNotExist:
            pass
    
    # All done, dump template
    return render(request, 'kompomaatti/competition_details.html', {
        'sel_event_id': int(event_id),
        'competition': competition,
        'participation': participation,
        'signed_up': signed_up,
        'can_participate': can_participate,
        'participationform': participationform,
        'participants': participants,
    })