wcs: refresh cached fields for form links in list of links (#81157) #163
|
@ -1996,6 +1996,9 @@ class LinkListCell(CellBase):
|
|||
del link['pk']
|
||||
del link['fields']['placeholder']
|
||||
del link['fields']['page']
|
||||
for key in list(link['fields'].keys()):
|
||||
if key.startswith('cached_'):
|
||||
del link['fields'][key]
|
||||
return {'links': links}
|
||||
|
||||
def import_subobjects(self, cell_json):
|
||||
|
@ -2005,6 +2008,8 @@ class LinkListCell(CellBase):
|
|||
links = serializers.deserialize('json', json.dumps(cell_json['links']), ignorenonexistent=True)
|
||||
for link in links:
|
||||
link.save()
|
||||
# will populate cached_* attributes
|
||||
link.object.save()
|
||||
|
||||
def duplicate_m2m(self, new_cell):
|
||||
# duplicate also link items
|
||||
|
|
|
@ -1802,6 +1802,7 @@ def test_manager_link_list_cell_duplicate():
|
|||
item = WcsFormCell.objects.create(
|
||||
page=page,
|
||||
placeholder=cell.link_placeholder,
|
||||
formdef_reference='default:form-title',
|
||||
cached_title='A title',
|
||||
cached_url='http://example.com',
|
||||
cached_json={'foo': 'bar'},
|
||||
|
@ -1919,14 +1920,16 @@ def test_manager_link_list_tabs(app, admin_user):
|
|||
assert resp.pyquery('#tab-%s-general.pk-tabs--button-marker' % cell.get_reference())
|
||||
|
||||
|
||||
def test_import_export_pages_with_links():
|
||||
@mock.patch('requests.Session.send', side_effect=mocked_requests_send)
|
||||
def test_import_export_pages_with_links(mock_send):
|
||||
page = Page(title='bar', slug='bar', order=1)
|
||||
page.save()
|
||||
|
||||
cell = LinkListCell.objects.create(order=0, placeholder='content', page=page)
|
||||
item = WcsFormCell.objects.create(
|
||||
WcsFormCell.objects.create(
|
||||
page=page,
|
||||
placeholder=cell.link_placeholder,
|
||||
formdef_reference='default:form-title',
|
||||
cached_title='A title',
|
||||
cached_url='http://example.com',
|
||||
cached_json={'foo': 'bar'},
|
||||
|
@ -1934,6 +1937,7 @@ def test_import_export_pages_with_links():
|
|||
)
|
||||
|
||||
site_export = [x.get_serialized_page() for x in Page.objects.all()]
|
||||
assert 'cached_' not in json.dumps(site_export)
|
||||
|
||||
Page.load_serialized_pages(site_export)
|
||||
|
||||
|
@ -1942,9 +1946,9 @@ def test_import_export_pages_with_links():
|
|||
assert len(new_cells[0].get_items()) == 1
|
||||
new_item = new_cells[0].get_items()[0]
|
||||
assert isinstance(new_item, WcsFormCell)
|
||||
assert new_item.cached_title == item.cached_title
|
||||
assert new_item.cached_url == item.cached_url
|
||||
assert new_item.cached_json == item.cached_json
|
||||
assert new_item.cached_title == 'too long form title' + 'e' * 231
|
||||
assert new_item.cached_url == 'http://127.0.0.1:8999/form-title/'
|
||||
assert new_item.cached_json != {}
|
||||
|
||||
|
||||
def test_list_of_links_with_form_render(app):
|
||||
|
|
Loading…
Reference in New Issue