B: Fix convention editing for OSS

This commit is contained in:
Ivan 2024-08-19 17:05:15 +03:00
parent 5cc7ee1353
commit 13442c44aa
3 changed files with 10 additions and 4 deletions

View File

@ -557,7 +557,6 @@ class OperationSchema:
if old_data['term_forms'] == cst.term_forms: if old_data['term_forms'] == cst.term_forms:
new_data['term_forms'] = data['term_forms'] new_data['term_forms'] = data['term_forms']
if 'convention' in data: if 'convention' in data:
if old_data['convention'] == cst.convention:
new_data['convention'] = data['convention'] new_data['convention'] = data['convention']
if 'definition_formal' in data: if 'definition_formal' in data:
new_data['definition_formal'] = replace_globals(data['definition_formal'], mapping) new_data['definition_formal'] = replace_globals(data['definition_formal'], mapping)

View File

@ -92,7 +92,8 @@ class TestChangeConstituents(EndpointTester):
'item_data': { 'item_data': {
'term_raw': 'Test1', 'term_raw': 'Test1',
'definition_formal': r'X4\X4', 'definition_formal': r'X4\X4',
'definition_raw': '@{X5|sing,datv}' 'definition_raw': '@{X5|sing,datv}',
'convention': 'test'
} }
} }
response = self.executeOK(data=data, schema=self.ks1.model.pk) response = self.executeOK(data=data, schema=self.ks1.model.pk)
@ -102,8 +103,10 @@ class TestChangeConstituents(EndpointTester):
self.assertEqual(self.ks1X1.term_raw, data['item_data']['term_raw']) self.assertEqual(self.ks1X1.term_raw, data['item_data']['term_raw'])
self.assertEqual(self.ks1X1.definition_formal, data['item_data']['definition_formal']) self.assertEqual(self.ks1X1.definition_formal, data['item_data']['definition_formal'])
self.assertEqual(self.ks1X1.definition_raw, data['item_data']['definition_raw']) self.assertEqual(self.ks1X1.definition_raw, data['item_data']['definition_raw'])
self.assertEqual(self.ks1X1.convention, data['item_data']['convention'])
self.assertEqual(d2.definition_resolved, data['item_data']['term_raw']) self.assertEqual(d2.definition_resolved, data['item_data']['term_raw'])
self.assertEqual(inherited_cst.term_raw, data['item_data']['term_raw']) self.assertEqual(inherited_cst.term_raw, data['item_data']['term_raw'])
self.assertEqual(inherited_cst.convention, data['item_data']['convention'])
self.assertEqual(inherited_cst.definition_formal, r'X1\X1') self.assertEqual(inherited_cst.definition_formal, r'X1\X1')
self.assertEqual(inherited_cst.definition_raw, r'@{X2|sing,datv}') self.assertEqual(inherited_cst.definition_raw, r'@{X2|sing,datv}')

View File

@ -241,6 +241,10 @@ class RSForm:
old_data = {} old_data = {}
term_changed = False term_changed = False
if 'convention' in data: if 'convention' in data:
if cst.convention == data['convention']:
del data['convention']
else:
old_data['convention'] = cst.convention
cst.convention = data['convention'] cst.convention = data['convention']
if 'definition_formal' in data: if 'definition_formal' in data:
if cst.definition_formal == data['definition_formal']: if cst.definition_formal == data['definition_formal']: