change way to describe fields of CapBaseObject, and lot of documentation
This commit is contained in:
parent
99391a95ef
commit
c6a141595c
35 changed files with 1630 additions and 638 deletions
|
|
@ -18,37 +18,74 @@
|
|||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
from .base import IBaseCap, CapBaseObject
|
||||
from datetime import datetime
|
||||
from .base import IBaseCap, CapBaseObject, StringField, DateField, Field
|
||||
|
||||
|
||||
__all__ = ['Content', 'Revision', 'ICapContent']
|
||||
|
||||
|
||||
class Content(CapBaseObject):
|
||||
def __init__(self, id):
|
||||
CapBaseObject.__init__(self, id)
|
||||
self.add_field('title', basestring)
|
||||
self.add_field('author', basestring)
|
||||
self.add_field('content', basestring)
|
||||
self.add_field('revision', basestring)
|
||||
"""
|
||||
Content object.
|
||||
"""
|
||||
title = StringField('Title of content')
|
||||
author = StringField('Original author of content')
|
||||
content = StringField('Body')
|
||||
revision = StringField('ID of revision')
|
||||
|
||||
class Revision(CapBaseObject):
|
||||
def __init__(self, _id):
|
||||
CapBaseObject.__init__(self, _id)
|
||||
self.add_field('author', basestring)
|
||||
self.add_field('comment', basestring)
|
||||
self.add_field('revision', basestring)
|
||||
self.add_field('timestamp', datetime)
|
||||
self.add_field('minor', bool)
|
||||
|
||||
|
||||
"""
|
||||
Revision of a change on a content.
|
||||
"""
|
||||
author = StringField('Author of revision')
|
||||
comment = StringField('Comment log about revision')
|
||||
timestamp = DateField('Date of revision')
|
||||
minor = Field('Is this change minor?', bool)
|
||||
|
||||
class ICapContent(IBaseCap):
|
||||
def get_content(self, id, revision=None):
|
||||
"""
|
||||
Get a content from an ID.
|
||||
|
||||
:param id: ID of content
|
||||
:type id: str
|
||||
:param revision: if given, get the content at this revision
|
||||
:type revision: :class:`Revision`
|
||||
:rtype: :class:`Content`
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def iter_revisions(self, id, max_results=10):
|
||||
"""
|
||||
Iter revisions of a content.
|
||||
|
||||
:param id: id of content
|
||||
:type id: str
|
||||
:param max_results: maximum results
|
||||
:type max_results: int
|
||||
:rtype: iter[:class:`Revision`]
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def push_content(self, content, message=None, minor=False):
|
||||
"""
|
||||
Push a new revision of a content.
|
||||
|
||||
:param content: object to push
|
||||
:type content: :class:`Content`
|
||||
:param message: log message to associate to new revision
|
||||
:type message: str
|
||||
:param minor: this is a minor revision
|
||||
:type minor: bool
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def get_content_preview(self, content):
|
||||
"""
|
||||
Get a HTML preview of a content.
|
||||
|
||||
:param content: content object
|
||||
:type content: :class:`Content`
|
||||
:rtype: str
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue