|
@@ -10,128 +10,43 @@ class DummyDatasource(object):
|
10
|
10
|
self.module = module
|
11
|
11
|
self.conn_args = conn_args
|
12
|
12
|
self.conn_kargs = conn_kargs
|
13
|
|
-
|
14
|
|
- ## @brief update an existing LeObject
|
15
|
|
- # @param letype LeType : LeType child class
|
16
|
|
- # @param leclass LeClass : LeClass child class
|
|
13
|
+
|
|
14
|
+ ## @brief select lodel editorial components given filters
|
|
15
|
+ # @param target_cls LeCrud(class) : The component class concerned by the insert (a LeCrud child class (not instance !) )
|
17
|
16
|
# @param filters list : List of filters (see @ref leobject_filters )
|
18
|
17
|
# @param rel_filters list : List of relationnal filters (see @ref leobject_filters )
|
19
|
|
- # @param data dict : Dict representing fields and there values
|
20
|
|
- # @return True if success
|
21
|
|
- def update(self, letype, leclass, filters, rel_filters, data):
|
22
|
|
- print ("DummyDatasource.update: ", letype, leclass, filters, rel_filters, data)
|
23
|
|
- return True
|
24
|
|
-
|
25
|
|
- ## @brief create a new LeObject
|
26
|
|
- # @param letype LeType : LeType child class
|
27
|
|
- # @param leclass LeClass : LeClass child class
|
28
|
|
- # @param data list: a lis of dictionnary of field:value to save
|
29
|
|
- # @return lodel_id int: new lodel_id of the newly created LeObject
|
30
|
|
- def insert(self, letype, leclass, datas):
|
31
|
|
- print("DummyDatasource.insert: ", letype, leclass, datas)
|
32
|
|
- return 42
|
33
|
|
-
|
34
|
|
- ## @brief delete an existing LeObject
|
35
|
|
- # @param letype LeType : LeType child class
|
36
|
|
- # @param leclass LeClass : LeClass child class
|
37
|
|
- # @param filters list : list of tuples formatted as (FIELD, OPERATOR, VALUE) (see @ref leobject_filters )
|
38
|
|
- # @param relational_filters list : relationnal filters list (see @ref leobject_filters )
|
39
|
|
- # @return okay bool: True on success, it will raise on failure
|
40
|
|
- def delete(self, letype, leclass, filters, relational_filters):
|
41
|
|
- print("DummyDatasource.delete: ", letype, leclass, filters, relational_filters)
|
42
|
|
- return True
|
43
|
|
-
|
44
|
|
- ## @brief search for a collection of objects
|
45
|
|
- # @param leclass LeClass : LeClass instance
|
46
|
|
- # @param letype LeType : LeType instance
|
47
|
|
- # @param field_list list : list of fields to get from the datasource
|
48
|
|
- # @param filters list : list of tuples formatted as (FIELD, OPERATOR, VALUE) (see @ref leobject_filters )
|
49
|
|
- # @param relational_filters list : relationnal filters list (see @ref leobject_filters )
|
50
|
|
- # @return responses ({string:*}): a list of dict with field:value
|
51
|
|
- def get(self, leclass, letype, field_list, filters, relational_filters):
|
52
|
|
- print("DummyDatasource.get: ", leclass, letype, field_list, filters, relational_filters)
|
53
|
|
- return []
|
54
|
|
-
|
55
|
|
- ## @brief Add a superior to a LeObject
|
56
|
|
- # @note in the MySQL version the method will have a depth=None argument to allow reccursive calls to add all the path to the root with corresponding depth
|
57
|
|
- # @param lesup LeType | LeRoot : superior LeType child class instance or @ref
|
58
|
|
- # @param lesub LeType : subordinate LeType child class instance
|
59
|
|
- # @param nature str : A relation nature @ref EditorialModel.classtypesa
|
60
|
|
- # @param rank int : The rank of this relation
|
61
|
|
- # @param depth None|int : The depth of the relation (used to make reccursive calls in order to link with all superiors)
|
62
|
|
- # @return The relation ID or False if fails
|
63
|
|
- def add_superior(self, lesup, lesub, nature, rank, depth = None):
|
|
18
|
+ # @return a list of LeCrud child classes
|
|
19
|
+ def select(self, target_cls, filters, rel_filters):
|
64
|
20
|
pass
|
65
|
21
|
|
66
|
|
- ## @brief Delete a superior to a LeObject
|
67
|
|
- # @param lesup LeType : superior LeType child class instance
|
68
|
|
- # @param lesub Letype : subordinate LeType child class instance
|
69
|
|
- # @param nature str : A relation nature @ref EditorialModel.classtypes
|
70
|
|
- # @return True if deleted
|
71
|
|
- def del_superior(self, lesup, lesub, nature):
|
72
|
|
- pass
|
73
|
|
-
|
74
|
|
- ## @brief Fetch a superiors list ordered by depth for a LeType
|
75
|
|
- # @param lesub LeType : subordinate LeType child class instance
|
76
|
|
- # @param nature str : A relation nature @ref EditorialModel.classtypes
|
77
|
|
- # @return A list of LeType ordered by depth (the first is the direct superior)
|
78
|
|
- def get_superiors(self, lesub, nature):
|
79
|
|
- pass
|
80
|
|
-
|
81
|
|
- ## @brief Fetch the list of the subordinates given a nature
|
82
|
|
- # @param lesup LeType : superior LeType child class instance
|
83
|
|
- # @param nature str : A relation nature @ref EditorialModel.classtypes
|
84
|
|
- # @return A list of LeType ordered by rank that are subordinates of lesup in a "nature" relation
|
85
|
|
- def get_subordinates(self, lesup, nature):
|
|
22
|
+ ## @brief delete lodel editorial components given filters
|
|
23
|
+ # @param target_cls LeCrud(class) : The component class concerned by the insert (a LeCrud child class (not instance !) )
|
|
24
|
+ # @param filters list : List of filters (see @ref leobject_filters )
|
|
25
|
+ # @param rel_filters list : List of relationnal filters (see @ref leobject_filters )
|
|
26
|
+ # @return the number of deleted components
|
|
27
|
+ def delete(self, target_cls, filters, rel_filters):
|
86
|
28
|
pass
|
87
|
29
|
|
88
|
|
-
|
89
|
|
- ## @brief Make a relation between 2 LeType
|
90
|
|
- # @note rel2type relations. Superior is the LeType from the EmClass and subordinate the LeType for the EmType
|
91
|
|
- # @param lesup LeType : LeType child class instance that is from the EmClass containing the rel2type field
|
92
|
|
- # @param lesub LeType : LeType child class instance that is from the EmType linked by the rel2type field ( @ref EditorialModel.fieldtypes.rel2type.EmFieldType.rel_to_type_id )
|
93
|
|
- # @param rank int : Begin at 0 ?
|
94
|
|
- # @return The relation_id if success else return False
|
95
|
|
- def add_related(self, lesup, lesub, rank = 'last', **rel_attr):
|
|
30
|
+ ## @brief update an existing lodel editorial component
|
|
31
|
+ # @param target_cls LeCrud(class) : The component class concerned by the insert (a LeCrud child class (not instance !) )
|
|
32
|
+ # @param filters list : List of filters (see @ref leobject_filters )
|
|
33
|
+ # @param rel_filters list : List of relationnal filters (see @ref leobject_filters )
|
|
34
|
+ # @param **datas : Datas in kwargs
|
|
35
|
+ # @return The number of updated components
|
|
36
|
+ def update(self, lec_id, filters, rel_filters, **datas):
|
96
|
37
|
pass
|
97
|
38
|
|
98
|
|
- ## @brief Returns related LeType
|
99
|
|
- # @param leo LeType : The from LeType child class instance
|
100
|
|
- # @param letype LeType : The wanted LeType child class (not instance !)
|
101
|
|
- # @param get_sub bool : If True, leo will be the superior and we wants all subordinates of Type letype, else its the oposite, leo is the subordinates and we want superiors with Type letype
|
102
|
|
- # @return a list of dict { 'id_relation':.., 'rank':.., 'lesup':.., 'lesub'.., 'rel_attrs': dict() }
|
103
|
|
- def get_related(self, leo, letype, get_sub=True):
|
104
|
|
- pass
|
105
|
|
-
|
106
|
|
- ## @brief Delete a relation between 2 LeType
|
107
|
|
- # @param lesup LeType
|
108
|
|
- # @param lesub LeType
|
109
|
|
- # @param fields dict
|
110
|
|
- # @return True if success else return False
|
111
|
|
- def del_related(self, lesup, lesub, fields=None):
|
112
|
|
- pass
|
113
|
|
-
|
114
|
|
- ## @brief Fetch a relation
|
115
|
|
- # @param id_relation int : The relation identifier
|
116
|
|
- # @return a dict{'id_relation':.., 'lesup':.., 'lesub':.., < if exists 'dict_attr':..>}
|
117
|
|
- def get_relation(self, id_relation, no_attr = False):
|
118
|
|
- pass
|
119
|
|
-
|
120
|
|
- ## @brief Fetch all relations concerning an object (rel2type relations)
|
121
|
|
- # @param leo LeType : LeType child instance
|
122
|
|
- # @return a list of tuple (lesup, lesub, dict_attr)
|
123
|
|
- def get_relations(self, leo):
|
|
39
|
+ ## @brief insert a new lodel editorial component
|
|
40
|
+ # @param target_cls LeCrud(class) : The component class concerned by the insert (a LeCrud child class (not instance !) )
|
|
41
|
+ # @param **datas : The datas to insert
|
|
42
|
+ # @return The inserted component's id
|
|
43
|
+ def insert(self, target_cls, **datas):
|
124
|
44
|
pass
|
125
|
|
-
|
126
|
|
- ## @brief Set the rank of a relation identified by its ID
|
127
|
|
- # @param id_relation int : relation ID
|
128
|
|
- # @param rank int|str : 'first', 'last', or an integer value
|
129
|
|
- def set_relation_rank(self, id_relation, rank):
|
|
45
|
+
|
|
46
|
+ ## @brief insert multiple editorial component
|
|
47
|
+ # @param target_cls LeCrud(class) : The component class concerned by the insert (a LeCrud child class (not instance !) )
|
|
48
|
+ # @param datas list : A list of dict representing the datas to insert
|
|
49
|
+ # @return int the number of inserted component
|
|
50
|
+ def batch_insert(self, target_cls, datas):
|
130
|
51
|
pass
|
131
|
52
|
|
132
|
|
- ## @brief Delete a relation between two LeType
|
133
|
|
- # @note It will deleted a relation in a rel2type between lesup.Class and lesub.Type
|
134
|
|
- # @param id_relation int : The relation identifier
|
135
|
|
- # @return True if deleted
|
136
|
|
- def del_relation(self, id_relation):
|
137
|
|
- pass
|