@ -1,13 +1,13 @@
html_field = u '''
html_field = u '''
< li class = " {classes} " >
< li class = " {classes} " >
< p class = " form-field-title " > { title } < / p >
< p class = " form-field-title " > { title } < / p >
< p class = " form-field-input " > { input } < span class = " error " > { errors } < / span > < / p >
< p class = " form-field-input " > { h_ input} < span class = " error " > { errors } < / span > < / p >
< / li >
< / li >
'''
'''
html_field_checkbox = u '''
html_field_checkbox = u '''
< li class = " checkbox {classes} " >
< li class = " checkbox {classes} " >
< p class = " form-field-input " > { input } < p class = " form-field-title " > { title } < / p > < span class = " error " > { errors } < / span > < / p >
< p class = " form-field-input " > { h_ input} < p class = " form-field-title " > { title } < / p > < span class = " error " > { errors } < / span > < / p >
< / li >
< / li >
'''
'''
@ -15,12 +15,12 @@ html_field_checkbox = u'''
class FormRender ( ) :
class FormRender ( ) :
field_tpl = {
field_tpl = {
" string " : u ' <input {required} type= " text " name= " {name} " value= " {value} " size= " {size} " class= " {classes} " style= " {style} " /> ' ,
" string " : u ' <input {required} type= " text " name= " {name} " value= " {value} " size= " {size} " class= " {classes} " style= " {style} " /> ' ,
" number " : u ' <input {required} type= " number " min= " {min} " max= " {max} " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" number " : u ' <input {required} type= " number " min= " {minval } " max= " {maxval } " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" integer " : u ' <input {required} type= " number " min= " {min} " max= " {max} " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" integer " : u ' <input {required} type= " number " min= " {minval } " max= " {maxval } " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" float " : u ' <input {required} type= " number " min= " {min} " max= " {max} " step= " any " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" float " : u ' <input {required} type= " number " min= " {minval } " max= " {maxval } " step= " any " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" date " : u ' <input {required} type= " date " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" date " : u ' <input {required} type= " date " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" file " : u ' <input {required} type= " file " name= " {name} " class= " {classes} " style= " {style} " /> ' ,
" file " : u ' <input {required} type= " file " name= " {name} " class= " {classes} " style= " {style} " /> ' ,
" password " : u ' <input {required} type= " password " min= " {min} " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" password " : u ' <input {required} type= " password " min= " {minval } " name= " {name} " value= " {value} " class= " {classes} " style= " {style} " /> ' ,
" text " : u ' <textarea {required} name= " {name} " rows= " {rows} " cols= " {cols} " style= " {style} " class= " {classes} " > {value} </textarea> ' ,
" text " : u ' <textarea {required} name= " {name} " rows= " {rows} " cols= " {cols} " style= " {style} " class= " {classes} " > {value} </textarea> ' ,
" radio_option " : u ' <input {checked} type= " radio " name= " {name} " value= " {value} " class= " {classes} style= " {style} " " > {label} <br/> ' ,
" radio_option " : u ' <input {checked} type= " radio " name= " {name} " value= " {value} " class= " {classes} style= " {style} " " > {label} <br/> ' ,
" select_option " : u ' <option value= " {value} " style= " {style} " {selected} > {label} </option> ' ,
" select_option " : u ' <option value= " {value} " style= " {style} " {selected} > {label} </option> ' ,
@ -51,45 +51,63 @@ class FormRender():
return new_params
return new_params
def r_field ( self , type , * * kwargs ) :
def r_field ( self , field_ type, * * kwargs ) :
params = self . cast_params ( kwargs )
params = self . cast_params ( kwargs )
method_name = ' r_field_ {0} ' . format ( type )
method_name = ' r_field_ {0} ' . format ( field_ type)
method = getattr ( self , method_name , None )
method = getattr ( self , method_name , None )
return method ( * * params )
return method ( * * params )
def r_field_string ( self , name , value , size = 50 , required = False , classes = [ ] , style = " " ) :
def r_field_string ( self , name , value , size = 50 , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' string ' ]
tpl = self . field_tpl [ ' string ' ]
return tpl . format ( name = name , value = value , size = size , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , size = size , required = required , classes = classes , style = style )
def r_field_number ( self , name , value , min = None , max = None , required = False , classes = [ ] , style = " " ) :
def r_field_number ( self , name , value , minval = None , maxval = None , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' number ' ]
tpl = self . field_tpl [ ' number ' ]
return tpl . format ( name = name , value = value , min = min , max = max , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , minval = minval , maxval = maxval , required = required , classes = classes , style = style )
def r_field_integer ( self , name , value , min = None , max = None , required = False , classes = [ ] , style = " " ) :
def r_field_integer ( self , name , value , minval = None , maxval = None , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' integer ' ]
tpl = self . field_tpl [ ' integer ' ]
return tpl . format ( name = name , value = value , min = min , max = max , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , minval = minval , maxval = maxval , required = required , classes = classes , style = style )
def r_field_float ( self , name , value , min = None , max = None , required = False , classes = [ ] , style = " " ) :
def r_field_float ( self , name , value , minval = None , maxval = None , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' integer ' ]
tpl = self . field_tpl [ ' integer ' ]
return tpl . format ( name = name , value = value , min = min , max = max , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , minval = minval , maxval = maxval , required = required , classes = classes , style = style )
def r_field_date ( self , name , value , required = False , classes = [ ] , style = " " ) :
def r_field_date ( self , name , value , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' date ' ]
tpl = self . field_tpl [ ' date ' ]
return tpl . format ( name = name , value = value , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , required = required , classes = classes , style = style )
def r_field_file ( self , name , required = False , classes = [ ] , style = " " ) :
def r_field_file ( self , name , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' file ' ]
tpl = self . field_tpl [ ' file ' ]
return tpl . format ( name = name , required = required , classes = classes , style = style )
return tpl . format ( name = name , required = required , classes = classes , style = style )
def r_field_password ( self , name , value , min = None , required = False , classes = [ ] , style = " " ) :
def r_field_password ( self , name , value , minval = None , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' password ' ]
tpl = self . field_tpl [ ' password ' ]
return tpl . format ( name = name , value = value , min = min , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , minval = minval , required = required , classes = classes , style = style )
def r_field_text ( self , name , value , rows = 4 , cols = 80 , required = False , classes = [ ] , style = " " ) :
def r_field_text ( self , name , value , rows = 4 , cols = 80 , required = False , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' text ' ]
tpl = self . field_tpl [ ' text ' ]
return tpl . format ( name = name , value = value , rows = rows , cols = cols , required = required , classes = classes , style = style )
return tpl . format ( name = name , value = value , rows = rows , cols = cols , required = required , classes = classes , style = style )
def r_field_radio ( self , name , value , options , classes = [ ] , style = " " ) :
def r_field_radio ( self , name , value , options , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl_option = self . field_tpl [ ' radio_option ' ]
tpl_option = self . field_tpl [ ' radio_option ' ]
radio_elems = [ ]
radio_elems = [ ]
for o_value , o_label in options :
for o_value , o_label in options :
@ -100,10 +118,14 @@ class FormRender():
return u ' ' . join ( radio_elems )
return u ' ' . join ( radio_elems )
def r_field_checkbox ( self , name , checked , classes = ' ' , style = " " ) :
def r_field_checkbox ( self , name , checked , classes = ' ' , style = " " ) :
if classes is None :
classes = [ ]
tpl = self . field_tpl [ ' checkbox ' ]
tpl = self . field_tpl [ ' checkbox ' ]
return tpl . format ( name = name , checked = checked , classes = classes , style = style )
return tpl . format ( name = name , checked = checked , classes = classes , style = style )
def r_field_select ( self , name , value , options , classes = [ ] , style = " " ) :
def r_field_select ( self , name , value , options , classes = None , style = " " ) :
if classes is None :
classes = [ ]
tpl_option = self . field_tpl [ ' select_option ' ]
tpl_option = self . field_tpl [ ' select_option ' ]
select_elems = [ ]
select_elems = [ ]
for o_value , o_label in options :
for o_value , o_label in options :
@ -115,13 +137,13 @@ class FormRender():
tpl = self . field_tpl [ ' select ' ]
tpl = self . field_tpl [ ' select ' ]
return tpl . format ( name = name , select_elems = ' ' . join ( select_elems ) , classes = classes , style = style )
return tpl . format ( name = name , select_elems = ' ' . join ( select_elems ) , classes = classes , style = style )
def r_form_line ( self , type , title , input , classes , errors ) :
def r_form_line ( self , field_ type, title , h_ input, classes , errors ) :
if type == ' checkbox ' :
if field_ type == ' checkbox ' :
html = html_field_checkbox
html = html_field_checkbox
else :
else :
html = html_field
html = html_field
return ( html . format ( classes = ' ' . join ( classes ) ,
return ( html . format ( classes = ' ' . join ( classes ) ,
title = title ,
title = title ,
input = input ,
h_ input= h_ input,
errors = u ' , ' . join ( errors ) ) )
errors = u ' , ' . join ( errors ) ) )