|
@@ -1,14 +1,8 @@
|
1
|
1
|
#-*- coding: utf-8 -*-
|
2
|
2
|
|
3
|
3
|
from EditorialModel.components import EmComponent
|
4
|
|
-from EditorialModel.classes import EmClass
|
5
|
4
|
import EditorialModel.fieldtypes as ftypes
|
6
|
5
|
|
7
|
|
-from Database import sqlutils
|
8
|
|
-import sqlalchemy as sql
|
9
|
|
-
|
10
|
|
-import EditorialModel
|
11
|
|
-
|
12
|
6
|
|
13
|
7
|
## Represents groups of EmField associated with an EmClass
|
14
|
8
|
#
|
|
@@ -23,31 +17,7 @@ class EmFieldGroup(EmComponent):
|
23
|
17
|
## List of fields
|
24
|
18
|
_fields = [('class_id', ftypes.EmField_integer)]
|
25
|
19
|
|
26
|
|
- @classmethod
|
27
|
|
- ## Create a new EmFieldGroup
|
28
|
|
- #
|
29
|
|
- # Save it in database and return an instance*
|
30
|
|
- # @param name str: The name of the new EmFieldGroup
|
31
|
|
- # @param em_class EmClass : An EditorialModel::classes::EmClass instance
|
32
|
|
- # @param **em_component_args : @ref EditorialModel::components::create()
|
33
|
|
- # @throw EmComponentExistError If an EmFieldGroup with this name allready exists
|
34
|
|
- # @throw TypeError If an argument is of an unexepted type
|
35
|
|
- def create(cls, name, em_class, **em_component_args):
|
36
|
|
- if not isinstance(name, str):
|
37
|
|
- raise TypeError("Excepting <class str> as name. But got " + str(type(name)))
|
38
|
|
- if not isinstance(em_class, EmClass):
|
39
|
|
- raise TypeError("Excepting <class EmClass> as em_class. But got "+str(type(name)))
|
40
|
|
-
|
41
|
|
- return super(EmFieldGroup, cls).create(name=name, class_id=em_class.uid, **em_component_args)
|
42
|
|
-
|
43
|
20
|
## Get the list of associated fields
|
44
|
21
|
# @return A list of EmField instance
|
45
|
22
|
def fields(self):
|
46
|
|
- meta = sqlutils.meta(self.db_engine)
|
47
|
|
- field_table = sql.Table(EditorialModel.fields.EmField.table, meta)
|
48
|
|
- req = field_table.select(field_table.c.uid).where(field_table.c.fieldgroup_id == self.uid)
|
49
|
|
- conn = self.db_engine.connect()
|
50
|
|
- res = conn.execute(req)
|
51
|
|
- rows = res.fetchall()
|
52
|
|
- conn.close()
|
53
|
|
- return [EditorialModel.fields.EmField(row['uid']) for row in rows]
|
|
23
|
+ pass
|