Beispiel #1
0
    def test_populate_event_registration_users_with_grade(self):
        """Test that grades get correctly populated in registration users"""
        event = Event.objects.get(title='POOLS_WITH_REGISTRATIONS')
        pool = event.pools.first()
        grade = AbakusGroup.objects.create(name='DummyGrade', type=GROUP_GRADE)
        other_abakus_group = AbakusGroup.objects.create(name='DummyGroup',
                                                        type=GROUP_OTHER)
        grade_values = {'id': grade.id, 'name': 'DummyGrade'}
        reg1, reg2 = event.registrations.filter(pool=pool)[:2]
        grade.add_user(reg1.user)
        other_abakus_group.add_user(reg1.user)
        other_abakus_group.add_user(reg2.user)
        event_dict = EventAdministrateSerializer(event).data

        populated_event = populate_event_registration_users_with_grade(
            event_dict)

        for populated_pool in populated_event['pools']:
            if pool.id == populated_pool['id']:
                for populated_registration in populated_pool['registrations']:
                    user_grade = populated_registration['user']['grade']
                    if reg1.id == populated_registration['id']:
                        self.assertEqual(user_grade, grade_values)
                    else:
                        self.assertEqual(user_grade, None)
Beispiel #2
0
 def administrate(self, request, *args, **kwargs):
     event_id = self.kwargs.get("pk", None)
     serializer = EventAdministrateSerializer
     queryset = Event.objects.filter(pk=event_id).prefetch_related(
         "pools__permission_groups",
         Prefetch(
             "pools__registrations",
             queryset=Registration.objects.select_related("user").prefetch_related(
                 "user__abakus_groups"
             ),
         ),
         Prefetch(
             "registrations", queryset=Registration.objects.select_related("user")
         ),
     )
     event = queryset.first()
     if (
         event.use_contact_tracing
         and request.user == event.created_by
         and timezone.now() <= event.end_time + timezone.timedelta(days=14)
     ):
         serializer = EventAdministrateExportSerializer
     event_data = serializer(event).data
     event_data = populate_event_registration_users_with_grade(event_data)
     return Response(event_data)
Beispiel #3
0
    def test_populate_event_registration_users_with_grade(self):
        """Test that grades get correctly populated in registration users"""
        event = Event.objects.get(title="POOLS_WITH_REGISTRATIONS")
        pool = event.pools.first()
        grade = AbakusGroup.objects.create(name="DummyGrade", type=GROUP_GRADE)
        other_abakus_group = AbakusGroup.objects.create(name="DummyGroup",
                                                        type=GROUP_OTHER)
        grade_values = {"id": grade.id, "name": "DummyGrade"}
        reg1, reg2 = event.registrations.filter(pool=pool)[:2]
        grade.add_user(reg1.user)
        other_abakus_group.add_user(reg1.user)
        other_abakus_group.add_user(reg2.user)
        event_dict = EventAdministrateSerializer(event).data

        populated_event = populate_event_registration_users_with_grade(
            event_dict)

        for populated_pool in populated_event["pools"]:
            if pool.id == populated_pool["id"]:
                for populated_registration in populated_pool["registrations"]:
                    user_grade = populated_registration["user"]["grade"]
                    if reg1.id == populated_registration["id"]:
                        self.assertEqual(user_grade, grade_values)
                    else:
                        self.assertEqual(user_grade, None)
Beispiel #4
0
 def administrate(self, request, *args, **kwargs):
     event_id = self.kwargs.get('pk', None)
     queryset = Event.objects.filter(pk=event_id).prefetch_related(
         'pools__permission_groups',
         Prefetch(
             'pools__registrations', queryset=Registration.objects.select_related('user').
             prefetch_related('user__abakus_groups')
         ),
         Prefetch('registrations', queryset=Registration.objects.select_related('user')),
     )
     event = queryset.first()
     event_data = self.get_serializer(event).data
     event_data = populate_event_registration_users_with_grade(event_data)
     return Response(event_data)
Beispiel #5
0
    def test_populate_event_registration_users_with_grade_without_grades(self):
        """Test that grade is None for registration users when they are not in grade"""
        event = Event.objects.get(title='POOLS_WITH_REGISTRATIONS')
        pool = event.pools.first()
        other_abakus_group = AbakusGroup.objects.create(name='DummyGroup', type=GROUP_OTHER)
        reg1, reg2 = event.registrations.filter(pool=pool)[:2]
        other_abakus_group.add_user(reg1.user)
        other_abakus_group.add_user(reg2.user)
        event_dict = EventAdministrateSerializer(event).data

        populated_event = populate_event_registration_users_with_grade(event_dict)

        for populated_pool in populated_event['pools']:
            if pool.id == populated_pool['id']:
                for populated_registration in populated_pool['registrations']:
                    user_grade = populated_registration['user']['grade']
                    self.assertEqual(user_grade, None)