def join(request,event_id,team_id=None,*args,**kwargs): show_teams = kwargs.get('show_teams') event = get_object_or_404(Event,pk=event_id) user = request.user is_team_admin = False context = {'tid' : team_id or 0} #Check is a team admin if show_teams is None: team_admin = Team.objects.filter(admin=user).values('id') is_team_admin = (len(team_admin) != 0) members = None else: team_admin = Team.objects.filter(admin=user).values('id','name') context.update({'team_select':team_admin}) if team_id is None: team_id = team_admin[0]['id'] team_name = team_admin[0]['name'] if team_id is not None: team = get_object_or_404(Team,pk=team_id,admin=request.user) context.update({'tid':team_id}) context.update({'tname':team.name}) members = team.members.all().values('id','first_name','last_name') members = [(i['id'], "{} {}".format(i['first_name'],i['last_name'])) for i in members] if request.method == "POST": se = ServiceEnrollment(user=user,event=event) form = ServiceEnrollmentForm(request.POST.copy(),instance=se,prefix="time") team_form = TeamForm(request.POST.copy(),members=members,prefix="team") # Single User if team_id is None and form.is_valid(): form.save() return redirect("/account/events/") #Team if team_id and form.is_valid() and team_form.is_valid(): for (member_id) in team_form.get_selected_members(): se = ServiceEnrollment(user_id=member_id,event=event,team=team) member_form = ServiceEnrollmentForm(request.POST.copy(),instance=se,prefix="time") if member_form.is_valid(): member_form.save() return redirect(team) else: form = ServiceEnrollmentForm(prefix="time") team_form = None if team_id: team_form = TeamForm(prefix="team",members=members) context.update({'tid':int(context['tid'])}) context.update({'event':event, 'user':user, 'form':form, 'team_form':team_form, 'is_team_admin':is_team_admin}) return render(request,'join_event.djhtml',context)
def join(request,event_id,team_id=None,*args,**kwargs): """ Whean a team wants to join an event """ show_teams = kwargs.get('show_teams') event = get_object_or_404(Event,pk=event_id) user = request.user is_team_admin = False context = {'tid' : team_id or 0} #Check is a team admin if show_teams is None: #Get the Team ids that this user administers """ SELECT `team_team`.`id` FROM `team_team` WHERE `team_team`.`admin_id` = 1 """ team_admin = Team.objects.filter(admin=user).values('id') print team_admin.query.__str__() is_team_admin = (len(team_admin) != 0) members = None else: team_admin = Team.objects.filter(admin=user).values('id','name') context.update({'team_select':team_admin}) if team_id is None: team_id = team_admin[0]['id'] team_name = team_admin[0]['name'] if team_id is not None: team = get_object_or_404(Team,pk=team_id,admin=request.user) context.update({'tid':team_id}) context.update({'tname':team.name}) #Get the names and ids of all the members """ SELECT `auth_user`.`id`, `auth_user`.`first_name`, `auth_user`.`last_name` FROM `auth_user` INNER JOIN `team_teammembership` ON (`auth_user`.`id` = `team_teammembership`.`member_id`) WHERE `team_teammembership`.`team_id` = 1 """ members = team.members.all().values('id','first_name','last_name') print members.query.__str__() members = [(i['id'], "{} {}".format(i['first_name'],i['last_name'])) for i in members] if request.method == "POST": se = ServiceEnrollment(user=user,event=event) form = ServiceEnrollmentForm(request.POST.copy(),instance=se,prefix="time") team_form = TeamForm(request.POST.copy(),members=members,prefix="team") # Single User if team_id is None and form.is_valid(): form.save() return redirect("/account/events/") #Team # Insert an enrollment for each team member if team_id and form.is_valid() and team_form.is_valid(): for (member_id) in team_form.get_selected_members(): se = ServiceEnrollment(user_id=member_id,event=event,team=team) member_form = ServiceEnrollmentForm(request.POST.copy(),instance=se,prefix="time") if member_form.is_valid(): member_form.save() return redirect(team) else: form = ServiceEnrollmentForm(prefix="time") team_form = None if team_id: team_form = TeamForm(prefix="team",members=members) context.update({'tid':int(context['tid'])}) context.update({'event':event, 'user':user, 'form':form, 'team_form':team_form, 'is_team_admin':is_team_admin}) return render(request,'join_event.djhtml',context)