Browse Source

Impede que adicione um partido já existente na coligacao

pull/472/head
Eduardo Calil 10 years ago
parent
commit
dbcccb1a95
  1. 10
      base/tests/test_login.py
  2. 8
      parlamentares/forms.py
  3. 8
      parlamentares/views.py

10
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 '<a href="/login/?next=">Login</a>' in str(response.content)
assert '<a href="/login/">Login</a>' 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 '<a href="/login/?next=">Login</a>' not in str(response.content)
assert '<a href="/login/">Login</a>' not in str(response.content)
assert 'jfirmino' in str(response.content)
assert '<a href="/logout/?next=">Sair</a>' in str(response.content)
assert '<a href="/logout/">Sair</a>' 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 '<a href="/login/?next=">Login</a>' not in str(response.content)
assert '<a href="/login/">Login</a>' not in str(response.content)
assert 'Joao Firmino' in str(response.content)
assert '<a href="/logout/?next=">Sair</a>' in str(response.content)
assert '<a href="/logout/">Sair</a>' in str(response.content)
@pytest.mark.urls('base.tests.teststub_urls')

8
parlamentares/forms.py

@ -164,6 +164,14 @@ class ComposicaoColigacaoForm(ModelForm):
fields = ['partido']
def clean(self):
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

8
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'

Loading…
Cancel
Save