def members_view(request, member_type): registration_config, created = RegistrationConfig.objects.get_or_create( contest=request.contest) if member_type == 'teacher': members = User.objects.filter( teacher__contestteacher__contest=request.contest) key = registration_config.teacher_key is_registration_active = registration_config.is_active_teacher elif member_type == 'pupil': members = User.objects.filter(participant__contest=request.contest) key = registration_config.pupil_key is_registration_active = registration_config.is_active_pupil else: raise Http404 registration_link = request.build_absolute_uri( reverse( 'teachers_activate_member', kwargs={ 'contest_id': request.contest.id, 'key': key }, )) other_contests = Contest.objects.filter( contestteacher__teacher__user=request.user).exclude( id=request.contest.id) context = { 'member_type': member_type, 'members': members, 'registration_config': registration_config, 'registration_link': registration_link, 'other_contests': other_contests, 'is_registration_active': is_registration_active, } if 'oioioi.usergroups' in settings.INSTALLED_APPS: context['usergroups_active'] = True attached = usergroups.get_attached_usergroups(request.contest) rest = usergroups.get_owned_usergroups( request.user).exclude(id__in=attached) context['usergroups'] = attached context['usergroups_dropdown'] = rest context['has_usergroup'] = bool(attached or rest) return TemplateResponse(request, 'teachers/members.html', context)
def _assertGroupNotAttached(self, contest, group): self.assertFalse(utils.is_usergroup_attached(contest, group)) self.assertNotIn(group, utils.get_attached_usergroups(contest))
def _assertGroupAttached(self, contest, group): self.assertTrue(utils.is_usergroup_attached(contest, group)) self.assertIn(group, utils.get_attached_usergroups(contest))