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'