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)
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)
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())
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)
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())