1
0
Fork 0
mirror of https://github.com/yweber/lodel2.git synced 2026-06-22 09:30:48 +02:00

first shoot for fieldtypes

This commit is contained in:
ArnAud 2015-06-05 14:58:34 +02:00
commit d217eb89cc
2 changed files with 92 additions and 5 deletions

View file

@ -48,7 +48,7 @@ class EmField(EmComponent):
'uid' : uid,
'name' : name,
'fieldgroup_id' : em_fieldgroup.id,
'fieldtype_id' : em_fieldtype.id,
'fieldtype' : em_fieldtype.name,
'optional' : 1 if optional else 0,
'internal' : 1 if internal else 0,
}
@ -64,7 +64,7 @@ class EmField(EmComponent):
def populate(self):
row = super(EmField, self).populate()
self.em_fieldgroup = EditorialModel.fieldgroups.EmFieldGroup(int(row.fieldgroup_id))
self.em_fieldtype = EditorialModel.fieldtypes.EmFieldType(int(row.fieldtype_id))
self.em_fieldtype = EditorialModel.fieldtypes.get_field_type(row.fieldtype)
self.optional = True if row.optional == 1 else False;
self.internal = True if row.internal == 1 else False;
self.icon = row.icon
@ -78,7 +78,7 @@ class EmField(EmComponent):
values = {
'fieldgroup_id' : self.em_fieldgroup.id,
'fieldtype_id' : self.em_fieldtype.id,
'fieldtype' : self.em_fieldtype.name,
'optional' : 1 if self.optional else 0,
'internal' : 1 if self.internal else 0,
'icon' : self.icon,

View file

@ -1,8 +1,95 @@
#-*- coding: utf-8 -*-
from EditorialModel.components import EmComponent, EmComponentNotExistError
from Lodel.utils.mlstring import MlString
def get_field_type(name):
class_name = 'EmField_' + name
constructor = globals()[class_name]
instance = constructor()
return instance
class EmFieldType():
def __init__(self, id):
self.id = id
def __init__(self, name):
self.name = name
class EmField_integer(EmFieldType):
def __init__(self):
super(EmField_integer, self).__init__('integer')
def to_python(self, value):
if value == '':
self.value = 0
else:
self.value = int(value)
def to_sql(self, value = None):
if value is None:
value = self.value
return str(value)
def sql_column(self):
return "int(11) NOT NULL"
class EmField_boolean(EmFieldType):
def __init__(self):
super(EmField_boolean, self).__init__('boolean')
def to_python(self, value):
if value:
self.value = True
else:
self.value = False
return self.value
def to_sql(self, value = None):
if value is None:
value = self.value
return 1 if value else 0
def sql_column(self):
return "tinyint(1) DEFAULT NULL"
class EmField_char(EmFieldType):
def __init__(self):
super(EmField_char, self).__init__('char')
def to_python(self, value):
if value:
self.value = value
else:
self.value = ''
return self.value
def to_sql(self, value = None):
if value is None:
value = self.value
return value
def sql_column(self):
return "varchar(250) DEFAULT NULL"
class EmField_mlstring(EmFieldType):
def __init__(self):
super(EmField_mlstring, self).__init__('mlstring')
def to_python(self, value):
self.value = MlString.load(value)
return self.value
def to_sql(self, value = None):
if value is None:
value = self.value
return str(value)
def sql_column(self):
return "varchar(250) DEFAULT NULL"