89 shortpara = String(maxsize=64, default='hop') |
89 shortpara = String(maxsize=64, default='hop') |
90 ecrit_par = SubjectRelation('Personne', constraints=[RQLConstraint('S concerne A, O concerne A')]) |
90 ecrit_par = SubjectRelation('Personne', constraints=[RQLConstraint('S concerne A, O concerne A')]) |
91 attachment = SubjectRelation('File') |
91 attachment = SubjectRelation('File') |
92 |
92 |
93 |
93 |
|
94 class Frozable(EntityType): |
|
95 __permissions__ = { |
|
96 'read': ('managers', 'users'), |
|
97 'add': ('managers', 'users'), |
|
98 'update': ('managers', ERQLExpression('X frozen False'),), |
|
99 'delete': ('managers', ERQLExpression('X frozen False'),) |
|
100 } |
|
101 name = String() |
|
102 frozen = Boolean(default=False, |
|
103 __permissions__ = { |
|
104 'read': ('managers', 'users'), |
|
105 'add': ('managers', 'users'), |
|
106 'update': ('managers', 'owners') |
|
107 }) |
|
108 |
|
109 |
94 class Personne(EntityType): |
110 class Personne(EntityType): |
95 __unique_together__ = [('nom', 'prenom', 'datenaiss')] |
111 __unique_together__ = [('nom', 'prenom', 'datenaiss')] |
96 nom = String(fulltextindexed=True, required=True, maxsize=64) |
112 nom = String(fulltextindexed=True, required=True, maxsize=64) |
97 prenom = String(fulltextindexed=True, maxsize=64) |
113 prenom = String(fulltextindexed=True, maxsize=64) |
98 civility = String(maxsize=1, default='M', fulltextindexed=True) |
114 civility = String(maxsize=1, default='M', fulltextindexed=True) |