From 7ecf85dbc78ed2ee60b575963584f2fc6e438927 Mon Sep 17 00:00:00 2001 From: IRBorisov <8611739+IRBorisov@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:41:14 +0300 Subject: [PATCH] Copy terms when cloning --- rsconcept/backend/apps/rsform/models.py | 1 + rsconcept/backend/apps/rsform/serializers.py | 2 +- rsconcept/backend/apps/rsform/tests/t_views.py | 12 ++++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/rsconcept/backend/apps/rsform/models.py b/rsconcept/backend/apps/rsform/models.py index 2a63df61..0b81a3b5 100644 --- a/rsconcept/backend/apps/rsform/models.py +++ b/rsconcept/backend/apps/rsform/models.py @@ -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) diff --git a/rsconcept/backend/apps/rsform/serializers.py b/rsconcept/backend/apps/rsform/serializers.py index 6a786e7a..b9955af4 100644 --- a/rsconcept/backend/apps/rsform/serializers.py +++ b/rsconcept/backend/apps/rsform/serializers.py @@ -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): diff --git a/rsconcept/backend/apps/rsform/tests/t_views.py b/rsconcept/backend/apps/rsform/tests/t_views.py index 382557b3..53dd389d 100644 --- a/rsconcept/backend/apps/rsform/tests/t_views.py +++ b/rsconcept/backend/apps/rsform/tests/t_views.py @@ -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(