예제 #1
0
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)
예제 #2
0
 def _assertGroupNotAttached(self, contest, group):
     self.assertFalse(utils.is_usergroup_attached(contest, group))
     self.assertNotIn(group, utils.get_attached_usergroups(contest))
예제 #3
0
 def _assertGroupAttached(self, contest, group):
     self.assertTrue(utils.is_usergroup_attached(contest, group))
     self.assertIn(group, utils.get_attached_usergroups(contest))