check in some skeletal code + notes, nothing concrete or working yet
svn path=/plone.app.discussion/trunk/; revision=26892
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
from zope.interface import Interface
|
||||
from zope.interface.common.mapping import IIterableMapping, IWriteMapping
|
||||
from zope import schema
|
||||
|
||||
from zope.i18nmessageid import MessageFactory
|
||||
|
||||
_ = MessageFactory('plone.app.discussion')
|
||||
|
||||
class IReplies(IIterableMapping, IWriteMapping):
|
||||
"""A set of related comments
|
||||
|
||||
This acts as a mapping (dict) with string keys and values being other
|
||||
discussion items in reply to this discussion item.
|
||||
"""
|
||||
|
||||
class IHasReplies(Interface):
|
||||
"""Common interface for objects that have replies.
|
||||
"""
|
||||
|
||||
replies = schema.Object(title=_(u"Replies"), schema=IReplies)
|
||||
|
||||
class IComment(IHasReplies):
|
||||
"""A comment
|
||||
"""
|
||||
|
||||
portal_type = schema.ASCIILine(title=_(u"Portal type"), default="Discussion Item")
|
||||
|
||||
__parent__ = schema.Object(title=_(u"In reply to"), description=_(u"Another comment or a content item"), schema=Interface)
|
||||
__name__ = schema.TextLine(title=_(u"Name"))
|
||||
|
||||
ancestor = schema.Object(title=_(u"The original content object the comment is for"), schema=Interface)
|
||||
|
||||
title = schema.TextLine(title=_(u"Subject"))
|
||||
|
||||
mime_type = schema.ASCIILine(title=_(u"MIME type"), default="text/plain")
|
||||
text = schema.Text(title=_(u"Comment text"))
|
||||
|
||||
creator = schema.TextLine(title=_(u"Author name (for display)"))
|
||||
creation_date = schema.Date(title=_(u"Creation date"))
|
||||
modification_date = schema.Date(title=_(u"Modification date"))
|
||||
|
||||
# for logged in comments - set to None for anonymous
|
||||
author_username = schema.TextLine(title=_(u"Author username"), required=False)
|
||||
|
||||
# for anonymous comments only, set to None for logged in comments
|
||||
author_name = schema.TextLine(title=_(u"Author name"), required=False)
|
||||
author_email = schema.TextLine(title=_(u"Author email address"), required=False)
|
||||
|
||||
class IDiscussable(IHasReplies):
|
||||
"""Adapt a content item to this interface to determine whether discussions
|
||||
are currently enabled, and obtain a list of comments.
|
||||
"""
|
||||
|
||||
enabled = schema.Bool(title=_(u"Is commenting enabled?"))
|
||||
|
||||
total_comments = schema.Int(title=_(u"Total number of comments on this item"), min=0, readonly=True)
|
||||
last_comment_date = schema.Date(title=_(u"Date of the most recent comment"), readonly=True)
|
||||
commentators = schema.Set(title=_(u"The set of unique commentators (usernames)"), readonly=True)
|
||||
|
||||
class IDiscussionSettings(Interface):
|
||||
"""Global discussion settings. This describes records stored in the
|
||||
configuration registry and obtainable via plone.registry.
|
||||
"""
|
||||
|
||||
globally_enabled = schema.Bool(title=_(u"Globally enabled"),
|
||||
description=_(u"Use this setting to enable or disable comments globally"),
|
||||
default=True)
|
||||
|
||||
Reference in New Issue
Block a user