0004-agendas-fix-export-import-of-TimePeriodException-241.patch
chrono/agendas/models.py | ||
---|---|---|
619 | 619 | |
620 | 620 |
@classmethod |
621 | 621 |
def import_json(cls, data): |
622 |
data['start_datetime'] = make_aware(datetime.datetime.strptime( |
|
623 |
data['start_datetime'], '%Y-%m-%d %H:%M:%S')) |
|
624 |
data['end_datetime'] = make_aware(datetime.datetime.strptime( |
|
625 |
data['end_datetime'], '%Y-%m-%d %H:%M:%S')) |
|
622 |
def import_datetime(s): |
|
623 |
'''Import datetime as a naive ISO8601 serialization''' |
|
624 |
return make_aware(datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')) |
|
625 | ||
626 |
for k, v in data.items(): |
|
627 |
if k.endswith('_datetime'): |
|
628 |
data[k] = import_datetime(v) |
|
626 | 629 |
return cls(**data) |
627 | 630 | |
628 | 631 |
def export_json(self): |
632 |
def export_datetime(dt): |
|
633 |
'''Export datetime as a naive ISO8601 serialization''' |
|
634 |
return make_naive(dt).strftime('%Y-%m-%d %H:%M:%S') |
|
635 | ||
629 | 636 |
return { |
630 | 637 |
'label': self.label, |
631 |
'start_datetime': self.start_datetime.strftime('%Y-%m-%d %H:%M:%S'), |
|
632 |
'end_datetime': self.end_datetime.strftime('%Y-%m-%d %H:%M:%S'), |
|
638 |
'start_datetime': export_datetime(self.start_datetime), |
|
639 |
'end_datetime': export_datetime(self.end_datetime), |
|
640 |
'external_id': self.external_id, |
|
641 |
'recurrence_id': self.recurrence_id, |
|
642 |
'update_datetime': export_datetime(self.update_datetime), |
|
633 | 643 |
} |
634 |
- |