def convert_datetime():
     try:
         return untimezoned_date(datetime.datetime(*time.strptime(value,
                     date_format() + ' ' + HM_FORMAT)[:6]))
     except ValueError:
         try:
             return untimezoned_date(datetime.datetime(*time.strptime(value,
                         date_format())[:6]))
         except ValueError:
             return
     except TypeError:
         return
def test_format_datetime():
    field = {
        'type': 'datetime',
        'format': '"%H:%M:%S"',
    }
    for value, result in (
        (datetime.date(2002, 12, 4), '12/04/2002'),
        (untimezoned_date(datetime.datetime(2002, 12, 4)), '12/04/2002'),
        (untimezoned_date(datetime.datetime(2002, 12, 4, 12,
                                            30)), '"12/04/2002 12:30:00"'),
        (False, ''),
        (None, ''),
    ):
        assert format_value(field, value) == result
Exemple #3
0
def test_convert_datetime():
    field = {
        'type': 'datetime',
        'format': '"%H:%M:%S"',
    }
    for value, result in (
        ('12/04/2002', datetime.datetime(2002, 12, 4)),
        ('12/04/2002 12:30:00',
         untimezoned_date(datetime.datetime(2002, 12, 4, 12, 30))),
        ('02/03/04', datetime.datetime(2004, 2, 3)),
        ('02/03/04 05:06:07',
         untimezoned_date(datetime.datetime(2004, 2, 3, 5, 6, 7))),
        ('test', None),
        (None, None),
    ):
        assert convert_value(field, value) == result
Exemple #4
0
 def test_format_datetime(self):
     "Test format datetime"
     field = {
         'type': 'datetime',
         'format': '"%H:%M:%S"',
         }
     for value, result in (
             (dt.date(2002, 12, 4), dt.date(2002, 12, 4).strftime('%x')),
             (untimezoned_date(dt.datetime(2002, 12, 4)),
                 dt.date(2002, 12, 4).strftime('%x')),
             (untimezoned_date(dt.datetime(2002, 12, 4, 12, 30)),
                 dt.datetime(2002, 12, 4, 12, 30).strftime('"%x %H:%M:%S"')),
             (False, ''),
             (None, ''),
             ):
         self.assertEqual(
             format_value(field, value), result,
             msg="format_value(%r, %r)" % (field, value))
 def convert_datetime():
     if not value:
         return
     format_ = context.get('date_format', '%x') + ' %X'
     try:
         dt = date_parse(value, format_)
         return untimezoned_date(dt)
     except ValueError:
         return
Exemple #6
0
 def parse(self):
     text = self.entry.get_text()
     value = None
     if text:
         try:
             value = untimezoned_date(date_parse(text, self._format))
         except ValueError:
             pass
     self._value = value
 def test_convert_datetime(self):
     "Test convert datetime"
     field = {
         'type': 'datetime',
         'format': '"%H:%M:%S"',
         }
     for value, result in (
             ('12/04/2002', untimezoned_date(dt.datetime(2002, 12, 4))),
             ('12/04/2002 12:30:00', untimezoned_date(
                     dt.datetime(2002, 12, 4, 12, 30))),
             ('02/03/04', untimezoned_date(dt.datetime(2004, 2, 3))),
             ('02/03/04 05:06:07', untimezoned_date(
                     dt.datetime(2004, 2, 3, 5, 6, 7))),
             ('test', None),
             (None, None),
             ):
         self.assertEqual(
             convert_value(field, value), result,
             msg="convert_value(%r, %r)" % (field, value))
Exemple #8
0
 def convert_datetime():
     if not value:
         return
     format_ = (date_format(context.get('date_format')) + ' ' +
                time_format(field))
     try:
         dt = date_parse(value, format_)
         return untimezoned_date(dt)
     except ValueError:
         return
Exemple #9
0
 def set_client(self, record, value, force_change=False):
     if not isinstance(value, datetime.datetime):
         try:
             value = datetime.datetime(*time.strptime(value,
                     date_format() + ' ' + self.time_format(record))[:6])
             value = common.untimezoned_date(value)
         except ValueError:
             value = self._default
     super(DateTimeField, self).set_client(record, value,
         force_change=force_change)
    def cal_open(self, widget):
        parent = get_toplevel_window()
        win = gtk.Dialog(_('Date Time Selection'), parent,
            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK,
                gtk.RESPONSE_OK))
        win.set_has_separator(True)
        win.set_icon(TRYTON_ICON)
        win.vbox.set_spacing(2)

        hbox = gtk.HBox(spacing=2)
        hbox.pack_start(gtk.Label(_('Hour:')), expand=False, fill=False)
        widget_hour = gtk.SpinButton(gtk.Adjustment(0, 0, 23, 1, 5), 1, 0)
        hbox.pack_start(widget_hour, expand=True, fill=True)
        hbox.pack_start(gtk.Label(_('Minute:')), expand=False, fill=False)
        widget_minute = gtk.SpinButton(
                gtk.Adjustment(0, 0, 59, 1, 10), 1, 0)
        hbox.pack_start(widget_minute, expand=True, fill=True)
        win.vbox.pack_start(hbox, expand=False, fill=True)

        cal = gtk.Calendar()
        cal.set_display_options(gtk.CALENDAR_SHOW_HEADING | \
                gtk.CALENDAR_SHOW_DAY_NAMES | \
                gtk.CALENDAR_SHOW_WEEK_NUMBERS | \
                gtk.CALENDAR_WEEK_START_MONDAY)
        cal.connect('day-selected-double-click',
                lambda *x: win.response(gtk.RESPONSE_OK))
        win.vbox.pack_start(cal, expand=True, fill=True)
        win.show_all()

        self.set_value(self.record, self.field)
        val = self.field.get(self.record)
        if val:
            val = timezoned_date(val)
            widget_hour.set_value(val.hour)
            widget_minute.set_value(val.minute)
            cal.select_month(val.month - 1, val.year)
            cal.select_day(val.day)
        else:
            widget_hour.set_value(time.localtime()[3])
            widget_minute.set_value(time.localtime()[4])
        response = win.run()
        if response == gtk.RESPONSE_OK:
            hour = int(widget_hour.get_value())
            minute = int(widget_minute.get_value())
            year = int(cal.get_date()[0])
            month = int(cal.get_date()[1]) + 1
            day = int(cal.get_date()[2])
            date = untimezoned_date(datetime.datetime(year, month, day, hour,
                    minute))
            self.field.set_client(self.record, date)
            self.display(self.record, self.field)
        self._focus_out()
        parent.present()
        win.destroy()
Exemple #11
0
 def convert_datetime():
     if not value:
         return
     format_ = context.get('date_format', '%X') + ' %x'
     try:
         dt = date_parse(value, format_)
         if dt.time() == datetime.time.min:
             return dt
         return untimezoned_date(dt)
     except ValueError:
         return
Exemple #12
0
def test_convert_datetime():
    field = {
        'type': 'datetime',
        'format': '"%H:%M:%S"',
        }
    for value, result in (
            ('12/04/2002', datetime.datetime(2002, 12, 4)),
            ('12/04/2002 12:30:00', untimezoned_date(
                    datetime.datetime(2002, 12, 4, 12, 30))),
            ('test', None),
            (None, None),
            ):
        assert convert_value(field, value) == result
Exemple #13
0
 def set_client(self, record, value, force_change=False):
     if isinstance(value, basestring):
         try:
             value = datetime.datetime(*time.strptime(
                 value,
                 date_format() + ' ' + self.time_format(record))[:6])
         except ValueError:
             value = self._default
     if value:
         value = common.untimezoned_date(value)
     super(DateTimeField, self).set_client(record,
                                           value,
                                           force_change=force_change)
Exemple #14
0
def test_format_datetime():
    field = {
        'type': 'datetime',
        'format': '"%H:%M:%S"',
        }
    for value, result in (
            (datetime.date(2002, 12, 4), '12/04/02'),
            (datetime.datetime(2002, 12, 4), '12/04/02'),
            (untimezoned_date(datetime.datetime(2002, 12, 4, 12, 30)),
                '"12/04/02 12:30:00"'),
            (False, ''),
            (None, ''),
            ):
        assert format_value(field, value) == result
Exemple #15
0
 def convert_datetime():
     try:
         return untimezoned_date(
             datetime.datetime(
                 *time.strptime(value,
                                date_format() + ' ' +
                                time_format(field))[:6]))
     except ValueError:
         try:
             return datetime.datetime(
                 *time.strptime(value, date_format())[:6])
         except ValueError:
             return
     except TypeError:
         return
Exemple #16
0
 def set_client(self, record, value, force_change=False):
     if isinstance(value, datetime.time):
         current_value = self.get_client(record)
         if current_value:
             value = datetime.datetime.combine(current_value.date(), value)
         else:
             value = None
     elif value and not isinstance(value, datetime.datetime):
         current_value = self.get_client(record)
         if current_value:
             time = current_value.time()
         else:
             time = datetime.time()
         value = datetime.datetime.combine(value, time)
     if value:
         value = common.untimezoned_date(value)
     super(DateTimeField, self).set_client(record,
                                           value,
                                           force_change=force_change)
Exemple #17
0
 def set_client(self, record, value, force_change=False):
     if isinstance(value, datetime.time):
         current_value = self.get_client(record)
         if current_value:
             value = datetime.datetime.combine(
                 current_value.date(), value)
         else:
             value = None
     elif value and not isinstance(value, datetime.datetime):
         current_value = self.get_client(record)
         if current_value:
             time = current_value.time()
         else:
             time = datetime.time()
         value = datetime.datetime.combine(value, time)
     if value:
         value = common.untimezoned_date(value)
     super(DateTimeField, self).set_client(record, value,
         force_change=force_change)
Exemple #18
0
 def get_value(self):
     return untimezoned_date(self.widget.props.value)
Exemple #19
0
 def get_value(self):
     return untimezoned_date(self.widget.props.value)