Browse Source

group for SQL group not groups

ArnAud 9 years ago
parent
commit
c3bfb07246
5 changed files with 28 additions and 17 deletions
  1. 12
    1
      DataSource/MySQL/leapidatasource.py
  2. 2
    2
      leapi/leclass.py
  3. 6
    6
      leapi/lecrud.py
  4. 2
    2
      leapi/letype.py
  5. 6
    6
      leapi/test/test_lecrud.py

+ 12
- 1
DataSource/MySQL/leapidatasource.py View File

@@ -62,6 +62,17 @@ class LeDataSourceSQL(DummyDatasource):
62 62
             joins = [left_join(class_table, {main_lodel_id:class_lodel_id})]
63 63
             fields = [(main_table, common_fields), (class_table, main_class.fieldlist())]
64 64
 
65
+        elif target_cls.is_lehierarch():
66
+            main_table = self.datasource_utils.relations_table_name
67
+            print(field_list)
68
+            field_list = target_cls.name2class('LeRelation').fieldlist()
69
+            print(field_list)
70
+            fields = [(main_table, relations_common_fields)]
71
+        elif target_cls.is_lerel2type():
72
+            pass
73
+        else:
74
+            raise AttributeError("Target class '%s' in get() is not a Lodel Editorial Object !" % target_cls)
75
+
65 76
         # prefix column name in fields list
66 77
         prefixed_field_list = [self.datasource_utils.find_prefix(name, fields) for name in field_list]
67 78
 
@@ -90,7 +101,7 @@ class LeDataSourceSQL(DummyDatasource):
90 101
         # prefix filters'' column names, and prepare dict for mosql where {(fieldname, op): value}
91 102
         wheres = {(self.datasource_utils.find_prefix(name, fields), op):value for name,op,value in filters}
92 103
         query = select(main_table, select=prefixed_field_list, where=wheres, joins=joins, **kwargs)
93
-        #print ('SQL', query)
104
+        print ('SQL', query)
94 105
 
95 106
         # Executing the query
96 107
         cur = self.datasource_utils.query(self.connection, query)

+ 2
- 2
leapi/leclass.py View File

@@ -37,6 +37,6 @@ class _LeClass(_LeObject):
37 37
         return cls.fieldtypes().keys()
38 38
 
39 39
     @classmethod
40
-    def get(cls, query_filters, field_list=None, order=None, groups=None, limit=None, offset=0):
40
+    def get(cls, query_filters, field_list=None, order=None, group=None, limit=None, offset=0):
41 41
         query_filters.append(('class_id', '=', cls._class_id))
42
-        return super().get(query_filters, field_list, order=order, groups=groups, limit=limit, offset=offset)
42
+        return super().get(query_filters, field_list, order=order, group=group, limit=limit, offset=offset)

+ 6
- 6
leapi/lecrud.py View File

@@ -260,7 +260,7 @@ class _LeCrud(object):
260 260
     # @return A list of lodel editorial components instance
261 261
     # @todo think about LeObject and LeClass instanciation (partial instanciation, etc)
262 262
     @classmethod
263
-    def get(cls, query_filters, field_list=None, order=None, groups=None, limit=None, offset=0):
263
+    def get(cls, query_filters, field_list=None, order=None, group=None, limit=None, offset=0):
264 264
         if field_list is None or len(field_list) == 0:
265 265
             #default field_list
266 266
             field_list = cls.fieldlist()
@@ -277,10 +277,10 @@ class _LeCrud(object):
277 277
                 raise order #can be buffered and raised later, but _prepare_filters raise when fails
278 278
 
279 279
         #preparing groups
280
-        if groups:
281
-            groups = cls._prepare_order_fields(groups)
282
-            if isinstance(groups, Exception):
283
-                raise groups # can also be buffered and raised later
280
+        if group:
281
+            group = cls._prepare_order_fields(group)
282
+            if isinstance(group, Exception):
283
+                raise group # can also be buffered and raised later
284 284
 
285 285
         #checking limit and offset values
286 286
         if not (limit is None):
@@ -297,7 +297,7 @@ class _LeCrud(object):
297 297
                                             filters = filters,
298 298
                                             rel_filters = relational_filters,
299 299
                                             order=order,
300
-                                            groups=groups,
300
+                                            group=group,
301 301
                                             limit=limit,
302 302
                                             offset=offset
303 303
                                         )

+ 2
- 2
leapi/letype.py View File

@@ -65,9 +65,9 @@ class _LeType(_LeClass):
65 65
         return cls._fields
66 66
 
67 67
     @classmethod
68
-    def get(cls, query_filters, field_list = None, order = None, groups = None, limit = None, offset = 0):
68
+    def get(cls, query_filters, field_list = None, order = None, group = None, limit = None, offset = 0):
69 69
         query_filters.append(('type_id', '=', cls._type_id))
70
-        return super().get(query_filters, field_list, order, groups, limit, offset)
70
+        return super().get(query_filters, field_list, order, group, limit, offset)
71 71
 
72 72
     @classmethod
73 73
     def fieldtypes(cls):

+ 6
- 6
leapi/test/test_lecrud.py View File

@@ -305,7 +305,7 @@ class LeCrudTestCase(TestCase):
305 305
                                         filters = filters_ds,
306 306
                                         rel_filters = rfilters_ds,
307 307
                                         order=None,
308
-                                        groups=None,
308
+                                        group=None,
309 309
                                         limit=None,
310 310
                                         offset=0
311 311
                                     )
@@ -322,7 +322,7 @@ class LeCrudTestCase(TestCase):
322 322
                 {
323 323
                     'query_filters': [],
324 324
                     'field_list': ['lodel_id'],
325
-                    'groups': ['titre'],
325
+                    'group': ['titre'],
326 326
                     'limit': 10,
327 327
 
328 328
                 },
@@ -331,7 +331,7 @@ class LeCrudTestCase(TestCase):
331 331
                     'field_list': ['lodel_id'],
332 332
                     'filters': [],
333 333
                     'rel_filters': [],
334
-                    'groups': [('titre', 'ASC')],
334
+                    'group': [('titre', 'ASC')],
335 335
                     'order': None,
336 336
                     'limit': 10,
337 337
                     'offset': 0,
@@ -351,7 +351,7 @@ class LeCrudTestCase(TestCase):
351 351
                     'field_list': ['lodel_id'],
352 352
                     'filters': [],
353 353
                     'rel_filters': [((leapi.lecrud.REL_SUP, 'parent'), '=', '20')],
354
-                    'groups': None,
354
+                    'group': None,
355 355
                     'order': [('titre', 'ASC'), ('lodel_id', 'DESC')],
356 356
                     'limit': None,
357 357
                     'offset': 1024,
@@ -365,7 +365,7 @@ class LeCrudTestCase(TestCase):
365 365
                     'offset': 1024,
366 366
                     'limit': 2,
367 367
                     'order': ['titre', ('lodel_id', 'desc')],
368
-                    'groups': ['titre'],
368
+                    'group': ['titre'],
369 369
 
370 370
                 },
371 371
                 {
@@ -373,7 +373,7 @@ class LeCrudTestCase(TestCase):
373 373
                     'field_list': ['lodel_id'],
374 374
                     'filters': [],
375 375
                     'rel_filters': [((leapi.lecrud.REL_SUP, 'parent'), '=', '20')],
376
-                    'groups': [('titre', 'ASC')],
376
+                    'group': [('titre', 'ASC')],
377 377
                     'order': [('titre', 'ASC'), ('lodel_id', 'DESC')],
378 378
                     'limit': 2,
379 379
                     'offset': 1024,

Loading…
Cancel
Save