diff --git a/parlamentares/forms.py b/parlamentares/forms.py
index 43377bbe6..1252e4cdc 100644
--- a/parlamentares/forms.py
+++ b/parlamentares/forms.py
@@ -1,165 +1,13 @@
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Fieldset, Layout, Submit
from django import forms
-from django.core.exceptions import ValidationError
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
import crispy_layout_mixin
from crispy_layout_mixin import form_actions
-from sapl.settings import MAX_IMAGE_UPLOAD_SIZE
-from .models import Dependente, Filiacao, Legislatura, Mandato, Parlamentar
-
-
-class ParlamentaresListForm(forms.Form):
- periodo = forms.CharField()
-
-
-class ParlamentaresForm (ModelForm):
- ativo = forms.TypedChoiceField(
- coerce=lambda x: x == 'True',
- choices=((True, 'Sim'), (False, 'Não')),
- )
-
- def clean_fotografia(self):
- fotografia = self.cleaned_data.get('fotografia', False)
- if fotografia:
- if fotografia.size > MAX_IMAGE_UPLOAD_SIZE:
- raise ValidationError('Imagem muito grande. ( > 2mb )')
- return fotografia
-
- class Meta:
- model = Parlamentar
- fields = ['nome_parlamentar',
- 'ativo',
- 'nome_completo',
- 'nivel_instrucao',
- 'sexo',
- 'cpf',
- 'rg',
- 'titulo_eleitor',
- 'data_nascimento',
- 'situacao_militar',
- 'profissao',
- 'endereco_web',
- 'email',
- 'numero_gab_parlamentar',
- 'telefone',
- 'fax',
- 'endereco_residencia',
- 'cep_residencia',
- 'municipio_residencia',
- 'telefone_residencia',
- 'fax_residencia',
- 'locais_atuacao',
- 'fotografia',
- 'biografia']
-
- widgets = {
- 'cpf': forms.TextInput(attrs={'class': 'cpf'}),
- 'rg': forms.TextInput(attrs={'class': 'rg'}),
- 'titulo_eleitor': forms.TextInput(attrs={
- 'class': 'titulo_eleitor'}),
- 'telefone': forms.TextInput(attrs={'class': 'telefone'}),
- 'fax': forms.TextInput(attrs={'class': 'telefone'}),
- 'cep_residencia': forms.TextInput(attrs={'class': 'cep'}),
- 'telefone_residencia': forms.TextInput(attrs={
- 'class': 'telefone'}),
- 'fax_residencia': forms.TextInput(attrs={'class': 'telefone'}),
- 'fotografia': forms.FileInput,
- 'biografia': forms.Textarea(attrs={'id': 'biografia-parlamentar'})
- }
-
- def __init__(self, *args, **kwargs):
-
- row1 = crispy_layout_mixin.to_row(
- [('nome_parlamentar', 8), ('ativo', 4)])
-
- row2 = crispy_layout_mixin.to_row(
- [('nome_completo', 12)])
-
- row3 = crispy_layout_mixin.to_row(
- [('nivel_instrucao', 4),
- ('sexo', 4),
- ('data_nascimento', 4)])
-
- row4 = crispy_layout_mixin.to_row(
- [('cpf', 4),
- ('rg', 4),
- ('titulo_eleitor', 4)])
-
- row5 = crispy_layout_mixin.to_row(
- [('situacao_militar', 6),
- ('profissao', 6)])
-
- row6 = crispy_layout_mixin.to_row(
- [('endereco_web', 12)])
-
- row7 = crispy_layout_mixin.to_row(
- [('email', 12)])
-
- row8 = crispy_layout_mixin.to_row(
- [('numero_gab_parlamentar', 4),
- ('telefone', 4),
- ('fax', 4)])
-
- row9 = crispy_layout_mixin.to_row(
- [('endereco_residencia', 6),
- ('cep_residencia', 6)])
-
- row10 = crispy_layout_mixin.to_row(
- [('municipio_residencia', 12)])
-
- row11 = crispy_layout_mixin.to_row(
- [('telefone_residencia', 6),
- ('fax_residencia', 6)])
-
- row12 = crispy_layout_mixin.to_row(
- [('locais_atuacao', 12)])
-
- row13 = crispy_layout_mixin.to_row(
- [('fotografia', 12)])
-
- row14 = crispy_layout_mixin.to_row(
- [('biografia', 12)])
-
- self.helper = FormHelper()
- self.helper.layout = Layout(
- Fieldset(_('Cadastro do Parlamentar'),
- row1, row2, row3, row4, row5,
- row6, row7, row8, row9, row10,
- row11, row12, row13,
- HTML("""
- {% if not form.fotografia.errors %}
- {% if form.fotografia.value %}
-
-
-
- {% endif %}
- {% endif %}
-
""", ),
- row14,
- form_actions())
- )
- super(ParlamentaresForm, self).__init__(
- *args, **kwargs)
-
-
-class ParlamentaresEditForm(ParlamentaresForm):
-
- def __init__(self, *args, **kwargs):
- super(ParlamentaresEditForm, self).__init__(
- *args, **kwargs)
- self.helper.layout[0][-1:] = form_actions(more=[
- HTML(' '),
- Submit('excluir', 'Excluir',
- css_class='btn btn-primary')])
+from .models import Dependente, Filiacao, Legislatura, Mandato
class MandatoForm(ModelForm):
diff --git a/parlamentares/urls.py b/parlamentares/urls.py
index c7a9f922c..6e0ebb975 100644
--- a/parlamentares/urls.py
+++ b/parlamentares/urls.py
@@ -4,19 +4,19 @@ from parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
FiliacaoEditView, FiliacaoView,
LegislaturaCrud, MandatoEditView, MandatoView,
MesaDiretoraView, NivelInstrucaoCrud,
- ParlamentaresCadastroView,
+ ParlamentarCrud,
ParlamentaresDependentesEditView,
- ParlamentaresDependentesView,
- ParlamentaresEditarView, ParlamentaresView,
- PartidoCrud, SessaoLegislativaCrud,
- TipoAfastamentoCrud, TipoDependenteCrud,
- TipoMilitarCrud)
+ ParlamentaresDependentesView, PartidoCrud,
+ SessaoLegislativaCrud, TipoAfastamentoCrud,
+ TipoDependenteCrud, TipoMilitarCrud)
from .apps import AppConfig
app_name = AppConfig.name
urlpatterns = [
+ url(r'^parlamentares/', include(ParlamentarCrud.get_urls())),
+
url(r'^sistema/parlamentares/legislatura/',
include(LegislaturaCrud.get_urls())),
url(r'^sistema/parlamentares/tipo-dependente/',
@@ -36,10 +36,6 @@ urlpatterns = [
url(r'^sistema/mesa-diretora/cargo-mesa/',
include(CargoMesaCrud.get_urls())),
- url(r'^parlamentares/$',
- ParlamentaresView.as_view(), name='parlamentares'),
- url(r'^parlamentares/(?P\d+)/cadastro$',
- ParlamentaresCadastroView.as_view(), name='parlamentares_cadastro'),
url(r'^parlamentares/(?P\d+)/dependentes$',
ParlamentaresDependentesView.as_view(),
name='parlamentares_dependentes'),
@@ -59,9 +55,6 @@ urlpatterns = [
MandatoEditView.as_view(),
name='parlamentares_mandato_edit'),
- url(r'^parlamentares/(?P\d+)/editar$',
- ParlamentaresEditarView.as_view(), name='parlamentares_editar'),
-
url(r'^mesa-diretora/$',
MesaDiretoraView.as_view(), name='mesa_diretora'),
]
diff --git a/parlamentares/views.py b/parlamentares/views.py
index f0e5ae54e..a419db2d9 100644
--- a/parlamentares/views.py
+++ b/parlamentares/views.py
@@ -1,5 +1,3 @@
-import os
-
from django.contrib import messages
from django.core.urlresolvers import reverse, reverse_lazy
from django.http import HttpResponseRedirect
@@ -10,9 +8,7 @@ from django.views.generic import CreateView, FormView, UpdateView
from crud.base import Crud
from .forms import (DependenteEditForm, DependenteForm, FiliacaoEditForm,
- FiliacaoForm, MandatoEditForm, MandatoForm,
- ParlamentaresEditForm, ParlamentaresForm,
- ParlamentaresListForm)
+ FiliacaoForm, MandatoEditForm, MandatoForm)
from .models import (CargoMesa, Coligacao, ComposicaoMesa, Dependente,
Filiacao, Legislatura, Mandato, NivelInstrucao,
Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar,
@@ -95,123 +91,6 @@ def validate(form, parlamentar, filiacao, request):
return True
-class ParlamentaresView(FormView):
- template_name = "parlamentares/parlamentares_list.html"
-
- def get(self, request, *args, **kwargs):
- form = ParlamentaresListForm()
-
- if not Legislatura.objects.all():
- mensagem = _('Cadastre alguma Legislatura antes'
- ' de cadastrar algum Parlamentar')
- messages.add_message(request, messages.INFO, mensagem)
- return self.render_to_response(
- {'legislaturas': [],
- 'legislatura_id': 0,
- 'form': form,
- })
-
- legislaturas = Legislatura.objects.all().order_by(
- '-data_inicio', '-data_fim')
-
- mandatos = Mandato.objects.filter(
- legislatura_id=legislaturas.first().id)
-
- parlamentares = []
- dict_parlamentar = {}
- for m in mandatos:
-
- if m.parlamentar.filiacao_set.last():
- partido = m.parlamentar.filiacao_set.last().partido.sigla
- else:
- partido = _('Sem Registro')
-
- dict_parlamentar = {
- 'id': m.parlamentar.id,
- 'nome': m.parlamentar.nome_parlamentar,
- 'partido': partido,
- 'ativo': m.parlamentar.ativo}
- parlamentares.append(dict_parlamentar)
-
- return self.render_to_response(
- {'legislaturas': legislaturas,
- 'legislatura_id': legislaturas.first().id,
- 'form': form,
- 'parlamentares': parlamentares})
-
- def post(self, request, *args, **kwargs):
- form = ParlamentaresListForm(request.POST)
-
- mandatos = Mandato.objects.filter(
- legislatura_id=int(form.data['periodo']))
-
- parlamentares = []
- dict_parlamentar = {}
- for m in mandatos:
-
- if m.parlamentar.filiacao_set.last():
- partido = m.parlamentar.filiacao_set.last().partido.sigla
- else:
- partido = _('Sem Registro')
-
- dict_parlamentar = {
- 'id': m.parlamentar.id,
- 'nome': m.parlamentar.nome_parlamentar,
- 'partido': partido,
- 'ativo': m.parlamentar.ativo}
- parlamentares.append(dict_parlamentar)
-
- return self.render_to_response(
- {'legislaturas': Legislatura.objects.all().order_by(
- '-data_inicio', '-data_fim'),
- 'legislatura_id': int(form.data['periodo']),
- 'form': form,
- 'parlamentares': parlamentares})
-
-
-class ParlamentaresCadastroView(CreateView):
- template_name = "parlamentares/parlamentares_cadastro.html"
- form_class = ParlamentaresForm
- model = Parlamentar
-
- def get_success_url(self):
- return reverse('parlamentares:parlamentares')
-
- def get_context_data(self, **kwargs):
- context = super(ParlamentaresCadastroView, self).get_context_data(
- **kwargs)
- legislatura_id = self.kwargs['pk']
- context.update({'legislatura_id': legislatura_id})
- return context
-
- def form_valid(self, form):
- form.save()
- return redirect(self.get_success_url())
-
-
-class ParlamentaresEditarView(UpdateView):
- template_name = "parlamentares/parlamentares_cadastro.html"
- form_class = ParlamentaresEditForm
- model = Parlamentar
- success_url = reverse_lazy('parlamentares:parlamentares')
-
- def form_valid(self, form):
- parlamentar = form.instance
- if 'salvar' in self.request.POST:
- form.save()
- elif 'excluir' in self.request.POST:
- Mandato.objects.get(parlamentar=parlamentar).delete()
- parlamentar.delete()
- elif "remover-foto" in self.request.POST:
- try:
- os.unlink(parlamentar.fotografia.path)
- except OSError:
- pass # Should log this error!!!!!
- parlamentar.fotografia = None
- parlamentar.save()
- return HttpResponseRedirect(self.get_success_url())
-
-
class ParlamentaresDependentesView(CreateView):
template_name = "parlamentares/parlamentares_dependentes.html"
form_class = DependenteForm
diff --git a/templates/base.html b/templates/base.html
index 85f491306..27d96c4a7 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -49,7 +49,7 @@
Mesa Diretora
Comissões
- Parlamentares
+ Parlamentares
diff --git a/templates/parlamentares/subnav.yaml b/templates/parlamentares/subnav.yaml
index bfef5bc0d..efb862f91 100644
--- a/templates/parlamentares/subnav.yaml
+++ b/templates/parlamentares/subnav.yaml
@@ -1,5 +1,5 @@
- title: Início
- url: parlamentares_editar
+ url: parlamentar_detail
- title: Mandatos
url: parlamentares_mandato
- title: Filiações Partidárias