def convert_time(): if not value: return try: return date_parse(value).time() except (ValueError, TypeError): return
def convert_date(): if not value: return format_ = context.get('date_format', '%x') try: return date_parse(value, format_).date() except (ValueError, TypeError): return
def parse(self): text = self.entry.get_text() value = None if text: try: value = date_parse(text, self._format) except ValueError: pass self._value = 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
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
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
def import_csv(self, fname, fields): # TODO: make it works with references skip = self.csv_skip.get_value_as_int() encoding = self.get_encoding() locale_format = self.csv_locale.get_active() try: reader = csv.reader(open(fname, 'r', encoding=encoding), quotechar=self.get_quotechar(), delimiter=self.get_delimiter()) data = [] for i, line in enumerate(reader): if i < skip or not line: continue row = [] for field, val in zip(fields, line): if locale_format and val: type_ = self.fields_data[field]['type'] if type_ in ['integer', 'biginteger']: val = locale.atoi(val) elif type_ == 'float': val = locale.atof(val) elif type_ == 'numeric': val = Decimal(locale.delocalize(val)) elif type_ in ['date', 'datetime']: val = date_parse(val, common.date_format()) elif type_ == 'binary': val = base64.b64decode(val) row.append(val) data.append(row) except (IOError, UnicodeDecodeError, csv.Error) as exception: common.warning(str(exception), _("Import failed")) return try: count = RPCExecute('model', self.model, 'import_data', fields, data, context=self.context) except RPCException: return if count == 1: common.message(_('%d record imported.') % count) else: common.message(_('%d records imported.') % count)