Copy terms when cloning

This commit is contained in:
IRBorisov 2023-10-31 10:41:14 +03:00
parent 00ea912a9e
commit 7ecf85dbc7
3 changed files with 12 additions and 3 deletions

View File

@ -412,6 +412,7 @@ class RSForm:
cst = self._insert_new(data, insert_after)
cst.convention = data.get('convention', '')
cst.definition_formal = data.get('definition_formal', '')
cst.term_forms = data.get('term_forms', [])
cst.term_raw = data.get('term_raw', '')
if cst.term_raw != '':
resolved = resolver.resolve(cst.term_raw)

View File

@ -175,7 +175,7 @@ class CstCreateSerializer(serializers.ModelSerializer):
class Meta:
''' serializer metadata. '''
model = Constituenta
fields = 'alias', 'cst_type', 'convention', 'term_raw', 'definition_raw', 'definition_formal', 'insert_after'
fields = 'alias', 'cst_type', 'convention', 'term_raw', 'definition_raw', 'definition_formal', 'insert_after', 'term_forms'
class CstRenameSerializer(serializers.ModelSerializer):

View File

@ -426,15 +426,23 @@ class TestRSFormViewset(APITestCase):
x3 = Constituenta.objects.get(alias=response.data['new_cst']['alias'])
self.assertEqual(x3.order, 3)
data = {'alias': 'X4', 'cst_type': 'basic', 'insert_after': x2.id}
data = {
'alias': 'X4',
'cst_type': 'basic',
'insert_after': x2.id,
'term_raw': 'test',
'term_forms': [{'text':'form1', 'tags':'sing,datv'}]
}
response = self.client.post(
f'/api/rsforms/{item.id}/cst-create',
data=data, format='json'
)
self.assertEqual(response.status_code, 201)
self.assertEqual(response.data['new_cst']['alias'], 'X4')
self.assertEqual(response.data['new_cst']['alias'], data['alias'])
x4 = Constituenta.objects.get(alias=response.data['new_cst']['alias'])
self.assertEqual(x4.order, 3)
self.assertEqual(x4.term_raw, data['term_raw'])
self.assertEqual(x4.term_forms, data['term_forms'])
def test_rename_constituenta(self):
cst1 = Constituenta.objects.create(