Beispiel #1
0
class UrlSubstitution(BaseSubstitution):

    category = _(u'All Content')
    description = _(u'URL')

    def safe_call(self):
        return self.context.absolute_url()
Beispiel #2
0
class ManagerEmailSubstitution(MailAddressSubstitution):

    category = _(u'E-Mail Addresses')
    description = _(u'Managers')

    def safe_call(self):
        return self.getEmailsForRole('Manager')
Beispiel #3
0
class LastChangeActorIdSubstitution(ChangeSubstitution):

    category = _(u'History')
    description = _(u'Change author')

    def safe_call(self):
        return self.lastChangeMetadata('actorid')
class SubscriberCategoryEmailSubstitution(BaseSubstitution):
    category = _(u'Category Subscribers')
    description = _(
        u'Subscriber E-Mail addresses for category "x", managed under '
        u'Site Setup -> Announcements -> Manage Categories (ex: '
        u'"category_emails_for_news"). NOTE: "x" is case-insensitive and '
        u'spaces should be replaced with underscores, ex: "Meeting Minutes" '
        u'would be "${category_emails_for_meeting_minutes}"')

    def __init__(self, context, category=None):
        super(SubscriberCategoryEmailSubstitution, self).__init__(context)
        self.category = category.lower().replace(" ", "_")

    def safe_call(self):
        emails = []
        for subscriber in subscribe.all():
            if 'categories' not in subscriber:
                continue
            categories = subscriber['categories']
            for c in categories:
                if c.lower().replace(" ", "_") == self.category:
                    email = subscriber.get("email", None)
                    if email is not None:
                        emails.append(email)
                    break
        return u', '.join(emails)
Beispiel #5
0
class ParentTitleSubstitution(BaseSubstitution):

    category = _(u'All Content')
    description = _(u'Parent title')

    def safe_call(self):
        return aq_get(aq_parent(self.context), 'Title')()
Beispiel #6
0
class EffectiveSubstitution(DateSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Date Effective')

    def safe_call(self):
        return self.formatDate(self.context.effective())
Beispiel #7
0
class TypeSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Content Type')

    def safe_call(self):
        return translate(self.context.Type(), context=self.context.REQUEST)
Beispiel #8
0
class ContributorsSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Contributors Ids')

    def safe_call(self):
        return ', '.join(self.context.listContributors())
Beispiel #9
0
class IdentifierSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Identifier, actually URL of the content')

    def safe_call(self):
        return self.context.Identifier()
Beispiel #10
0
class FormatSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Format')

    def safe_call(self):
        return self.context.Format()
Beispiel #11
0
class LanguageSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Language')

    def safe_call(self):
        return self.context.Language()
Beispiel #12
0
class ContributorEmailSubstitution(MailAddressSubstitution):

    category = _(u'Local Roles')
    description = _(u'Contributors E-Mails')

    def safe_call(self):
        return self.getEmailsForRole('Contributor')
Beispiel #13
0
class SubjectSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Subject')

    def safe_call(self):
        return ', '.join(self.context.Subject())
Beispiel #14
0
class ModifiedSubstitution(DateSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Date Modified')

    def safe_call(self):
        return self.formatDate(self.context.modified())
Beispiel #15
0
class LastChangeTypeSubstitution(ChangeSubstitution):

    category = _(u'History')
    description = _(u'Change type')

    def safe_call(self):
        return self.lastChangeMetadata('type')
Beispiel #16
0
class ExpiresSubstitution(DateSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Date Expires')

    def safe_call(self):
        return self.formatDate(self.context.expires())
Beispiel #17
0
class DescriptionSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Description')

    def safe_call(self):
        return self.context.Description()
Beispiel #18
0
class ParentUrlSubstitution(BaseSubstitution):

    category = _(u'All Content')
    description = _(u"Folder URL")

    def safe_call(self):
        return aq_get(aq_parent(self.context), 'absolute_url')()
Beispiel #19
0
class TitleSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Title')

    def safe_call(self):
        return self.context.Title()
Beispiel #20
0
class IdSubstitution(BaseSubstitution):

    category = _(u'All Content')
    description = _(u"Identifier of the content or login of managed user")

    def safe_call(self):
        return self.context.getId()
Beispiel #21
0
class LastChangeCommentSubstitution(ChangeSubstitution):

    category = _(u'History')
    description = _(u'Comment')

    def safe_call(self):
        return self.lastChangeMetadata('comments')
Beispiel #22
0
class LastChangeTitleSubstitution(ChangeSubstitution):

    category = _(u'History')
    description = _(u'Transition title')

    def safe_call(self):
        return self.lastChangeMetadata('transition_title')
Beispiel #23
0
class RightsSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Rights')

    def safe_call(self):
        return self.context.Rights()
Beispiel #24
0
class MemberEmailSubstitution(MailAddressSubstitution):

    category = _(u'Local Roles')
    description = _(u'Members E-Mails')

    def safe_call(self):
        return self.getEmailsForRole('Member')
Beispiel #25
0
class ReviewStateSubstitution(BaseSubstitution):

    category = _(u'Workflow')
    description = _(u'Review State')

    def safe_call(self):
        wft = getToolByName(self.context, 'portal_workflow')
        return wft.getInfoFor(self.context, 'review_state')
Beispiel #26
0
class CreatedSubstitution(DateSubstitution):
    adapts(ICatalogableDublinCore)

    category = _(u'Dublin Core')
    description = _(u'Date Created')

    def safe_call(self):
        return self.formatDate(self.context.created())
Beispiel #27
0
class CreatorsSubstitution(BaseSubstitution):
    adapts(IDublinCore)

    category = _(u'Dublin Core')
    description = _(u'Creators Ids')

    def safe_call(self):
        return ', '.join(self.context.listCreators())
Beispiel #28
0
class ParentIdSubstitution(BaseSubstitution):
    adapts(Interface)

    category = _(u'All Content')
    description = _(
        u"Identifier of the parent content or login of managed user")

    def safe_call(self):
        return aq_parent(self.context).getId()
Beispiel #29
0
class CreatorSubstitution(BaseSubstitution):

    category = _(u'Dublin Core')
    description = _(u'Creator Id')

    def safe_call(self):
        for creator in self.context.listCreators():
            return creator
        return ''
Beispiel #30
0
class ReviewStateTitleSubstitution(BaseSubstitution):

    category = _(u'Workflow')
    description = _(u'Review State Title')

    def safe_call(self):
        wft = getToolByName(self.context, 'portal_workflow')
        review_state = wft.getInfoFor(self.context, 'review_state')
        return _(
            wft.getTitleForStateOnType(review_state, self.context.portal_type))
Beispiel #31
0
    def substitutionList(self):
        """
        returns sequence:
        [ {'category':categoryTitle,
           'items':[{'id':subId, 'description':subDescription}, ...]), ...  ]
        """

        adapters = [a for a in getGlobalSiteManager().registeredAdapters()
                      if len(a.required)==1 and
                         IStringSubstitution.implementedBy(a.factory)]

        # rearrange into categories
        categories = {}
        for a in adapters:
            id = a.name
            cat = getattr(a.factory, 'category', _(u'Miscellaneous'))
            desc = getattr(a.factory, 'description', u'')
            categories.setdefault(cat, []).append(
              {'id': id, 'description': desc})

        # rearrange again into a sorted list
        res = []
        keys = categories.keys()
        # sort, ignoring case
        keys.sort(lambda a, b: cmp(a.lower(), b.lower()))
        for key in keys:
            acat = categories[key]
            # sort by id, ignoring case
            acat.sort(lambda a, b: cmp(a['id'].lower(), b['id'].lower()))
            res.append({'category': key, 'items': acat})

        return res
Beispiel #32
0
def _lastRevision(context):
    context = aq_inner(context)
    rt = getToolByName(context, "portal_repository")
    if rt.isVersionable(context):
        history = rt.getHistoryMetadata(context)
        if history:
            # history = ImplicitAcquisitionWrapper(history, pa)
            meta = history.retrieve(
               history.getLength(countPurged=False)-1,
               countPurged=False,
              )['metadata']['sys_metadata']
            return dict(type='versioning',
                    action=_(u"edit"),
                    transition_title=_(u"Edit"),
                    actorid=meta["principal"],
                    time=meta["timestamp"],
                    comments=meta['comment'],
                    review_state=meta["review_state"],
                    )

    return {}
Beispiel #33
0
 def safe_call(self):
     try:
         value = self.context.providers2string()
     except AttributeError:
         value = _(u'not specified')
     return value
Beispiel #34
0
 def safe_call(self):
     wft = getToolByName(self.context, 'portal_workflow')
     review_state = wft.getInfoFor(self.context, 'review_state')
     return _(wft.getTitleForStateOnType(review_state,
                                         self.context.portal_type))
Beispiel #35
0
 def __call__(self):
     try:
         return safe_unicode(self.safe_call())
     except Unauthorized:
         return _(u'Unauthorized')
Beispiel #36
0
 def safe_call(self):
     try:
         value = self.context.request_details()
     except AttributeError:
         value = _(u'No request specification found.')
     return value
Beispiel #37
0
 def safe_call(self):
     try:
         value = self.context.getStartDate()
         return value.Date()
     except AttributeError:
         return _(u'not specified')