agendas: fix export/import of TimePeriodException (#24152)
- convert datetime to naive before serialization, - export missing fields: external_id, recurrence_id and update_datetime.
This commit is contained in:
parent
e0d8342aa1
commit
642cda9b49
|
@ -622,15 +622,25 @@ class TimePeriodException(models.Model):
|
|||
|
||||
@classmethod
|
||||
def import_json(cls, data):
|
||||
data['start_datetime'] = make_aware(datetime.datetime.strptime(
|
||||
data['start_datetime'], '%Y-%m-%d %H:%M:%S'))
|
||||
data['end_datetime'] = make_aware(datetime.datetime.strptime(
|
||||
data['end_datetime'], '%Y-%m-%d %H:%M:%S'))
|
||||
def import_datetime(s):
|
||||
'''Import datetime as a naive ISO8601 serialization'''
|
||||
return make_aware(datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S'))
|
||||
|
||||
for k, v in data.items():
|
||||
if k.endswith('_datetime'):
|
||||
data[k] = import_datetime(v)
|
||||
return cls(**data)
|
||||
|
||||
def export_json(self):
|
||||
def export_datetime(dt):
|
||||
'''Export datetime as a naive ISO8601 serialization'''
|
||||
return make_naive(dt).strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
return {
|
||||
'label': self.label,
|
||||
'start_datetime': self.start_datetime.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'end_datetime': self.end_datetime.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'start_datetime': export_datetime(self.start_datetime),
|
||||
'end_datetime': export_datetime(self.end_datetime),
|
||||
'external_id': self.external_id,
|
||||
'recurrence_id': self.recurrence_id,
|
||||
'update_datetime': export_datetime(self.update_datetime),
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue