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
Exemple #2
0
    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
Exemple #3
0
 def get_text(self):
     return format.format_datetime(self.value, kind=self.attrs.get('type', 'datetime'))
Exemple #4
0
 def _from_python(self, value, state):
     return format.format_datetime(value, kind=self.kind)
Exemple #5
0
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
Exemple #6
0
 def get_text(self):
     return format.format_datetime(self.value,
                                   kind=self.attrs.get('type', 'datetime'))
Exemple #7
0
 def get_text(self):
     return format.format_datetime(self.value, kind=self.attrs.get("type", "datetime"))
Exemple #8
0
    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)
 def _from_python(self, value, state):
     return format.format_datetime(value, kind=self.kind)
Exemple #10
0
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,
Exemple #11
0
    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
        )