Source code for pyforms_web.controls.control_feed

from pyforms_web.controls.control_base import ControlBase
import simplejson

[docs]class ControlFeed(ControlBase): EMPTY_MSG = '<div class="ui basic center very padded segment"><i class="icon ban" ></i></div>' def __init__(self, *args, **kwargs): self._read_only = False self.has_more = False self._selected_index = -1 self.item_selection_changed_event = None self.mode = kwargs.get('mode','feed') self.empty_message = kwargs.get('empty_message', self.EMPTY_MSG) super(ControlFeed, self).__init__(*args, **kwargs) self._value = [] self.action_param = None self._clear = False def init_form(self): return "new ControlFeed('{0}', {1})".format( self._name, simplejson.dumps(self.serialize()) )
[docs] def clear(self): self._clear = True self._value = [] self.mark_to_update_client()
@property def selected_row_index(self): return self._selected_index @selected_row_index.setter def selected_row_index(self, value): self.mark_to_update_client() self._selected_index = value
[docs] def insert_feed(self, pk, html): self.mark_to_update_client() data = self.value data.append({ 'pk':pk, 'html':html }) self.value = data
@property def value(self): return ControlBase.value.fget(self) @value.setter def value(self, value): self._selected_index = -1 ControlBase.value.fset(self, value) def serialize(self): res = ControlBase.serialize(self) res.update({ 'clear':self._clear, 'has_more': self.has_more, 'mode': self.mode, 'empty_message': self.empty_message }) self._clear = False self.value = [] return res def deserialize(self, properties): ControlBase.deserialize(self,properties) self._value = [] self.action_param = properties.get('action_param', None)