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.")
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)
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 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"))
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")
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 __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())
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 ""
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)