Пример #1
0
 def get_options(self):
     return {
         'title': translate(_('Retag'), context=self.request),
         'id': 'retag',
         'icon': 'random',
         'url': self.context.absolute_url() + '/@@fc-retag',
         'form': {
             'template': self.template()
         }
     }
Пример #2
0
    def __call__(self):
        self.errors = []
        self.protect()
        context = aq_inner(self.context)

        catalog = getToolByName(context, 'portal_catalog')
        mtool = getToolByName(context, 'portal_membership')
        config = get_tagging_config()

        missing = []
        for key in self.request.form.keys():
            if not key.startswith('UID_'):
                continue
            uid = self.request.form[key]
            brains = catalog(UID=uid)
            if len(brains) == 0:
                missing.append(uid)
                continue
            obj = brains[0].getObject()
            title = self.objectTitle(obj)
            if not mtool.checkPermission('Copy or Move', obj):
                self.errors(_(u'Permission denied to retag ${title}.',
                              mapping={u'title': title}))
                continue

            sp = transaction.savepoint(optimistic=True)

            try:
                meta_to_tag(obj, None)
                title_to_tag(obj, None)
            except ConflictError:
                raise
            except Exception:
                sp.rollback()
                self.errors.append(_('Error retagging ${title}', mapping={
                    'title': title}))

        return self.message(missing)
Пример #3
0
 def __call__(self):
     site = getSite()
     base_url = site.absolute_url()
     base_vocabulary = '%s/@@getVocabulary?name=' % base_url
     site_path = site.getPhysicalPath()
     context_path = self.context.getPhysicalPath()
     options = {
         'vocabularyUrl': '%splone.app.vocabularies.Catalog' % (
             base_vocabulary),
         'urlStructure': {
             'base': base_url,
             'appended': '/folder_contents'
         },
         'moveUrl': '%s{path}/fc-itemOrder' % base_url,
         'indexOptionsUrl': '%s/@@qsOptions' % base_url,
         'contextInfoUrl': '%s{path}/@@fc-contextInfo' % base_url,
         'setDefaultPageUrl': '%s{path}/@@fc-setDefaultPage' % base_url,
         'availableColumns': {
             'id': translate(_('ID'), context=self.request),
             'preview': translate(_('Preview'), context=self.request),
             'ModificationDate': translate(_('Last modified'), context=self.request),  # noqa
             'EffectiveDate': translate(_('Publication date'), context=self.request),  # noqa
             'CreationDate': translate(_('Created on'), context=self.request),  # noqa
             'review_state': translate(_('Review state'), context=self.request),  # noqa
             'Subject': translate(_('Tags'), context=self.request),
             'Type': translate(_('Type'), context=self.request),
             'is_folderish': translate(_('Folder'), context=self.request),
             'exclude_from_nav': translate(_('Excluded from navigation'), context=self.request),  # noqa
             'getObjSize': translate(_('Object Size'), context=self.request),  # noqa
             'last_comment_date': translate(_('Last comment date'), context=self.request),  # noqa
             'total_comments': translate(_('Total comments'), context=self.request),  # noqa
         },
         'buttons': self.get_actions(),
         'rearrange': {
             'properties': {
                 'id': translate(_('Id'), context=self.request),
                 'sortable_title': translate(_('Title'), context=self.request),  # noqa
                 'modified': translate(_('Last modified'), context=self.request),  # noqa
                 'created': translate(_('Created on'), context=self.request),  # noqa
                 'effective': translate(_('Publication date'), context=self.request),  # noqa
                 'Type': translate(_('Type'), context=self.request)
             },
             'url': '%s{path}/@@fc-rearrange' % base_url
         },
         'basePath': '/' + '/'.join(context_path[len(site_path):]),
         'upload': {
             'relativePath': 'fileUpload',
             'baseUrl': base_url,
             'initialFolder': IUUID(self.context, None),
             'useTus': TUS_ENABLED
         }
     }
     self.options = json_dumps(options)
     return super(FolderContentsView, self).__call__()