Browse Source

Updated LeFactory. Now generating LeClass and LeType from _LeClass and _LeType

Yann Weber 9 years ago
parent
commit
1558dcf519
4 changed files with 15 additions and 25 deletions
  1. 2
    2
      leapi/datasources/ledatasourcesql.py
  2. 1
    1
      leapi/leclass.py
  3. 11
    4
      leapi/lefactory.py
  4. 1
    18
      leapi/letype.py

+ 2
- 2
leapi/datasources/ledatasourcesql.py View File

@@ -7,7 +7,7 @@ import leapi
7 7
 from leapi.datasources.dummy import DummyDatasource
8 8
 from leapi.leobject import REL_SUB, REL_SUP
9 9
 
10
-from leapi.letype import LeType
10
+from leapi.lecrud import _LeCrud
11 11
 
12 12
 from mosql.db import Database, all_to_dicts, one_to_dict
13 13
 from mosql.query import select, insert, update, delete, join
@@ -268,7 +268,7 @@ class LeDataSourceSQL(DummyDatasource):
268 268
     # @param get_sub bool : If True leo is the superior and we want subordinates, else its the opposite
269 269
     # @return a list of dict { 'id_relation':.., 'rank':.., 'lesup':.., 'lesub'.., 'rel_attrs': dict() }
270 270
     def get_related(self, leo, letype, get_sub=True):
271
-        if leapi.letype.LeType not in letype.__bases__:
271
+        if LeCrud.name2class('LeType') not in letype.__bases__:
272 272
             raise ValueError("letype argument should be a LeType child class, but got %s" % type(letype))
273 273
 
274 274
         if not isinstance(leo, LeType):

+ 1
- 1
leapi/leclass.py View File

@@ -6,7 +6,7 @@ import leapi
6 6
 
7 7
 ## @brief Represent an EmClass data instance
8 8
 # @note Is not a derivated class of LeObject because the concrete class will be a derivated class from LeObject
9
-class LeClass(object):
9
+class _LeClass(object):
10 10
 
11 11
     ## @brief Stores fieldtypes by field name
12 12
     _fieldtypes = dict()

+ 11
- 4
leapi/lefactory.py View File

@@ -140,8 +140,8 @@ from EditorialModel.fieldtypes import {needed_fieldtypes_list}
140 140
 import leapi
141 141
 import leapi.lecrud
142 142
 import leapi.leobject
143
-from leapi.leclass import LeClass
144
-from leapi.letype import LeType
143
+from leapi.leclass import _LeClass
144
+from leapi.letype import _LeType
145 145
 """
146 146
 
147 147
         result += """
@@ -185,11 +185,18 @@ class LeCrud(leapi.lecrud._LeCrud):
185 185
 
186 186
 ## @brief _LeObject concret class
187 187
 # @see leapi.leobject._LeObject
188
-class LeObject(leapi.leobject._LeObject, LeCrud):
188
+class LeObject(LeCrud, leapi.leobject._LeObject):
189 189
     _me_uid = {me_uid_l}
190 190
     _uid_fieldtype = {leo_uid_fieldtype}
191 191
     _leo_fieldtypes = {leo_fieldtypes}
192 192
 
193
+
194
+class LeClass(LeObject, _LeClass):
195
+    pass
196
+
197
+
198
+class LeType(LeClass, _LeType):
199
+    pass
193 200
 """.format(
194 201
             ds_classname = datasource_cls.__module__ + '.' + datasource_cls.__name__,
195 202
             ds_kwargs = repr(datasource_args),
@@ -218,7 +225,7 @@ class {name}(LeClass, LeObject):
218 225
             result += """
219 226
 ## @brief EmType {name} LeType child class
220 227
 # @see leobject::letype::LeType
221
-class {name}(LeType, {leclass}):
228
+class {name}({leclass}, LeType):
222 229
     _type_id = {uid}
223 230
 
224 231
 """.format(

+ 1
- 18
leapi/letype.py View File

@@ -11,12 +11,11 @@
11 11
 # @note LeObject will be generated by leapi.lefactory.LeFactory
12 12
 
13 13
 import leapi
14
-from leapi.leclass import LeClass
15 14
 from leapi.leobject import LeObjectError
16 15
 
17 16
 ## @brief Represent an EmType data instance
18 17
 # @note Is not a derivated class of LeClass because the concrete class will be a derivated class from LeClass
19
-class LeType(object):
18
+class _LeType(object):
20 19
     
21 20
     ## @brief Stores selected fields with key = name
22 21
     _fields = list()
@@ -193,19 +192,3 @@ class LeType(object):
193 192
     def update(cls, filters, datas):
194 193
         return leapi.lefactory.LeFactory.leobject().update(letype = cls, filters = filters, datas = datas)
195 194
         
196
-    ## @brief Insert a new LeType in the datasource
197
-    # @param **datas list : A list of dict containing the datas
198
-    # @return The lodel id of the new LeType or False
199
-    # @thorw A leo exception if invalid stuff
200
-    # @throw InvalidArgumentError if invalid argument
201
-    @classmethod
202
-    def insert(cls, datas):
203
-        return super(LeType, cls).insert(letype=cls, datas=datas)
204
-
205
-    @classmethod
206
-    def prepare_datas(cls, datas, complete = False, allow_internal = True):
207
-        ret_dats = self.check_datas_value(cls, datas, complete, allow_internal)
208
-        ret_datas = self.construct_data(cls, ret_datas)
209
-        ret_datas = self.check_data_consistency(cls, ret_datas)
210
-        return ret_datas
211
-

Loading…
Cancel
Save