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()
Exemplo n.º 2
0
    def items_to_change(self):
        if bool(self.cleaned_data.get('all_in_queryset', False)):
            filters = {}
            from aristotle_mdr.utils.cached_querysets import get_queryset_from_uuid
            items = get_queryset_from_uuid(self.cleaned_data.get('qs', ""), MDR._concept)

            _slice = {"low": items.query.low_mark, "high": items.query.high_mark}
            items.query.low_mark = 0
            items.query.high_mark = None
            items = items.filter(**filters).visible(self.user)
            items.query.set_limits(**_slice)
        else:
            items = self.cleaned_data.get('items')
        return items
    def get_item_id_list(self):
        from aristotle_mdr.utils.cached_querysets import get_queryset_from_uuid
        id_strings = self.request.GET.getlist('items')
        qs_uuid = self.request.GET.get('qs')

        if qs_uuid:
            try:
                qs = get_queryset_from_uuid(qs_uuid)
                ids = list(qs.values_list('id', flat=True))
            except ValueError:
                raise Http404("Queryset not found")
        else:
            try:
                ids = [int(id) for id in id_strings]
            except ValueError:
                raise Http404

        return ids