Пример #1
0
    def update(self):
        discussion = IContentDiscussion(self.context)
        if discussion.status != 1:
            removeAllProxies(discussion).status = 1

        self.comments = list(discussion.values())

        self.postsAllowed = (discussion.status == 1 and
                             checkPermission('zojax.AddComment', self.context))
        if self.postsAllowed:
            self.reply = getMultiAdapter(
                (self.context, self.request), name='comment.html')
            self.reply.update()
Пример #2
0
class ManageDiscussion(PageletForm):

    label = _(u'Manage discussion')
    title = label
    size = 30

    def update(self):
        self.discussion = IContentDiscussion(self.context)
        self.batch = Batch(self.discussion.values(), size=self.size, request=self.request)
        super(ManageDiscussion, self).update()

    @button.buttonAndHandler(_(u'Back'), name='content.discussion.back')
    def handleBack(self, action):
        self.redirect('.')

    @button.buttonAndHandler(_(u'Remove'), name='content.discussion.remove')
    def handleRemove(self, action):
        request = self.request
        ids = request.get('commentIds', ())
        if not ids:
            IStatusMessage(request).add(_('Please select comments.'))

        else:
            for id in ids:
                if id in self.discussion:
                    del self.discussion[id]

            IStatusMessage(request).add(
                _('Selected comments have been removed.'))
            self.redirect(self.request.getURL())

    def canManage(self, comment):
        return checkPermission('zojax.ModifyContent', self.context) or \
        checkPermission('zojax.ModifyContent', comment)

    def publishTraverse(self, request, name):
        self.discussion = IContentDiscussion(self.context)
        if name in self.discussion:
            comment  = self.discussion[name]
            if self.canManage(comment):
                return LocationProxy(self.discussion[name], self, name)
        raise NotFound(self.context, name, request)