Browse Source

Completing em_test modifications + completing the dump_infos method of LeFilteredQuery

- adding an EmClass to make a double link between indexes and texts
- adding subqueries infos to dump_infos method of LeFilteredQuery
Yann Weber 8 years ago
parent
commit
b8d5b5bba2
4 changed files with 57 additions and 5 deletions
  1. 44
    0
      em_test.py
  2. BIN
      examples/em_test.pickle
  3. 13
    5
      lodel/leapi/query.py
  4. BIN
      tests/editorial_model.pickle

+ 44
- 0
em_test.py View File

@@ -321,6 +321,50 @@ index_value = index_abstract.new_field(
321 321
         'fre': 'valeur'},
322 322
     data_handler = 'varchar')
323 323
 
324
+index_text = em.new_class(
325
+    'indextext',
326
+    display_name = {
327
+        'eng': 'Index Text',
328
+        'fre': 'Index Texte'},
329
+    help_text = {
330
+        'eng': 'Represent a link between a text and an index',
331
+        'fre': 'Represente le lien entre une entrée d\'index et un texte'},
332
+    parents = None,
333
+    abstract = False,
334
+    datasource = 'default')
335
+
336
+bref_indextext_text = index_text.new_field(
337
+    'text',
338
+    display_name = {
339
+        'eng': 'Text with this index',
340
+        'fre': 'Texte comportant cet index'},
341
+    data_handler = 'link',
342
+    allowed_classes = [text],
343
+    group = index_group)
344
+
345
+bref_indextext_index = index_text.new_field(
346
+    'index',
347
+    display_name = {
348
+        'eng': 'Index within the referencend text',
349
+        'fre': 'Reference vers l\'index concerné'},
350
+    data_handler = 'link',
351
+    allowed_classes = [index_abstract],
352
+    group = index_group)
353
+
354
+text.new_field( 'indexes',
355
+    display_name = {
356
+        'eng': 'Indexes',
357
+        'fre': 'Indexes'},
358
+    data_handler = 'list',
359
+    back_reference = ('Indextext', 'text'))
360
+
361
+index_abstract.new_field( 'texts',
362
+    display_name = {
363
+        'eng': 'Text referenced by this index',
364
+        'fre': 'Texte contenant cette index'},
365
+    data_handler = 'list',
366
+    back_reference = ('Indextext', 'index'))
367
+
324 368
 index_theme = em.new_class(
325 369
     'indexTheme',
326 370
     display_name = {

BIN
examples/em_test.pickle View File


+ 13
- 5
lodel/leapi/query.py View File

@@ -220,14 +220,22 @@ class LeFilteredQuery(LeQuery):
220 220
     def dump_infos(self):
221 221
         ret = super().dump_infos()
222 222
         ret['query_filter'] = self.__query_filter
223
+        ret['subqueries'] = self.subqueries
223 224
         return ret
224 225
 
225 226
     def __repr__(self):
226
-        ret = "<{classname} target={target_class} query_filter={query_filter}>"
227
-        return ret.format(
228
-                            classname=self.__class__.__name__,
229
-                            query_filter = self.__query_filter,
230
-                            target_class = self._target_class)
227
+        res = "<{classname} target={target_class} query_filter={query_filter}"
228
+        res = ret.format(
229
+            classname=self.__class__.__name__,
230
+            query_filter = self.__query_filter,
231
+            target_class = self._target_class)
232
+        if len(self.subqueries) > 0:
233
+            for n,subq in enumerate(self.subqueries):
234
+                res += "\n\tSubquerie %d : %s"
235
+                res %= (n, subq)
236
+        res += '>'
237
+        return res
238
+
231 239
     ## @brief Prepare filters for datasource
232 240
     # 
233 241
     #A filter can be a string or a tuple with len = 3.

BIN
tests/editorial_model.pickle View File


Loading…
Cancel
Save