コード例 #1
0
def folder_create(request):
    Permission.objects.check_permissions(request.user,
                                         [PERMISSION_FOLDER_CREATE])

    if request.method == 'POST':
        form = FolderForm(request.POST)
        if form.is_valid():
            folder, created = Folder.objects.get_or_create(
                user=request.user, title=form.cleaned_data['title'])
            if created:
                apply_default_acls(folder, request.user)
                messages.success(request, _(u'Folder created successfully'))
                return HttpResponseRedirect(reverse('folder_list'))
            else:
                messages.error(
                    request,
                    _(u'A folder named: %s, already exists.') %
                    form.cleaned_data['title'])
    else:
        form = FolderForm()

    return render_to_response('generic_form.html', {
        'title': _(u'create folder'),
        'form': form,
    },
                              context_instance=RequestContext(request))
コード例 #2
0
ファイル: views.py プロジェクト: bharathi26/mayan-edms
def tag_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_TAG_CREATE])
    redirect_url = reverse('tag_list')
    previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', redirect_url)))

    if request.method == 'POST':
        form = TagForm(request.POST)
        if form.is_valid():
            tag_name = form.cleaned_data['name']

            if tag_name in Tag.objects.values_list('name', flat=True):
                messages.error(request, _(u'Tag already exists.'))
                return HttpResponseRedirect(previous)

            tag = Tag(name=tag_name)
            tag.save()
            TagProperties(tag=tag, color=form.cleaned_data['color']).save()
            apply_default_acls(tag, request.user)

            messages.success(request, _(u'Tag created succesfully.'))
            return HttpResponseRedirect(redirect_url)
    else:
        form = TagForm()

    return render_to_response('generic_form.html', {
        'title': _(u'create tag'),
        'form': form,
    }, context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: x3n0/mayan
def tag_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_TAG_CREATE])
    redirect_url = reverse('tag_list')
    previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', redirect_url)))

    if request.method == 'POST':
        form = TagForm(request.POST)
        if form.is_valid():
            tag_name = form.cleaned_data['name']

            if tag_name in Tag.objects.values_list('name', flat=True):
                messages.error(request, _(u'Tag already exists.'))
                return HttpResponseRedirect(previous)

            tag = Tag(name=tag_name)
            tag.save()
            TagProperties(tag=tag, color=form.cleaned_data['color']).save()
            apply_default_acls(tag, request.user)

            messages.success(request, _(u'Tag created succesfully.'))
            return HttpResponseRedirect(redirect_url)
    else:
        form = TagForm()

    return render_to_response('generic_form.html', {
        'title': _(u'create tag'),
        'form': form,
    },
    context_instance=RequestContext(request))
コード例 #4
0
    def upload_single_file(self,
                           file_object,
                           filename=None,
                           use_file_name=False,
                           document_type=None,
                           metadata_dict_list=None,
                           user=None,
                           document=None,
                           new_version_data=None):
        new_document = not document

        if not document:
            document = Document()
            if document_type:
                document.document_type = document_type
            document.save()

            apply_default_acls(document, user)

            if user:
                document.add_as_recent_document_for_user(user)
                create_history(HISTORY_DOCUMENT_CREATED, document,
                               {'user': user})
            else:
                create_history(HISTORY_DOCUMENT_CREATED, document)
        else:
            if use_file_name:
                filename = None
            else:
                filename = filename if filename else document.latest_version.filename

        if not new_version_data:
            new_version_data = {}

        try:
            new_version = document.new_version(file=file_object,
                                               user=user,
                                               **new_version_data)
        except Exception:
            # Don't leave the database in a broken state
            # document.delete()
            transaction.rollback()
            raise

        if filename:
            document.rename(filename)

        transformations, errors = self.get_transformation_list()

        new_version.apply_default_transformations(transformations)
        #TODO: new HISTORY for version updates

        if metadata_dict_list and new_document:
            # Only do for new documents
            save_metadata_list(metadata_dict_list, document, create=True)
            warnings = update_indexes(document)

        return document
コード例 #5
0
ファイル: models.py プロジェクト: vinchu/mayan-edms
    def save(self, *args, **kwargs):
        user = kwargs.pop('user', None)
        new_document = not self.pk
        super(Document, self).save(*args, **kwargs)

        if new_document:
            apply_default_acls(self, user)

            if user:
                self.add_as_recent_document_for_user(user)
                event_document_create.commit(actor=user, target=self)
            else:
                event_document_create.commit(target=self)
コード例 #6
0
ファイル: models.py プロジェクト: BangorUniversity/mayan-edms
    def save(self, *args, **kwargs):
        user = kwargs.pop('user', None)
        new_document = not self.pk
        super(Document, self).save(*args, **kwargs)

        if new_document:
            apply_default_acls(self, user)

            if user:
                self.add_as_recent_document_for_user(user)
                event_document_create.commit(actor=user, target=self)
            else:
                event_document_create.commit(target=self)
コード例 #7
0
ファイル: views.py プロジェクト: gwalborn/mayan-edms
def index_setup_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_CREATE])

    if request.method == "POST":
        form = IndexForm(request.POST)
        if form.is_valid():
            index = form.save()
            apply_default_acls(index, request.user)
            messages.success(request, _(u"Index created successfully."))
            return HttpResponseRedirect(reverse("index_setup_list"))
    else:
        form = IndexForm()

    return render_to_response(
        "generic_form.html", {"title": _(u"create index"), "form": form}, context_instance=RequestContext(request)
    )
コード例 #8
0
ファイル: models.py プロジェクト: EmlynC/mayan-edms
    def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None, description=None):
        new_document = not document

        if not document:
            document = Document()
            if document_type:
                document.document_type = document_type

            if description:
                document.description = description

            document.save()

            apply_default_acls(document, user)

            if user:
                document.add_as_recent_document_for_user(user)
                create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user})
            else:
                create_history(HISTORY_DOCUMENT_CREATED, document)
        else:
            if use_file_name:
                filename = None
            else:
                filename = filename if filename else document.latest_version.filename

            if description:
                document.description = description
                document.save()

        if not new_version_data:
            new_version_data = {}

        new_version = document.new_version(file=file_object, user=user, **new_version_data)

        if filename:
            document.rename(filename)

        transformations, errors = self.get_transformation_list()

        new_version.apply_default_transformations(transformations)
        # TODO: new HISTORY for version updates

        if metadata_dict_list and new_document:
            # Only do for new documents
            save_metadata_list(metadata_dict_list, document, create=True)
            warnings = update_indexes(document)
コード例 #9
0
ファイル: views.py プロジェクト: cccs-web/mayan-edms
def smart_link_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_SMART_LINK_CREATE])

    if request.method == 'POST':
        form = SmartLinkForm(request.POST)
        if form.is_valid():
            document_group = form.save()
            apply_default_acls(document_group, request.user)
            messages.success(request, _(u'Smart link: %s created successfully.') % document_group)
            return HttpResponseRedirect(reverse('smart_link_list'))
    else:
        form = SmartLinkForm()

    return render_to_response('generic_form.html', {
        'form': form,
        'title': _(u'Create new smart link')
    }, context_instance=RequestContext(request))
コード例 #10
0
def index_setup_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_CREATE])

    if request.method == 'POST':
        form = IndexForm(request.POST)
        if form.is_valid():
            index = form.save()
            apply_default_acls(index, request.user)
            messages.success(request, _('Index created successfully.'))
            return HttpResponseRedirect(reverse('indexing:index_setup_list'))
    else:
        form = IndexForm()

    return render_to_response('main/generic_form.html', {
        'title': _('Create index'),
        'form': form,
    }, context_instance=RequestContext(request))
コード例 #11
0
ファイル: views.py プロジェクト: BangorUniversity/mayan-edms
def tag_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_TAG_CREATE])
    redirect_url = reverse('tags:tag_list')

    if request.method == 'POST':
        form = TagForm(request.POST)
        if form.is_valid():
            tag = form.save()
            apply_default_acls(tag, request.user)

            messages.success(request, _('Tag created succesfully.'))
            return HttpResponseRedirect(redirect_url)
    else:
        form = TagForm()

    return render_to_response('main/generic_form.html', {
        'title': _('Create tag'),
        'form': form,
    }, context_instance=RequestContext(request))
コード例 #12
0
ファイル: views.py プロジェクト: rosarior/mayan
def folder_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_FOLDER_CREATE])

    if request.method == "POST":
        form = FolderForm(request.POST)
        if form.is_valid():
            folder, created = Folder.objects.get_or_create(user=request.user, title=form.cleaned_data["title"])
            if created:
                apply_default_acls(folder, request.user)
                messages.success(request, _(u"Folder created successfully"))
                return HttpResponseRedirect(reverse("folder_list"))
            else:
                messages.error(request, _(u"A folder named: %s, already exists.") % form.cleaned_data["title"])
    else:
        form = FolderForm()

    return render_to_response(
        "generic_form.html", {"title": _(u"create folder"), "form": form}, context_instance=RequestContext(request)
    )
コード例 #13
0
ファイル: views.py プロジェクト: BangorUniversity/mayan-edms
def folder_create(request):
    Permission.objects.check_permissions(request.user, [PERMISSION_FOLDER_CREATE])

    if request.method == 'POST':
        form = FolderForm(request.POST)
        if form.is_valid():
            folder, created = Folder.objects.get_or_create(user=request.user, title=form.cleaned_data['title'])
            if created:
                apply_default_acls(folder, request.user)
                messages.success(request, _('Folder created successfully'))
                return HttpResponseRedirect(reverse('folders:folder_list'))
            else:
                messages.error(request, _('A folder named: %s, already exists.') % form.cleaned_data['title'])
    else:
        form = FolderForm()

    return render_to_response('main/generic_form.html', {
        'title': _('Create folder'),
        'form': form,
    }, context_instance=RequestContext(request))
コード例 #14
0
ファイル: views.py プロジェクト: rkpob/mayan-edms
def smart_link_create(request):
    Permission.objects.check_permissions(request.user,
                                         [PERMISSION_SMART_LINK_CREATE])

    if request.method == 'POST':
        form = SmartLinkForm(request.POST)
        if form.is_valid():
            document_group = form.save()
            apply_default_acls(document_group, request.user)
            messages.success(
                request,
                _(u'Smart link: %s created successfully.') % document_group)
            return HttpResponseRedirect(reverse('smart_link_list'))
    else:
        form = SmartLinkForm()

    return render_to_response('generic_form.html', {
        'form': form,
        'title': _(u'Create new smart link')
    },
                              context_instance=RequestContext(request))