def test_bulk_workgroup_change_with_all_from_workgroup_list(self):
        #phew thats one hell of a test name
        from aristotle_mdr.utils.cached_querysets import register_queryset

        self.new_workgroup = models.Workgroup.objects.create(name="new workgroup")
        self.new_workgroup.submitters.add(self.editor)
        self.login_editor()

        self.assertTrue(self.item1.concept not in self.new_workgroup.items.all())
        self.assertTrue(self.item2.concept not in self.new_workgroup.items.all())
        self.assertTrue(self.item4.concept not in self.new_workgroup.items.all())

        qs = self.wg1.items.all()

        response = self.client.post(
            reverse('aristotle:bulk_action'),
            {
                'bulkaction': 'aristotle_mdr.forms.bulk_actions.ChangeWorkgroupForm',
                'items': qs,
                'workgroup': [self.new_workgroup.id],
                "confirmed": True,
                'qs': register_queryset(qs),
                'all_in_queryset': True
            },
            follow=True
        )

        self.assertTrue(self.item1.concept in self.new_workgroup.items.all())
        self.assertTrue(self.item2.concept in self.new_workgroup.items.all())
        self.assertTrue(self.item4.concept not in self.new_workgroup.items.all())


        self.logout()
        self.login_superuser()

        qs = self.new_workgroup.items.all()

        self.client.post(
            reverse('aristotle:bulk_action'),
            {
                'bulkaction': 'aristotle_mdr.forms.bulk_actions.ChangeWorkgroupForm',
                'items': [],
                'workgroup': [self.wg1.pk],
                "confirmed": True,
                'qs': register_queryset(qs),
                'all_in_queryset': True
            },
            follow=True
        )

        self.assertTrue(self.item1.concept in self.wg1.items.all())
        self.assertTrue(self.item2.concept in self.wg1.items.all())
        self.assertTrue(self.item4.concept not in self.wg1.items.all())
Exemple #2
0
    def test_bulk_workgroup_change_with_all_from_workgroup_list(self):
        #phew thats one hell of a test name
        from aristotle_mdr.utils.cached_querysets import register_queryset

        self.new_workgroup = models.Workgroup.objects.create(
            name="new workgroup")
        self.new_workgroup.submitters.add(self.editor)
        self.login_editor()

        self.assertTrue(
            self.item1.concept not in self.new_workgroup.items.all())
        self.assertTrue(
            self.item2.concept not in self.new_workgroup.items.all())
        self.assertTrue(
            self.item4.concept not in self.new_workgroup.items.all())

        qs = self.wg1.items.all()

        response = self.client.post(reverse('aristotle:bulk_action'), {
            'bulkaction':
            'aristotle_mdr.forms.bulk_actions.ChangeWorkgroupForm',
            'items': qs,
            'workgroup': [self.new_workgroup.id],
            "confirmed": True,
            'qs': register_queryset(qs),
            'all_in_queryset': True
        },
                                    follow=True)

        self.assertTrue(self.item1.concept in self.new_workgroup.items.all())
        self.assertTrue(self.item2.concept in self.new_workgroup.items.all())
        self.assertTrue(
            self.item4.concept not in self.new_workgroup.items.all())

        self.logout()
        self.login_superuser()

        qs = self.new_workgroup.items.all()

        response = self.client.post(reverse('aristotle:bulk_action'), {
            'bulkaction':
            'aristotle_mdr.forms.bulk_actions.ChangeWorkgroupForm',
            'items': [],
            'workgroup': [self.wg1.pk],
            "confirmed": True,
            'qs': register_queryset(qs),
            'all_in_queryset': True
        },
                                    follow=True)

        self.assertTrue(self.item1.concept in self.wg1.items.all())
        self.assertTrue(self.item2.concept in self.wg1.items.all())
        self.assertTrue(self.item4.concept not in self.wg1.items.all())
    def build_downloaders(self, queryset):
        downloaders = fetch_aristotle_downloaders()

        from aristotle_mdr.utils.cached_querysets import register_queryset
        qs_uuid = register_queryset(self.filterset.qs.order_by('name'),
                                    60 * 60)
        options: list = []

        ids = [concept.id for concept in queryset]
        state_map = {v: k for k, v in MDR.STATES._identifier_map.items()}

        filter_kwargs = self.get_filterset_kwargs(self.filterset_class)['data']

        for dl in downloaders:
            query = QueryDict(mutable=True)

            url = '{url}?{qstring}'.format(url=reverse(
                'aristotle:registrationauthority_data_dictionary_download_options',
                kwargs={
                    "iid": self.registration_authority.pk,
                    "download_type": dl.download_type,
                    "state_name": state_map[int(filter_kwargs['status'])],
                    "registration_date": filter_kwargs['registration_date']
                }),
                                           qstring=query.urlencode())

            options.append({'label': dl.label, 'url': url})

        return options
    def get_success_url(self):
        self.filterset = self.get_filterset(self.filterset_class)

        from aristotle_mdr.utils.cached_querysets import register_queryset, get_queryset_from_uuid
        qs_uuid = register_queryset(self.filterset.qs, 60 * 60)
        get_queryset_from_uuid(qs_uuid)

        self.registration_authority = MDR.RegistrationAuthority.objects.get(
            id=self.kwargs['iid'])

        query = QueryDict(mutable=True)
        query['qs'] = qs_uuid
        query['title'] = "Data Dictionary for {}".format(
            self.registration_authority.name)

        url = reverse('aristotle:bulk_download', args=[self.download_type])
        return url + '?' + query.urlencode()
Exemple #5
0
def register_queryset(qs):
    from aristotle_mdr.utils.cached_querysets import register_queryset
    return register_queryset(qs)
def register_queryset(qs):
    from aristotle_mdr.utils.cached_querysets import register_queryset
    return register_queryset(qs)