Skip to content
Snippets Groups Projects
schema.py 1009 B
Newer Older
Nicolas Chauvat's avatar
Nicolas Chauvat committed
"""
:organization: Logilab
sylvain thenault's avatar
sylvain thenault committed
:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
Nicolas Chauvat's avatar
Nicolas Chauvat committed
:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
"""
from yams.buildobjs import EntityType, RelationType, SubjectRelation, RichString

from cubicweb.schema import RRQLExpression
class Comment(EntityType):
Nicolas Chauvat's avatar
Nicolas Chauvat committed
    """a comment is a reply about another entity"""
    permissions = {
        'read':   ('managers', 'users', 'guests',),
        'add':    ('managers', 'users',),
        'delete': ('managers', 'owners',),
        'update': ('managers', 'owners',),
        }
sylvain thenault's avatar
sylvain thenault committed
    content = RichString(required=True, fulltextindexed=True)
Nicolas Chauvat's avatar
Nicolas Chauvat committed
    comments = SubjectRelation('Comment', cardinality='1*', composite='object')

class comments(RelationType):
Nicolas Chauvat's avatar
Nicolas Chauvat committed
    permissions = {
        'read':   ('managers', 'users', 'guests'),
        'add':    ('managers', 'users',),
        'delete': ('managers', RRQLExpression('S owned_by U'),),
        }
    inlined = True
    composite = 'object'
    cardinality = '1*'