Пример #1
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
        })