general: export groups as a simple list of group names (#16317)

This commit is contained in:
Frédéric Péters 2018-03-04 15:48:38 +01:00
parent 89c248aea3
commit 66c6b4ef01
1 changed files with 4 additions and 0 deletions

View File

@ -272,9 +272,11 @@ class Page(models.Model):
del serialized_page['model']
serialized_page['cells'] = json.loads(serializers.serialize('json',
cells, use_natural_foreign_keys=True, use_natural_primary_keys=True))
serialized_page['fields']['groups'] = [x[0] for x in serialized_page['fields']['groups']]
for cell in serialized_page['cells']:
del cell['pk']
del cell['fields']['page']
cell['fields']['groups'] = [x[0] for x in cell['fields']['groups']]
for key in cell['fields'].keys():
if key.startswith('cached_'):
del cell['fields'][key]
@ -283,11 +285,13 @@ class Page(models.Model):
@classmethod
def load_serialized_page(cls, json_page):
json_page['model'] = 'data.page'
json_page['fields']['groups'] = [[x] for x in json_page['fields']['groups'] if isinstance(x, basestring)]
page, created = Page.objects.get_or_create(slug=json_page['fields']['slug'])
json_page['pk'] = page.id
page = [x for x in serializers.deserialize('json', json.dumps([json_page]))][0]
page.save()
for cell in json_page.get('cells'):
cell['fields']['groups'] = [[x] for x in cell['fields']['groups'] if isinstance(x, basestring)]
cell['fields']['page'] = page.object.natural_key()
# if there were cells, remove them