Browse Source

Add the relation_name field to relation_common_fields list

We have to create a special fieldtype to handle this field
Yann Weber 9 years ago
parent
commit
da89046c33
2 changed files with 16 additions and 2 deletions
  1. 6
    0
      EditorialModel/classtypes.py
  2. 10
    2
      leapi/test/test_lerelation.py

+ 6
- 0
EditorialModel/classtypes.py View File

@@ -7,6 +7,7 @@ object_em_type_id = 'type_id'
7 7
 relation_uid = 'id_relation'
8 8
 relation_superior = 'superior'
9 9
 relation_subordinate = 'subordinate'
10
+relation_name = 'relation_name'
10 11
 
11 12
 
12 13
 common_fields = {
@@ -66,6 +67,11 @@ relations_common_fields = {
66 67
     relation_subordinate: {
67 68
         'fieldtype': 'leo',
68 69
         'superior': False,
70
+    },
71
+    relation_name: {
72
+        'fieldtype': 'char',
73
+        'max_length': 128,
74
+        'internal': 'automatic',
69 75
     }
70 76
 }
71 77
 

+ 10
- 2
leapi/test/test_lerelation.py View File

@@ -8,6 +8,7 @@ from unittest.mock import patch
8 8
 from collections import OrderedDict
9 9
 
10 10
 import EditorialModel
11
+import EditorialModel.classtypes
11 12
 import DataSource.dummy
12 13
 import leapi
13 14
 import leapi.test.utils
@@ -101,7 +102,7 @@ class LeHierarch(LeRelationTestCase):
101 102
                 [],
102 103
 
103 104
                 LeHierarch,
104
-                [ 'nature', 'rank', 'subordinate', 'depth', 'superior', 'id_relation'],
105
+                [ 'nature', 'rank', 'subordinate', 'depth', 'superior', 'id_relation', EditorialModel.classtypes.relation_name],
105 106
                 [('superior', '=', Numero(42))],
106 107
                 [],
107 108
             ),
@@ -116,6 +117,7 @@ class LeHierarch(LeRelationTestCase):
116 117
             self.assertEqual(len(cargs), 2)
117 118
             cargs=cargs[1]
118 119
             self.assertEqual(cargs['target_cls'], target, "%s != %s"%(cargs, eargs))
120
+            print("FUCK : ", cargs['field_list'])
119 121
             self.assertEqual(set(cargs['field_list']), set(field_ds), "%s != %s"%(cargs, eargs))
120 122
             self.assertEqual(cargs['filters'], filters_ds, "%s != %s"%(cargs, eargs))
121 123
             self.assertEqual(cargs['rel_filters'], rfilters_ds, "%s != %s"%(cargs, eargs))
@@ -182,6 +184,7 @@ class LeHierarch(LeRelationTestCase):
182 184
         for query, equery in queries:
183 185
             equery['rank'] = 1
184 186
             equery['depth'] = None
187
+            equery[EditorialModel.classtypes.relation_name] = None
185 188
 
186 189
             LeHierarch.insert(query)
187 190
             dsmock.assert_called_once_with(LeHierarch, **equery)
@@ -244,7 +247,12 @@ class LeRel2TypeTestCase(LeRelationTestCase):
244 247
         for query in queries:
245 248
             Rel_Textes2Personne.insert(query)
246 249
 
247
-            eres = {'nature': None, 'depth': None, 'rank': 0}
250
+            eres = {
251
+                    'nature': None,
252
+                    'depth': None,
253
+                    'rank': 0,
254
+                    EditorialModel.classtypes.relation_name: None,
255
+            }
248 256
             eres.update(query)
249 257
             for fname in ('superior', 'subordinate'):
250 258
                 if isinstance(eres[fname], int):

Loading…
Cancel
Save