Source code for pyforms_web.controls.control_emptywidget

from pyforms_web.controls.control_base import ControlBase
from pyforms_web.basewidget import BaseWidget
import base64, dill
import simplejson
from pyforms_web.web.middleware import PyFormsMiddleware

[docs]class ControlEmptyWidget(ControlBase): def __init__(self, *args, **kwargs): super(ControlEmptyWidget,self).__init__(*args, **kwargs) self._parent = kwargs.get('parent', None) self._name = kwargs.get('name', None) if 'default' in kwargs: self.value = kwargs.get('default', None) def init_form(self): return """new ControlEmptyWidget('{0}', {1})""".format( self._name, simplejson.dumps(self.serialize()) ) def serialize(self): data = ControlBase.serialize(self) if isinstance(self.value, BaseWidget): data.update({ 'value':self.value.uid }) self.value.parent = self.parent else: data.update({'value':None, 'clear_widget': True}) return data def deserialize(self, properties): #self._label = properties.get('label','') #self._help = properties.get('help','') #self._visible = properties.get('visible',True) if isinstance(self.value, BaseWidget): self.value = PyFormsMiddleware.get_instance(self._value.uid) if self.value is not None: self.value.parent = self.parent else: self.value = None @property def value(self): return ControlBase.value.fget(self) @value.setter def value(self, value): ControlBase.value.fset(self, value) if value: value.LAYOUT_POSITION = self.place_id