From 6bdfc33182c27d3fd9c23118477270f29623d998 Mon Sep 17 00:00:00 2001 From: Emanuel Schuetze Date: Sun, 18 May 2014 20:17:42 +0200 Subject: [PATCH] Motion CSV Import: Create new category if category is unkown. --- CHANGELOG | 1 + openslides/motion/csv_import.py | 7 +++++-- tests/motion/test_csv_import.py | 7 +++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2b3b72ed9..b00fe479d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -17,6 +17,7 @@ Agenda: - Fixed organizational item structuring. Motions: - New slide for vote results. +- Created new categories during CSV import. Assignment: - Coupled assignment candidates with list of speakers. - Created a poll description field for each assignment poll. diff --git a/openslides/motion/csv_import.py b/openslides/motion/csv_import.py index a17d5fc25..9b07d3bd0 100644 --- a/openslides/motion/csv_import.py +++ b/openslides/motion/csv_import.py @@ -78,11 +78,14 @@ def import_motions(csvfile, default_submitter, override, importing_person=None): motion.reason = reason if category: try: - motion.category = Category.objects.get(name=category) + category_object = Category.objects.get(name=category) except Category.DoesNotExist: - warning.append(_('Category unknown. No category is used.')) + category_object = Category.objects.create(name=category, prefix=category[:1]) + warning.append(_('Category unknown. New category created.')) except Category.MultipleObjectsReturned: + category_object = None warning.append(_('Several suitable categories found. No category is used.')) + motion.category = category_object motion.save() # Add submitter diff --git a/tests/motion/test_csv_import.py b/tests/motion/test_csv_import.py index 45dc7a022..4efd55a90 100644 --- a/tests/motion/test_csv_import.py +++ b/tests/motion/test_csv_import.py @@ -24,9 +24,8 @@ class CSVImport(TestCase): self.normal_client.login(username='User_CiuNgo4giqueeChie5oi', password='eihi1Eequaek4eagaiKu') # Category - self.category1 = Category.objects.create(name='Satzungsanträge', prefix='SA') - self.category2 = Category.objects.create(name='Bildung', prefix='B1') - self.category3 = Category.objects.create(name='Bildung', prefix='B2') + self.category1 = Category.objects.create(name='Bildung', prefix='B1') + self.category2 = Category.objects.create(name='Bildung', prefix='B2') def test_example_file_de(self): special_user = User.objects.create_user(username='Harry_Holland', @@ -66,7 +65,7 @@ class CSVImport(TestCase): self.assertEqual(motion2.reason, u'Die Änderung der Satzung ist aufgrund der letzten Erfahrungen eine sinnvolle Maßnahme, weil ...') self.assertEqual(len(motion2.submitter.all()), 1) self.assertEqual(motion2.submitter.all()[0].person, special_user) - self.assertEqual(motion2.category, self.category1) + self.assertEqual(motion2.category.name, u"Satzungsanträge") # category is created automatically # check user 'John Doe' self.assertTrue('Several suitable submitters found.' in warning_message)