예제 #1
0
파일: views.py 프로젝트: kish9nine/groupfit
def view_group(request, group_pk):
    """
    This view simply displays the group page to the user, depending on the
    request pk.
    """

    date = datetime.date.today()
    start_of_week = date - datetime.timedelta( 7 )

    group = get_object_or_404( WorkoutGroup, pk=group_pk )
    member_workouts = {}
    for member in group.members.all():
        workouts = member.workout_set.all()
        member_workouts[member] = workouts

    if request.method == 'POST':
        if 'new-goal-submit' in request.POST:
            goal_form = WorkoutGoalForm(request.POST)
            if goal_form.is_valid():
                goal = goal_form.save(commit=False)
                goal.save()
                group.goals.add( goal )
                return redirect('groups.views.view_group', group.pk)
        else:
            goal_form = WorkoutGoalForm() 
        
        if 'new-member-submit' in request.POST:
            new_member_form = EmailForm(request.POST)
            if new_member_form.is_valid():
                new_member_email = new_member_form.cleaned_data.get('email')
                new_user = User.objects.get(email = new_member_email)
                new_member = UserProfile.objects.get(user=new_user)
                group.members.add(new_member)
                return redirect('groups.views.view_group', group.pk)
        else:
            new_member_form = EmailForm()
    else:
        goal_form = WorkoutGoalForm()
        new_member_form = EmailForm()
        

    completed_goals = group.goals.filter(achieved=True)
        

    return render(request, 'view_group.html', {
        'group': group,
        'goal_form' : goal_form,
        'member_workouts' : member_workouts,
        'completed_goals' : completed_goals,
        "new_member_form" : new_member_form,
    },
    )