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:
parent
5361ddc94a
commit
d217eb89cc
2 changed files with 92 additions and 5 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue