def get_custom_element_function(self,field): from gluon.sqlhtml import OptionsWidget if OptionsWidget.has_options(field): widget=SQLFORM.widgets.options.widget(field,'no_selection').xml() script= """ function (value, options) { var el = document.createElement('div'); el.innerHTML='%s'.replace('>'+value+'<',' selected="selected">'+value+'<'); el.children[0].style.width="100%%"; return el; }""" % widget; return script; elif field.type=='boolean': return "get_bool_widget" else: if field.type=='time': calendar="el.children[0].onfocus=function(){time_setup(this.attributes['id'].value);};" elif field.type=='date': calendar="el.children[0].onfocus=function(){calendar_setup_date(this.attributes['id'].value);};" elif field.type=='datetime': calendar="el.children[0].onfocus=function(){calendar_setup_datetime(this.attributes['id'].value);};" elif field.type=='double': calendar="el.children[0].onfocus=function(){double_setup(this);};" elif field.type=='integer': calendar="el.children[0].onfocus=function(){integer_setup(this);};" else: calendar="" if field.widget: widget=field.widget(field,'a_value').xml().replace('<','\<').replace('>','\>').replace("'","\\'") else: widget=SQLFORM.widgets[field.type].widget(field,'a_value').xml() str=""" function (value, options) {var el = document.createElement('div'); el.innerHTML='%s'.replace('a_value',value); %s el.children[0].style.width="100%%"; return el; }""" return str% (widget,calendar);
def has_lookups(self,field): from gluon.sqlhtml import OptionsWidget return OptionsWidget.has_options(field)