Esempio n. 1
0
class EditForm(base.EditForm):
    form_fields = Fields(IRecentConversationsPortlet)
    label = _(u"label_add_portlet",
              default=u"Add recent conversations portlet.")
    description = _(
        u"help_add_portlet",
        default=u"This portlet shows conversations with recent comments.")
Esempio n. 2
0
class ITransformSchema(Interface):
    enabled_transforms = Tuple(
        title=_(u"label_transforms", default=u"Transforms"),
        description=_(
            u"help_transforms",
            default=u"Select the text transformations that should be "
            u"used for comments posted in Ploneboard "
            u"conversations. Text transformations alter the "
            u"text entered by the user, either to remove "
            u"potentially malicious HTML tags, or to add "
            u"additional functionality, such as making links "
            u"clickable."),
        required=True,
        missing_value=set(),
        value_type=Choice(
            vocabulary="Products.Ploneboard.AvailableTransforms"))

    enable_anon_name = Bool(
        title=_(u"label_anon_nick", default=u"Anonymous name"),
        description=_(
            u"help_anon_nick",
            default=
            u"If selected, anonymous users can insert a name in their comments."
        ),
        required=False)
Esempio n. 3
0
 def quotedBody(self):
     text = self.context.getText()
     if text:
         try:
             return _(
                 "label_quote", u"Previously ${author} wrote: ${quote}", {
                     "author":
                     unicode(self.author(), 'utf-8'),
                     "quote":
                     unicode(
                         "<blockquote>%s</blockquote></br>" %
                         (self.context.getText()), 'utf-8')
                 })
         except TypeError:
             return _(
                 "label_quote", u"Previously ${author} wrote: ${quote}", {
                     "author":
                     self.author(),
                     "quote":
                     unicode(
                         "<blockquote>%s</blockquote></br>" %
                         (self.context.getText()), 'utf-8')
                 })
     else:
         return ''
Esempio n. 4
0
class AddForm(base.AddForm):
    form_fields = Fields(IRecentConversationsPortlet)
    label = _("label_add_portlet", default="Add recent conversations portlet.")
    description = _(
        "help_add_portlet",
        default="This portlet shows conversations with recent comments.")

    def create(self, data):
        return Assignment(title=data.get("title"), count=data.get("count"))
Esempio n. 5
0
 def quotedBody(self):
     text = self.context.getText()
     if text:
         try:
             return _("label_quote", u"Previously ${author} wrote: ${quote}", {"author": unicode(self.author(), 'utf-8'),
                 "quote":  unicode("<blockquote>%s</blockquote></br>" % (self.context.getText()), 'utf-8')})
         except TypeError:
             return _("label_quote", u"Previously ${author} wrote: ${quote}", {"author": self.author(), 
                 "quote":  unicode("<blockquote>%s</blockquote></br>" % (self.context.getText()), 'utf-8')})            
     else:
         return ''
class ControlPanel(ControlPanelForm):
    form_fields = FormFields(ITransformSchema)
    form_fields["enabled_transforms"].custom_widget = MultiCheckBoxVocabularyWidget

    label = _("ploneboard_configuration",
            default="Ploneboard configuration")
    description = _("description_ploneboard_config",
            default="Here you can configure site settings for Ploneboard.")

    form_name = _("ploneboard_transform_panel",
            default="Text transformations")
Esempio n. 7
0
 def author(self):
     creator = self.context.Creator()
     info = self.portal_membership.getMemberInfo(creator)
     if info is None:
         return translate(_(creator), context=self.context.REQUEST)
     fullname_or_id = info.get('fullname') or info.get('username') or creator
     return fullname_or_id
 def author(self):
     creator = self.context.Creator()
     info = self.portal_membership.getMemberInfo(creator)
     if info is None:
         return translate(_(creator), context=self.context.REQUEST)
     fullname_or_id = info.get('fullname') or info.get('username') or creator
     return fullname_or_id
Esempio n. 9
0
    def __call__(self):
        redirect = self.request.response.redirect
        comment = self.context
        conversation = comment.getConversation()
        plone_utils = getToolByName(comment, 'plone_utils')

        if len(conversation.getComments()) == 1:
            forum = conversation.getForum()
            conversation.delete()
            msg = _(u'Conversation deleted')
            plone_utils.addPortalMessage(msg)
            redirect(forum.absolute_url())
        else:
            comment.delete()
            msg = _(u'Comment deleted')
            plone_utils.addPortalMessage(msg)
            redirect(conversation.absolute_url())
Esempio n. 10
0
    def __call__(self):
        redirect = self.request.response.redirect
        comment = self.context
        conversation = comment.getConversation()
        plone_utils = cmf_utils.getToolByName(comment, "plone_utils")

        if len(conversation.getComments()) == 1:
            forum = conversation.getForum()
            conversation.delete()
            msg = _(u"Conversation deleted")
            plone_utils.addPortalMessage(msg)
            redirect(forum.absolute_url())
        else:
            comment.delete()
            msg = _(u"Comment deleted")
            plone_utils.addPortalMessage(msg)
            redirect(conversation.absolute_url())
 def quotedBody(self):
     text = self.context.getText()
     if text:
         return _(
             "label_quote",
             u"Previously ${author} wrote: ${quote}",
             {
                 "author": unicode(self.author(), "utf-8"),
                 "quote": unicode("<blockquote>%s</blockquote></br>" % (self.context.getText()), "utf-8"),
             },
         )
     else:
         return ""
Esempio n. 12
0
class IRecentConversationsPortlet(IPortletDataProvider):
    """A portlet which shows recent Ploneboard conversations.
    """

    title = schema.TextLine(title=_(u"title_title", default=u"Portlet title"),
                            required=True,
                            default=u"Recent messages")

    count = schema.Int(title=_(u"title_count",
                               default=u"Number of items to display"),
                       description=_(u"help_count",
                                     default=u"How many items to list."),
                       required=True,
                       default=5)

    forum = schema.Choice(
        title=_(u"title_forum", default=u"Limit to specific board or forum"),
        description=_(
            u"help_forum",
            default=u"Limit recent conversations to a specific forum"),
        vocabulary="ploneboard.BoardsAndForumVocabulary",
        required=False,
        default="")
                                      )),
    ReferenceField(
        name='reply_to',
        accessor='inReplyTo',  # Suboptimal accessor naming here...
        edit_accessor='inReplyToUID',
        mutator='setInReplyTo',
        relationship=REPLY_RELATIONSHIP,
        widget=ReferenceWidget(visible=False),
        ),

    BooleanField('displayAttachments',
        mode="w",
        default=True,
        languageIndependent=0,
        widget=AttachmentsManagerWidget(
            label=_("label_displayAttachments",
                      default=u"Attachments"),
            expanded=True
        ),
    ),

    BooleanField('displayImages',
        mode="w",
        default=True,
        languageIndependent=0,
        widget=ImagesManagerWidget(
            label=_("label_displayImages",
                      default=u"Images"),
            expanded=True
        ),
    ),
    ))
                                rows=5,
                                helper_css=('ploneboard.css', ))),
    ReferenceField(
        name='reply_to',
        accessor='inReplyTo',  # Suboptimal accessor naming here...
        edit_accessor='inReplyToUID',
        mutator='setInReplyTo',
        relationship=REPLY_RELATIONSHIP,
        widget=ReferenceWidget(visible=False),
    ),
    BooleanField(
        'displayAttachments',
        mode="w",
        default=True,
        languageIndependent=0,
        widget=AttachmentsManagerWidget(label=_("label_displayAttachments",
                                                default=u"Attachments"),
                                        expanded=True),
    ),
    BooleanField(
        'displayImages',
        mode="w",
        default=True,
        languageIndependent=0,
        widget=ImagesManagerWidget(label=_("label_displayImages",
                                           default=u"Images"),
                                   expanded=True),
    ),
))
utils.finalizeSchema(schema)

                                      )),
    ReferenceField(
        name='reply_to',
        accessor='inReplyTo',  # Suboptimal accessor naming here...
        edit_accessor='inReplyToUID',
        mutator='setInReplyTo',
        relationship=REPLY_RELATIONSHIP,
        widget=ReferenceWidget(visible=False),
        ),

    BooleanField('displayAttachments',
        mode="w",
        default=True,
        languageIndependent=0,
        widget=AttachmentsManagerWidget(
            label=_("label_displayAttachments",
                      default=u"Attachments"),
            expanded=True
        ),
    ),

    BooleanField('displayImages',
        mode="w",
        default=True,
        languageIndependent=0,
        widget=ImagesManagerWidget(
            label=_("label_displayImages",
                      default=u"Images"),
            expanded=True
        ),
    ),
    ))