Browse Source

Merge branch 'newlodel' of git.labocleo.org:lodel2 into newlodel

Yann Weber 9 years ago
parent
commit
fa949ddd64

+ 8
- 0
Lodel/leapi/datahandlers/data_field.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from .field_data_handler import FieldDataHandler
3
+
4
+
5
+class DataField(FieldDataHandler):
6
+
7
+    def __init__(self):
8
+        pass

+ 1
- 0
Lodel/leapi/datahandlers/data_fields/__init__.py View File

@@ -0,0 +1 @@
1
+__author__ = 'roland'

+ 22
- 0
Lodel/leapi/datahandlers/data_fields/bool.py View File

@@ -0,0 +1,22 @@
1
+# -*- coding: utf-8 -*-
2
+from ..data_field import DataField
3
+
4
+
5
+class EmDataField(DataField):
6
+
7
+    help = 'A basic boolean field'
8
+    ftype = 'bool'
9
+
10
+    ## @brief A boolean field
11
+    def __init__(self, **kwargs):
12
+        if 'check_data_value' not in kwargs:
13
+            kwargs['check_data_value'] = self.check_value
14
+        super(Bool, self).__init__(ftype='bool', **kwargs)
15
+
16
+    def check_value(self, value):
17
+        error = None
18
+        try:
19
+            value = bool(value)
20
+        except(ValueError, TypeError):
21
+            error = TypeError("The value '%s' is not, and will never, be a boolean" % value)
22
+        return (value, error)

+ 16
- 0
Lodel/leapi/datahandlers/data_fields/datetime.py View File

@@ -0,0 +1,16 @@
1
+# -*- coding: utf-8 -*-
2
+from ..data_field import DataField
3
+
4
+
5
+class EmDataField(DataField):
6
+
7
+    help = 'A datetime field. Take two boolean options now_on_update and now_on_create'
8
+
9
+    ## @brief A datetime field
10
+    # @param now_on_update bool : If true, the date is set to NOW on update
11
+    # @param now_on_create bool : If true, the date is set to NEW on creation
12
+    # @param **kwargs
13
+    def __init__(self, now_on_update=False, now_on_create=False, **kwargs):
14
+        self.now_on_update = now_on_update
15
+        self.now_on_create = now_on_create
16
+        super(Datetime, self).__init__(**kwargs)

+ 12
- 0
Lodel/leapi/datahandlers/data_fields/file.py View File

@@ -0,0 +1,12 @@
1
+# -*- coding: utf-8 -*-
2
+from ..data_field import DataField
3
+
4
+
5
+class EmDataField(DataField):
6
+
7
+    ## @brief a file field
8
+    # @param upload_path str : None by default
9
+    # @param **kwargs
10
+    def __init__(self, upload_path=None, **kwargs):
11
+        self.upload_path = upload_path
12
+        super(File, self).__init__(ftype='file', **kwargs)

+ 19
- 0
Lodel/leapi/datahandlers/data_fields/integer.py View File

@@ -0,0 +1,19 @@
1
+# -*- coding: utf-8 -*-
2
+from ..data_field import DataField
3
+
4
+
5
+class EmDataField(DataField):
6
+
7
+    help = 'Basic integer field'
8
+    ftype = 'int'
9
+
10
+    def __init__(self, **kwargs):
11
+        super(Integer, self).__init__(ftype='int', **kwargs)
12
+
13
+    def _check_data_value(self, value):
14
+        error = None
15
+        try:
16
+            value = int(value)
17
+        except(ValueError, TypeError):
18
+            error = TypeError("The value '%s' is not, and will never, be an integer" % value)
19
+        return (value, error)

+ 10
- 0
Lodel/leapi/datahandlers/data_fields/text.py View File

@@ -0,0 +1,10 @@
1
+# -*- coding: utf-8 -*-
2
+from ..data_field import DataField
3
+
4
+
5
+class EmDataField(DataField):
6
+    help = 'A text field (big string)'
7
+    ftype = 'text'
8
+
9
+    def __init__(self):
10
+        super(Text, self).__init__(ftype='text', **kwargs)

+ 18
- 0
Lodel/leapi/datahandlers/data_fields/uid.py View File

@@ -0,0 +1,18 @@
1
+# -*- coding: utf-8 -*-
2
+from .integer import EmDataField
3
+
4
+
5
+class EmDataField(EmDataField):
6
+
7
+    help = 'Fieldtype designed to handle editorial model UID'
8
+
9
+    ## @brief A uid field
10
+    # @param **kwargs
11
+    def __init__(self, is_id_class, **kwargs):
12
+        self._is_id_class = is_id_class
13
+        kwargs['internal'] = 'automatic'
14
+        super().__init__(is_id_class=is_id_class, **kwargs)
15
+
16
+    def _check_data_value(self, value):
17
+        return (value, None)
18
+

+ 33
- 0
Lodel/leapi/datahandlers/field_data_handler.py View File

@@ -0,0 +1,33 @@
1
+# -*- coding: utf-8 -*-
2
+import importlib
3
+
4
+class FieldDataHandler(object):
5
+
6
+    help_text = 'Generic Field Data Handler'
7
+
8
+    ## @brief constructor
9
+    def __init__(self):
10
+        pass
11
+
12
+    ## @brief calls the data_field defined _check_data_value() method
13
+    # @return tuple (value, error|None)
14
+    def check_data_value(self, value):
15
+        return self._check_data_value(value)
16
+
17
+    def _check_data_value(self, value):
18
+        return (value, None)
19
+
20
+    ## @brief given a field type name, returns the associated python class
21
+    # @param fieldtype_name str : A field type name
22
+    # @return DataField child class
23
+    @staticmethod
24
+    def from_name(fieldtype_name):
25
+        mod = importlib.import_module(FieldDataHandler.module_name(fieldtype_name))
26
+        return mod.EmDataField
27
+
28
+    ## @brief get a module name given a fieldtype name
29
+    # @param fieldtype_name str : a field type name
30
+    # @return a string representing a python module name
31
+    @staticmethod
32
+    def module_name(self, fieldtype_name):
33
+        return 'leapi.datahandlers.data_fields.%s' % fieldtype_name

+ 8
- 0
Lodel/leapi/datahandlers/reference.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from .field_data_handler import FieldDataHandler
3
+
4
+
5
+class Reference(FieldDataHandler):
6
+
7
+    def __init__(self):
8
+        self.allowed = True

+ 8
- 0
Lodel/leapi/datahandlers/references/Dict.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from ..reference import Reference
3
+
4
+
5
+class Dict(Reference):
6
+
7
+    def __init__(self):
8
+        pass

+ 8
- 0
Lodel/leapi/datahandlers/references/Link.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from ..reference import Reference
3
+
4
+
5
+class Link(Reference):
6
+
7
+    def __init__(self):
8
+        pass

+ 8
- 0
Lodel/leapi/datahandlers/references/List.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from ..reference import Reference
3
+
4
+
5
+class List(Reference):
6
+
7
+    def __init__(self):
8
+        pass

+ 8
- 0
Lodel/leapi/datahandlers/references/Set.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from ..reference import Reference
3
+
4
+
5
+class Set(Reference):
6
+
7
+    def __init__(self):
8
+        pass

+ 1
- 0
Lodel/leapi/datahandlers/references/__init__.py View File

@@ -0,0 +1 @@
1
+__author__ = 'roland'

+ 8
- 0
Lodel/leapi/datahandlers/relation.py View File

@@ -0,0 +1,8 @@
1
+# -*- coding: utf-8 -*-
2
+from .field_data_handler import FieldDataHandler
3
+
4
+
5
+class Relation(FieldDataHandler):
6
+
7
+    def __init__(self):
8
+        self.backref_fieldname=''

Loading…
Cancel
Save