コード例 #1
0
ファイル: document_views.py プロジェクト: horia-p/Mayan-EDMS
    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 upload_document(self,
                        file_object,
                        document_type,
                        description=None,
                        label=None,
                        language=None,
                        querystring=None,
                        user=None):
        """
        Upload an individual document
        """
        try:
            with transaction.atomic():
                document = Document(description=description or '',
                                    document_type=document_type,
                                    label=label or file_object.name,
                                    language=language
                                    or setting_language.value)
                document.save(_user=user)
        except Exception as exception:
            logger.critical(
                'Unexpected exception while trying to create new document '
                '"%s" from source "%s"; %s', label or file_object.name, self,
                exception)
            raise
        else:
            try:
                document_version = document.new_version(
                    file_object=file_object,
                    _user=user,
                )

                if user:
                    document.add_as_recent_document_for_user(user=user)

                layer_saved_transformations.copy_transformations(
                    source=self, targets=document_version.pages.all())

            except Exception as exception:
                logger.critical(
                    'Unexpected exception while trying to create version for '
                    'new document "%s" from source "%s"; %s',
                    label or file_object.name,
                    self,
                    exception,
                    exc_info=True)
                document.delete(to_trash=False)
                raise
            else:
                WizardStep.post_upload_process(document=document,
                                               querystring=querystring)
                return document
コード例 #3
0
def handler_copy_transformations_to_version(sender, instance, **kwargs):
    # TODO: Fix this, source should be previous version
    # TODO: Fix this, shouldn't this be at the documents app

    layer_saved_transformations.copy_transformations(
        source=instance.document, targets=instance.pages.all())