Source code for pyforms_web.controls.control_timeout

from pyforms_web.controls.control_base import ControlBase
from django.utils 	import timezone
from datetime 		import datetime, timedelta
import time
import dateutil.parser
import simplejson

[docs]class ControlTimeout(ControlBase): def __init__(self, *args, **kwargs): super(ControlTimeout, self).__init__(*args, **kwargs) self._last_trigger = timezone.now() self._play = True self._update_value = True self.value = 10000 self._update_interval = 1000 def init_form(self): return """new ControlTimeout('{0}', {1})""".format( self._name, simplejson.dumps(self.serialize()) )
[docs] def trigger_event(self): self._last_trigger = timezone.now() self._update_value = True self.trigger()
[docs] def trigger(self): pass
def serialize(self): data = { 'name': str(self.__class__.__name__), 'label': str(self._label if self._label else ''), 'help': str(self._help if self._help else ''), 'visible': int(self._visible), 'play': str(self._play), 'update_interval': self._update_interval, 'last_trigger': self._last_trigger.isoformat() } if self._update_value: data.update({'value': self.value, 'update_value': str(False) }) return data def deserialize(self, properties): self.value = int(properties.get('value',None)) self._label = properties.get('label','') self._help = properties.get('help','') self._visible = properties.get('visible',True) self._update_interval = properties.get('update_interval',1000) self._play = properties.get('play','True')=='True' or properties.get('play','True')==True self._update_value = properties.get('update_value', 'False')=='True' or properties.get('update_value', 'False')==True self._last_trigger = dateutil.parser.parse(properties.get('last_trigger')) @property def value(self): return ControlBase.value.fget(self) @value.setter def value(self, value): ControlBase.value.fset(self, value ) self._update_value = True
[docs] def play(self): self._update_value = True self._play = True
[docs] def stop(self): self._update_value = True self._play = False
[docs] def toggle_pause(self): self._play = not self._play