def get_defaults(self, **kw): params, data = TinyDict.split(kw) data = {} ds = tc.utils.parse_datetime(params.starts) de = tc.utils.parse_datetime(params.ends) if 'date_stop' in params.fields: kind = params.fields['date_stop']['kind'] data[params.fields['date_stop']['name']] = format.format_datetime( de.timetuple(), kind) elif 'date_delay' in params.fields: # convert the end time in hours day_length = params.fields['day_length'] tds = time.mktime(ds.timetuple()) tde = time.mktime(de.timetuple()) n = (tde - tds) / (60 * 60) if n > day_length: d = math.floor(n / 24) h = n % 24 n = d * day_length + h data[params.fields['date_delay']['name']] = n kind = params.fields['date_start']['kind'] data[params.fields['date_start']['name']] = format.format_datetime( ds.timetuple(), kind) return data
def get_defaults(self, **kw): params, data = TinyDict.split(kw) data = {} ds = tc.utils.parse_datetime(params.starts) de = tc.utils.parse_datetime(params.ends) if 'date_stop' in params.fields: kind = params.fields['date_stop']['kind'] data[params.fields['date_stop']['name']] = format.format_datetime(de.timetuple(), kind) elif 'date_delay' in params.fields: # convert the end time in hours day_length = params.fields['day_length'] tds = time.mktime(ds.timetuple()) tde = time.mktime(de.timetuple()) n = (tde - tds) / (60 * 60) if n > day_length: d = math.floor(n / 24) h = n % 24 n = d * day_length + h data[params.fields['date_delay']['name']] = n kind = params.fields['date_start']['kind'] data[params.fields['date_start']['name']] = format.format_datetime(ds.timetuple(), kind) return data
def get_text(self): return format.format_datetime(self.value, kind=self.attrs.get('type', 'datetime'))
def _from_python(self, value, state): return format.format_datetime(value, kind=self.kind)
import simplejson import cherrypy import actions from openobject.i18n.format import format_datetime from openobject.tools import url, expose from openerp.controllers import SecuredController from openerp.utils import rpc, cache, icons, common, TinyDict, expr_eval from openerp.widgets import tree_view FORMATTERS = { 'integer': lambda value, _i: '%s' % int(value), 'float': lambda value, _i: '%.02f' % (value), 'date': lambda value, _i: format_datetime(value, 'date'), 'datetime': lambda value, _i: format_datetime(value, 'datetime'), 'one2one': lambda value, _i: value[1], 'many2one': lambda value, _i: value[1], 'selection': lambda value, info: dict(info['selection']).get(value, ''), } class Tree(SecuredController): _cp_path = "/openerp/tree" @expose(template="/openerp/controllers/templates/tree.mako") def create(self, params): view_id = (params.view_ids or False) and params.view_ids[0] domain = params.domain context = params.context
def get_text(self): return format.format_datetime(self.value, kind=self.attrs.get("type", "datetime"))
def get_event_widget(self, event): title = '' # the title description = [] # the description if self.info_fields: f = self.info_fields[0] s = event[f] if isinstance(s, (tuple, list)): s = s[-1] title = ustr(s) for f in self.info_fields[1:]: s = event[f] if isinstance(s, (tuple, list)): s = s[-1] if s: description.append(ustr(s)) starts = event.get(self.date_start) ends = event.get(self.date_delay) or 1.0 span = 0 if starts and ends: n = 0 h = ends if ends == self.day_length: span = 1 elif ends > self.day_length: n = ends / self.day_length h = ends % self.day_length n = int(math.floor(n)) if h > 0: span = n + 1 else: span = n ends = time.localtime( time.mktime(starts) + (h * 60 * 60) + (n * 24 * 60 * 60)) if starts and self.date_stop: ends = event.get(self.date_stop) if not ends: ends = time.localtime(time.mktime(starts) + 60 * 60) tds = time.mktime(starts) tde = time.mktime(ends) if tds >= tde: tde = tds + 60 * 60 ends = time.localtime(tde) n = (tde - tds) / (60 * 60) if n >= self.day_length: span = math.ceil(n / 24) starts = format.format_datetime(starts, "datetime", True) ends = format.format_datetime(ends, "datetime", True) color_key = event.get(self.color_field) color = self.colors.get(color_key) classes = self._get_classes(event) title = title.strip() description = ', '.join(description).strip() if isinstance(event['id'], int): event_log = rpc.session.execute('object', 'execute', self.model, 'perm_read', [event['id']])[0] event['create_date'] = event_log['create_date'] event['create_uid'] = event_log['create_uid'][1] if isinstance(event_log['write_uid'], tuple): event_log['write_uid'] = event_log['write_uid'][1] event['write_uid'] = event_log['write_uid'] event['write_date'] = event_log['write_date'] return TinyEvent(event, starts, ends, title, description, dayspan=span, color=(color or None) and color[-1], classes=classes)
import simplejson import cherrypy import actions from openobject.i18n.format import format_datetime from openobject.tools import url, expose from openerp.controllers import SecuredController from openerp.utils import rpc, cache, icons, common, TinyDict, expr_eval from openerp.widgets import tree_view FORMATTERS = { 'integer': lambda value, _i: '%s' % int(value), 'float': lambda value, _i: '%.02f' % (value), 'date': lambda value, _i: format_datetime(value, 'date'), 'datetime': lambda value, _i: format_datetime(value, 'datetime'), 'one2one': lambda value, _i: value[1], 'many2one': lambda value, _i: value[1], 'selection': lambda value, info: dict(info['selection']).get(value, ''), } class Tree(SecuredController): _cp_path = "/openerp/tree" @expose(template="/openerp/controllers/templates/tree.mako") def create(self, params): view_id = (params.view_ids or False) and params.view_ids[0] domain = params.domain context = params.context ctx = dict(context,
def get_event_widget(self, event): title = "" # the title description = [] # the description if self.info_fields: f = self.info_fields[0] s = event[f] if isinstance(s, (tuple, list)): s = s[-1] title = ustr(s) for f in self.info_fields[1:]: s = event[f] if isinstance(s, (tuple, list)): s = s[-1] if s: description.append(ustr(s)) starts = event.get(self.date_start) ends = event.get(self.date_delay) or 1.0 span = 0 if starts and ends: n = 0 h = ends if ends == self.day_length: span = 1 elif ends > self.day_length: n = ends / self.day_length h = ends % self.day_length n = int(math.floor(n)) if h > 0: span = n + 1 else: span = n ends = time.localtime(time.mktime(starts) + (h * 60 * 60) + (n * 24 * 60 * 60)) if starts and self.date_stop: ends = event.get(self.date_stop) if not ends: ends = time.localtime(time.mktime(starts) + 60 * 60) tds = time.mktime(starts) tde = time.mktime(ends) if tds >= tde: tde = tds + 60 * 60 ends = time.localtime(tde) n = (tde - tds) / (60 * 60) if n >= self.day_length: span = math.ceil(n / 24) starts = format.format_datetime(starts, "datetime", True) ends = format.format_datetime(ends, "datetime", True) color_key = event.get(self.color_field) color = self.colors.get(color_key) classes = self._get_classes(event) title = title.strip() description = ", ".join(description).strip() if isinstance(event["id"], int): event_log = rpc.RPCProxy(self.model).perm_read([event["id"]])[0] event["create_date"] = event_log["create_date"] event["create_uid"] = event_log["create_uid"][1] if isinstance(event_log["write_uid"], tuple): event_log["write_uid"] = event_log["write_uid"][1] event["write_uid"] = event_log["write_uid"] event["write_date"] = event_log["write_date"] return TinyEvent( event, starts, ends, title, description, dayspan=span, color=(color or None) and color[-1], classes=classes )