author | sylvain.thenault@logilab.fr |
Mon, 12 Jan 2009 10:57:26 +0100 | |
changeset 386 | 7af259b73c5b |
parent 341 | 0a426be2f3a2 |
child 629 | 59b6542f5729 |
permissions | -rw-r--r-- |
0 | 1 |
from cubicweb.schema import format_constraint |
2 |
||
3 |
class Affaire(EntityType): |
|
4 |
permissions = { |
|
5 |
'read': ('managers', |
|
6 |
ERQLExpression('X owned_by U'), ERQLExpression('X concerne S?, S owned_by U')), |
|
7 |
'add': ('managers', ERQLExpression('X concerne S, S owned_by U')), |
|
8 |
'update': ('managers', 'owners', ERQLExpression('X in_state S, S name in ("pitetre", "en cours")')), |
|
9 |
'delete': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
|
10 |
} |
|
11 |
||
12 |
ref = String(fulltextindexed=True, indexed=True, |
|
13 |
constraints=[SizeConstraint(16)]) |
|
14 |
sujet = String(fulltextindexed=True, |
|
15 |
constraints=[SizeConstraint(256)]) |
|
16 |
in_state = SubjectRelation('State', cardinality='1*', |
|
17 |
constraints=[RQLConstraint('O state_of ET, ET name "Affaire"')], |
|
18 |
description=_('account state')) |
|
19 |
descr_format = String(meta=True, internationalizable=True, |
|
20 |
default='text/rest', constraints=[format_constraint]) |
|
21 |
descr = String(fulltextindexed=True, |
|
22 |
description=_('more detailed description')) |
|
332
86b8d58664eb
backport msplanner test from cubicweb-multisources
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
0
diff
changeset
|
23 |
|
86b8d58664eb
backport msplanner test from cubicweb-multisources
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
0
diff
changeset
|
24 |
duration = Int() |
86b8d58664eb
backport msplanner test from cubicweb-multisources
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
0
diff
changeset
|
25 |
invoiced = Int() |
0 | 26 |
|
27 |
wf_info_for = ObjectRelation('TrInfo', cardinality='1*', composite='object') |
|
28 |
depends_on = SubjectRelation('Affaire') |
|
341
0a426be2f3a2
fixes for some cases of neged inlined relations, may have to use (new) IntersectStep. XXX: write IntersectFetchStep
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
332
diff
changeset
|
29 |
require_permission = SubjectRelation('EPermission') |
0 | 30 |
|
31 |
class concerne(RelationType): |
|
32 |
permissions = { |
|
33 |
'read': ('managers', 'users', 'guests'), |
|
34 |
'add': ('managers', RRQLExpression('U has_update_permission S')), |
|
35 |
'delete': ('managers', RRQLExpression('O owned_by U')), |
|
36 |
} |
|
37 |
||
38 |