Exemple #1
0
def register(request):
    """ Method who receive requests (post/get) from register.html
        create a player on post request """
    if request.method == 'POST':  # S'il s'agit d'une requête POST
        usr1 = PlayerForm(request.POST, prefix="usr1")
        reg1 = RegistrationForm(request.POST, prefix="reg1")
        usr2 = PlayerForm(request.POST, prefix="usr2")
        reg2 = RegistrationForm(request.POST, prefix="reg2")

        if 'solo_registration' in request.POST :
            usr2 = PlayerForm(prefix="usr2")
            reg2 = RegistrationForm(prefix="reg2")

        pair = PairRegistrationForm(request.POST)

        emailForm1 = EmailOldUserForm(prefix="email1")
        #Solo registration
        if 'solo_registration' in request.POST \
                and usr1.is_valid() and reg1.is_valid():
            new_user1 = User( \
                    firstname = usr1.cleaned_data['firstname'], \
                    lastname = usr1.cleaned_data['lastname'], \
                    gender = usr1.cleaned_data['gender'], \
                    birthdate = usr1.cleaned_data['birthdate'], \
                    address_street = usr1.cleaned_data['address_street'], \
                    address_number = usr1.cleaned_data['address_number'], \
                    address_box = usr1.cleaned_data['address_box'], \
                    city = usr1.cleaned_data['city'], \
                    country = usr1.cleaned_data['country'], \
                    zipcode = usr1.cleaned_data['zipcode'], \
                    email = usr1.cleaned_data['email'], \
                    phone = usr1.cleaned_data['phone'])
            new_user1.save()

            registration1 = UserRegistration( \
                    user = new_user1, \
                    season = settings.CURRENT_SEASON, \
                    bbq = reg1.cleaned_data['bbq'], \
                    level = reg1.cleaned_data['level'])
            registration1.save()

            assign_tournament_solo(new_user1)

            return redirect('players.views.payement', id_user1=new_user1.pk, id_registration1=registration1.pk,
                    id_user2=-1, id_registration2=-1, id_pair=-1)

        #Pair registration
        elif usr1.is_valid() and usr2.is_valid() \
                and reg1.is_valid() and reg2.is_valid() \
                and pair.is_valid():
            new_user1 = User( \
                    firstname = usr1.cleaned_data['firstname'], \
                    lastname = usr1.cleaned_data['lastname'], \
                    gender = usr1.cleaned_data['gender'], \
                    birthdate = usr1.cleaned_data['birthdate'], \
                    address_street = usr1.cleaned_data['address_street'], \
                    address_number = usr1.cleaned_data['address_number'], \
                    address_box = usr1.cleaned_data['address_box'], \
                    city = usr1.cleaned_data['city'], \
                    country = usr1.cleaned_data['country'], \
                    zipcode = usr1.cleaned_data['zipcode'], \
                    email = usr1.cleaned_data['email'], \
                    phone = usr1.cleaned_data['phone'])
            new_user1.save()

            registration1 = UserRegistration( \
                    user = new_user1, \
                    season = settings.CURRENT_SEASON, \
                    bbq = reg1.cleaned_data['bbq'], \
                    level = reg1.cleaned_data['level'])
            registration1.save()

            new_user2 = User( \
                    firstname = usr2.cleaned_data['firstname'], \
                    lastname = usr2.cleaned_data['lastname'], \
                    gender = usr2.cleaned_data['gender'], \
                    birthdate = usr2.cleaned_data['birthdate'], \
                    address_street = usr2.cleaned_data['address_street'], \
                    address_number = usr2.cleaned_data['address_number'], \
                    address_box = usr2.cleaned_data['address_box'], \
                    city = usr2.cleaned_data['city'], \
                    country = usr2.cleaned_data['country'], \
                    zipcode = usr2.cleaned_data['zipcode'], \
                    email = usr2.cleaned_data['email'], \
                    phone = usr2.cleaned_data['phone'])
            new_user2.save()

            registration2 = UserRegistration( \
                    user = new_user2, \
                    season = settings.CURRENT_SEASON, \
                    bbq = reg2.cleaned_data['bbq'], \
                    level = reg2.cleaned_data['level'])
            registration2.save()

            pair = Pair(player1 = new_user1, player2 = new_user2, \
                    average = 0.0, \
                    season = settings.CURRENT_SEASON, \
                    comment = pair.cleaned_data['comment'])
            pair.save()

            assign_tournament(pair)

            return redirect('players.views.payement', id_user1=new_user1.pk, id_user2=new_user2.pk,
                id_registration1=registration1.pk, id_registration2=registration2.pk, id_pair=pair.pk)

    else:
        usr1 = PlayerForm(prefix="usr1")
        reg1 = RegistrationForm(prefix="reg1")
        usr2 = PlayerForm(prefix="usr2")
        reg2 = RegistrationForm(prefix="reg2")
        pair = PairRegistrationForm()
        emailForm1 = EmailOldUserForm(prefix="email1")

        trn_open = Tournament.objects.filter(is_open=True).count()

        if trn_open == 0  :
            return render(request, 'players/no_tournament_open.html')

    return render(request, 'players/register.html', {
        "usr1": usr1,
        "reg1": reg1,
        "usr2": usr2,
        "reg2": reg2,
        "pair": pair,
        "email1": emailForm1,
            })
Exemple #2
0
def particular_player(request, page_id, player_id):
    """Page showing information for a particular player."""
    players_per_page = 10   #Number of players displayed by page

    number_players = User.objects.count()
    number_pages = ceil(number_players/players_per_page) #Number of pages for the navbar

    extremity1 = 0+(int(page_id)-1)*players_per_page    #Range
    extremity2 = (int(page_id)*players_per_page)-1
    players = User.objects.order_by('lastname', 'firstname').all()[extremity1:extremity2]
    player = User.objects.filter(id=player_id).get()

    if not request.user.is_authenticated():
        return redirect('staff.views.login_staff')

    if request.method == 'POST':
        player = get_object_or_404(User, pk=player_id)
        form = PlayerForm(request.POST, player_id=player_id, instance=player)
        user_reg = get_object_or_404(UserRegistration, user=player, season=settings.CURRENT_SEASON)
        reg_form = RegistrationForm(request.POST, user_reg_id=user_reg.pk, instance=user_reg)
        pair_form = AssignPairForm(request.POST)
        if pair_form.is_valid():
            other_player=pair_form.cleaned_data['other_player'].player
            solo = SoloParticipant.objects.get(player=player)
            solo.delete()
            SoloParticipant.objects.get(player=other_player).delete()
            Pair(player1=player, player2=other_player, average=0, season=settings.CURRENT_SEASON).save()
            user_id = request.user.pk
            user = Django_User.objects.get(pk=user_id)
            log_message = user.first_name + " " + user.last_name + "assigned to a pair on " + time.strftime("%c") + "\n"
            player.log = player.log + log_message
            player.save()
        if form.is_valid():
            user_id = request.user.pk
            user = Django_User.objects.get(pk=user_id)
            log_message = user.first_name + " " + user.last_name + "edited on " + time.strftime("%c") + "\n"
            player.log = player.log + log_message
            player.save()
            obj = form.save()
        if reg_form.is_valid():
            obj2 = reg_form.save()
            user_id = request.user.pk
            user = Django_User.objects.get(pk=user_id)
            log_message = user.first_name + " " + user.last_name + "edited on " + time.strftime("%c") + "\n"
            player.log = player.log + log_message
            player.save()
    player_pairs = Pair.objects.filter(season=settings.CURRENT_SEASON).filter(Q(player1=player) | Q(player2=player))
    if player_pairs.count() == 0:
        player_pairs=None
    user_reg = UserRegistration.objects.get(user=player, season=settings.CURRENT_SEASON)
    form = PlayerForm(player_id=player.id)
    reg_form = RegistrationForm(user_reg_id = user_reg.pk)
    pair_form = AssignPairForm()
    return render(request, 'staff/particular_player.html', { \
        'player':player, \
        'form':form,
        'players':players ,
        'player_pairs': player_pairs,
        'page_id':int(page_id),
        'number_pages':number_pages,
        'n':range(1, number_pages+1),
        'prev':int(page_id)-1,
        'next':int(page_id)+1,
        'reg_form': reg_form,
        'pair_form':pair_form
        })