diff --git a/base/tests/test_login.py b/base/tests/test_login.py index 3fe9301dd..819d027a4 100755 --- a/base/tests/test_login.py +++ b/base/tests/test_login.py @@ -12,15 +12,15 @@ def user(): def test_login_aparece_na_barra_para_usuario_nao_logado(client): response = client.get('/') - assert 'Login' in str(response.content) + assert 'Login' in str(response.content) def test_username_do_usuario_logado_aparece_na_barra(client, user): assert client.login(username='jfirmino', password='123') response = client.get('/') - assert 'Login' not in str(response.content) + assert 'Login' not in str(response.content) assert 'jfirmino' in str(response.content) - assert 'Sair' in str(response.content) + assert 'Sair' in str(response.content) def test_nome_completo_do_usuario_logado_aparece_na_barra(client, user): @@ -30,9 +30,9 @@ def test_nome_completo_do_usuario_logado_aparece_na_barra(client, user): user.save() assert client.login(username='jfirmino', password='123') response = client.get('/') - assert 'Login' not in str(response.content) + assert 'Login' not in str(response.content) assert 'Joao Firmino' in str(response.content) - assert 'Sair' in str(response.content) + assert 'Sair' in str(response.content) @pytest.mark.urls('base.tests.teststub_urls') diff --git a/parlamentares/forms.py b/parlamentares/forms.py index 763f9a491..c19b3cb48 100644 --- a/parlamentares/forms.py +++ b/parlamentares/forms.py @@ -164,6 +164,14 @@ class ComposicaoColigacaoForm(ModelForm): fields = ['partido'] def clean(self): - if self.errors: - return self.errors - return self.cleaned_data + cleaned_data = self.cleaned_data + pk = self.initial['coligacao_id'] + if (ComposicaoColigacao.objects.filter( + coligacao_id=pk, + partido=cleaned_data.get('partido')).exists()): + msg = _('Esse partido já foi cadastrado nesta coligação.') + raise ValidationError(msg) + else: + if self.errors: + return self.errors + return self.cleaned_data diff --git a/parlamentares/views.py b/parlamentares/views.py index 164ea8ca3..371103328 100644 --- a/parlamentares/views.py +++ b/parlamentares/views.py @@ -54,9 +54,17 @@ class ComposicaoColigacaoCrud(MasterDetailCrud): class CreateView(MasterDetailCrud.CreateView): form_class = ComposicaoColigacaoForm + def get_initial(self): + id = self.kwargs['pk'] + return {'coligacao_id': id} + class UpdateView(MasterDetailCrud.UpdateView): form_class = ComposicaoColigacaoForm + def get_initial(self): + id = self.kwargs['pk'] + return {'coligacao_id': id} + class ListView(MasterDetailCrud.ListView): ordering = '-partido__sigla'