diff --git a/rsconcept/backend/apps/oss/models/OperationSchema.py b/rsconcept/backend/apps/oss/models/OperationSchema.py index f10219e7..8a70446e 100644 --- a/rsconcept/backend/apps/oss/models/OperationSchema.py +++ b/rsconcept/backend/apps/oss/models/OperationSchema.py @@ -557,8 +557,7 @@ class OperationSchema: if old_data['term_forms'] == cst.term_forms: new_data['term_forms'] = data['term_forms'] 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: new_data['definition_formal'] = replace_globals(data['definition_formal'], mapping) if 'term_raw' in data: diff --git a/rsconcept/backend/apps/oss/tests/s_propagation/t_constituents.py b/rsconcept/backend/apps/oss/tests/s_propagation/t_constituents.py index a7b9f559..6548096d 100644 --- a/rsconcept/backend/apps/oss/tests/s_propagation/t_constituents.py +++ b/rsconcept/backend/apps/oss/tests/s_propagation/t_constituents.py @@ -92,7 +92,8 @@ class TestChangeConstituents(EndpointTester): 'item_data': { 'term_raw': 'Test1', '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) @@ -102,8 +103,10 @@ class TestChangeConstituents(EndpointTester): 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_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(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_raw, r'@{X2|sing,datv}') diff --git a/rsconcept/backend/apps/rsform/models/RSForm.py b/rsconcept/backend/apps/rsform/models/RSForm.py index fc91786d..b3f75826 100644 --- a/rsconcept/backend/apps/rsform/models/RSForm.py +++ b/rsconcept/backend/apps/rsform/models/RSForm.py @@ -241,7 +241,11 @@ class RSForm: old_data = {} term_changed = False if 'convention' in data: - cst.convention = data['convention'] + if cst.convention == data['convention']: + del data['convention'] + else: + old_data['convention'] = cst.convention + cst.convention = data['convention'] if 'definition_formal' in data: if cst.definition_formal == data['definition_formal']: del data['definition_formal']