server/test/data/schema.py
changeset 5386 4c92202ab130
parent 4635 44a883148ab4
child 5423 e15abfdcce38
--- a/server/test/data/schema.py	Fri Apr 23 12:42:53 2010 +0200
+++ b/server/test/data/schema.py	Fri Apr 23 13:25:02 2010 +0200
@@ -6,8 +6,7 @@
 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
 """
 from yams.buildobjs import (EntityType, RelationType, RelationDefinition,
-                            SubjectRelation, ObjectRelation,
-                            RichString, String, Int, Boolean, Datetime)
+                            SubjectRelation, RichString, String, Int, Boolean, Datetime)
 from yams.constraints import SizeConstraint
 from cubicweb.schema import (WorkflowableEntityType, RQLConstraint,
                              ERQLExpression, RRQLExpression)
@@ -64,7 +63,10 @@
 
 class SubDivision(Division):
     __specializes_schema__ = True
-    travaille_subdivision = ObjectRelation('Personne')
+
+class travaille_subdivision(RelationDefinition):
+    subject = 'Personne'
+    object = 'SubDivision'
 
 from cubicweb.schemas.base import CWUser
 CWUser.get_relations('login').next().fulltextindexed = True
@@ -72,7 +74,11 @@
 class Note(WorkflowableEntityType):
     date = String(maxsize=10)
     type = String(maxsize=6)
-    para = String(maxsize=512)
+    para = String(maxsize=512,
+                  __permissions__ = {
+                      'read':   ('managers', 'users', 'guests'),
+                      'update': ('managers', ERQLExpression('X in_state S, S name "todo"')),
+                      })
 
     migrated_from = SubjectRelation('Note')
     attachment = SubjectRelation(('File', 'Image'))
@@ -91,31 +97,18 @@
     tel    = Int()
     fax    = Int()
     datenaiss = Datetime()
-    test   = Boolean()
+    test   = Boolean(__permissions__={
+        'read': ('managers', 'users', 'guests'),
+        'update': ('managers',),
+        })
     description = String()
     firstname = String(fulltextindexed=True, maxsize=64)
 
-    travaille = SubjectRelation('Societe')
     concerne = SubjectRelation('Affaire')
     connait = SubjectRelation('Personne')
     inline2 = SubjectRelation('Affaire', inlined=True, cardinality='?*')
-    comments = ObjectRelation('Comment')
 
 
-class fiche(RelationType):
-    inlined = True
-    subject = 'Personne'
-    object = 'Card'
-    cardinality = '??'
-
-class multisource_inlined_rel(RelationType):
-    inlined = True
-    cardinality = '?*'
-    subject = ('Card', 'Note')
-    object = ('Affaire', 'Note')
-
-class ecrit_par(RelationType):
-    inlined = True
 
 class connait(RelationType):
     symmetric = True
@@ -127,23 +120,30 @@
         'delete': ('managers', RRQLExpression('O owned_by U')),
         }
 
-class travaille(RelationType):
+class travaille(RelationDefinition):
     __permissions__ = {
         'read':   ('managers', 'users', 'guests'),
         'add':    ('managers', RRQLExpression('U has_update_permission S')),
         'delete': ('managers', RRQLExpression('O owned_by U')),
         }
+    subject = 'Personne'
+    object = 'Societe'
 
-class para(RelationType):
-    __permissions__ = {
-        'read':   ('managers', 'users', 'guests'),
-        'update': ('managers', ERQLExpression('X in_state S, S name "todo"')),
-        }
+class comments(RelationDefinition):
+    subject = 'Comment'
+    object = 'Personne'
 
-class test(RelationType):
-    __permissions__ = {'read': ('managers', 'users', 'guests'),
-                       'update': ('managers',),
-                       }
+class fiche(RelationDefinition):
+    inlined = True
+    subject = 'Personne'
+    object = 'Card'
+    cardinality = '??'
+
+class multisource_inlined_rel(RelationDefinition):
+    inlined = True
+    cardinality = '?*'
+    subject = ('Card', 'Note')
+    object = ('Affaire', 'Note')
 
 class multisource_rel(RelationDefinition):
     subject = ('Card', 'Note')
@@ -167,6 +167,9 @@
     subject = ('Personne', 'CWUser', 'Societe')
     object = ('Note')
 
+class ecrit_par(RelationType):
+    inlined = True
+
 class ecrit_par_1(RelationDefinition):
     name = 'ecrit_par'
     subject = 'Note'