Пример #1
0
    def form_valid(self, form):
        instance = self.get_object()

        try:
            target_pages = instance.pages.exclude(
                pk=form.cleaned_data['page'].pk)

            with transaction.atomic():
                for page in target_pages:
                    layer_saved_transformations.get_transformations_for(
                        obj=page).delete()

                layer_saved_transformations.copy_transformations(
                    source=form.cleaned_data['page'], targets=target_pages)
        except Exception as exception:
            if settings.DEBUG:
                raise
            else:
                messages.error(
                    message=_('Error cloning the page transformations for '
                              'document: %(document)s; %(error)s.') % {
                                  'document': instance,
                                  'error': exception
                              },
                    request=self.request)
        else:
            messages.success(message=_('Transformations cloned successfully.'),
                             request=self.request)

        return super(DocumentTransformationsCloneView,
                     self).form_valid(form=form)
Пример #2
0
 def object_action(self, form, instance):
     try:
         for page in instance.pages.all():
             layer_saved_transformations.get_transformations_for(
                 obj=page).delete()
     except Exception as exception:
         messages.error(
             message=_('Error deleting the page transformations for '
                       'document: %(document)s; %(error)s.') % {
                           'document': instance,
                           'error': exception
                       },
             request=self.request)
Пример #3
0
    def test_document_multiple_clear_transformations_view_no_permission(self):
        self._create_document_transformation()

        transformation_count = layer_saved_transformations.get_transformations_for(
            obj=self.test_document.pages.first()).count()

        self.grant_access(obj=self.test_document,
                          permission=permission_document_view)

        response = self._request_document_multiple_clear_transformations()
        self.assertEqual(response.status_code, 404)

        self.assertEqual(
            transformation_count,
            layer_saved_transformations.get_transformations_for(
                obj=self.test_document.pages.first()).count())
Пример #4
0
 def test_rotate(self):
     self.assertQuerysetEqual(qs=Document.valid.all(),
                              values=(repr(self.test_document), ))
     self.assertEqual(
         layer_saved_transformations.get_transformations_for(
             obj=self.test_document.latest_version.pages.first()).count(),
         1)
Пример #5
0
    def test_document_clear_transformations_view_with_access(self):
        self._create_document_transformation()

        transformation_count = layer_saved_transformations.get_transformations_for(
            obj=self.test_document.pages.first()).count()

        self.grant_access(obj=self.test_document,
                          permission=permission_transformation_delete)
        self.grant_access(obj=self.test_document,
                          permission=permission_document_view)

        response = self._request_document_clear_transformations_view()
        self.assertEqual(response.status_code, 302)

        self.assertEqual(
            transformation_count - 1,
            layer_saved_transformations.get_transformations_for(
                obj=self.test_document.pages.first()).count())