Browse Source

First implementations of the can_override method on the data_handler types

Roland Haroutiounian 9 years ago
parent
commit
00f02c2c18

+ 6
- 1
lodel/leapi/datahandlers/data_fields/text.py View File

@@ -4,7 +4,12 @@ from ..data_field import DataField
4 4
 
5 5
 class DataHandler(DataField):
6 6
     help = 'A text field (big string)'
7
-    ftype = 'text'
7
+    base_type = 'text'
8 8
 
9 9
     def __init__(self, **kwargs):
10 10
         super(self.__class__, self).__init__(ftype='text', **kwargs)
11
+
12
+    def can_override(self, data_handler):
13
+        if data_handler.__class__.base_type != self.__class__.base_type:
14
+            return False
15
+        return True

+ 6
- 0
lodel/leapi/datahandlers/data_fields/uid.py View File

@@ -5,6 +5,7 @@ from .integer import EmDataField as IntegerDataField
5 5
 class DataHandler(IntegerDataField):
6 6
 
7 7
     help = 'Fieldtype designed to handle editorial model UID'
8
+    base_type = 'int'
8 9
 
9 10
     ## @brief A uid field
10 11
     # @param **kwargs
@@ -16,3 +17,8 @@ class DataHandler(IntegerDataField):
16 17
     def _check_data_value(self, value):
17 18
         return (value, None)
18 19
 
20
+    def can_override(self,data_handler):
21
+        if data_handler.__class__.base_type != self.__class__.base_type:
22
+            return False
23
+
24
+        return True

+ 12
- 0
lodel/leapi/datahandlers/data_fields/varchar.py View File

@@ -3,10 +3,22 @@ from ..data_field import DataField
3 3
 
4 4
 
5 5
 class DataHandler(DataField):
6
+
6 7
     help = 'Basic string (varchar) field. Default size is 64 characters'
8
+    base_type = 'char'
7 9
 
8 10
     ## @brief A string field
9 11
     # @brief max_length int: The maximum length of this field
10 12
     def __init__(self, max_length=64, **kwargs):
11 13
         self.max_length = int(max_length)
12 14
         super().__init__(**kwargs)
15
+
16
+    def can_override(self, data_handler):
17
+
18
+        if data_handler.__class__.base_type != self.__class__.base_type:
19
+            return False
20
+
21
+        if data_handler.max_length != self.max_length:
22
+            return False
23
+
24
+        return True

Loading…
Cancel
Save