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, }, )