diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-06-30 16:38:15 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-06-30 16:38:15 +0200 |
commit | 5020f3a08c89f8fc2cce8e926370434c49f03177 (patch) | |
tree | 7406d366ef6baa7b421f98f9bb1aed3bc1b17a29 /archaeological_operations | |
parent | edfb5d75091f7c833d5aa14955000673266a1d4a (diff) | |
download | Ishtar-5020f3a08c89f8fc2cce8e926370434c49f03177.tar.bz2 Ishtar-5020f3a08c89f8fc2cce8e926370434c49f03177.zip |
Sources wizard: fix author deletion (refs #3634)
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/tests.py | 50 | ||||
-rw-r--r-- | archaeological_operations/views.py | 8 |
2 files changed, 55 insertions, 3 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 924727065..b2f38801a 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -32,7 +32,7 @@ from archaeological_operations import views from ishtar_common.models import OrganizationType, Organization, ItemKey, \ ImporterType, IshtarUser, TargetKey, ImporterModel, IshtarSiteProfile, \ - Town, ImporterColumn, Person + Town, ImporterColumn, Person, Author, SourceType, AuthorType from archaeological_context_records.models import Unit from ishtar_common import forms_common @@ -1357,3 +1357,51 @@ class OperationAdminActWizardCreationTest(WizardTest, OperationInitTest, def post_wizard(self): self.assertEqual(models.AdministrativeAct.objects.count(), self.number + 1) + + +class OperationSourceWizardModificationTest(WizardTest, OperationInitTest, + TestCase): + fixtures = OperationWizardCreationTest.fixtures + url_name = 'operation_source_modification' + wizard_name = 'operation_source_wizard' + steps = views.operation_source_modification_steps + form_datas = [ + FormData( + "Test remove all authors", + form_datas={ + 'selec-operation_source_modification': {}, + 'source-operation_source_modification': { + 'title': "New title", + 'source_type': None, + 'index': 42 + }, + 'authors-operation_source_modification': [] + }, + ) + ] + + def pre_wizard(self): + ope = self.get_default_operation() + self.source = models.OperationSource.objects.create( + title="Old title", source_type=SourceType.objects.all()[0], + operation=ope + ) + author = Author.objects.create( + author_type=AuthorType.objects.all()[0], + person=Person.objects.all()[0] + ) + + self.source.authors.add(author) + + data = self.form_datas[0].form_datas + data['selec-operation_source_modification']['pk'] = self.source.pk + + data['source-operation_source_modification']['hidden_operation_id'] = \ + self.source.pk + data['source-operation_source_modification'][ + 'source_type'] = SourceType.objects.all()[1].pk + super(OperationSourceWizardModificationTest, self).pre_wizard() + + def post_wizard(self): + source = models.OperationSource.objects.get(pk=self.source.pk) + self.assertEqual(source.authors.count(), 0)
\ No newline at end of file diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 24271bb8f..6a1340e70 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -321,11 +321,15 @@ operation_source_creation_wizard = OperationSourceWizard.as_view([ label=_(u"Operation: source creation"), url_name='operation_source_creation',) -operation_source_modification_wizard = OperationSourceWizard.as_view([ +operation_source_modification_steps = [ ('selec-operation_source_modification', OperationSourceFormSelection), ('source-operation_source_modification', OperationSourceForm), ('authors-operation_source_modification', AuthorFormset), - ('final-operation_source_modification', FinalForm)], + ('final-operation_source_modification', FinalForm) +] + +operation_source_modification_wizard = OperationSourceWizard.as_view( + operation_source_modification_steps, label=_(u"Operation: source modification"), url_name='operation_source_modification',) |