Browse Source

Valida localização atual

pull/410/head
Eduardo Edson Batista Cordeiro Alves 10 years ago
parent
commit
6de875a118
  1. 16
      materia/forms.py
  2. 194
      materia/views.py
  3. 61
      templates/materia/relatoria_edit.html

16
materia/forms.py

@ -10,6 +10,7 @@ from django.utils.translation import ugettext_lazy as _
import crispy_layout_mixin import crispy_layout_mixin
import sapl import sapl
from comissoes.models import Comissao
from crispy_layout_mixin import form_actions from crispy_layout_mixin import form_actions
from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica from norma.models import LegislacaoCitada, NormaJuridica, TipoNormaJuridica
from sapl.settings import MAX_DOC_UPLOAD_SIZE from sapl.settings import MAX_DOC_UPLOAD_SIZE
@ -175,12 +176,25 @@ class DocumentoAcessorioForm(ModelForm):
class RelatoriaForm(ModelForm): class RelatoriaForm(ModelForm):
class Meta: class Meta:
model = Relatoria
model = Relatoria model = Relatoria
fields = ['data_designacao_relator', 'comissao', 'parlamentar', fields = ['data_designacao_relator', 'comissao', 'parlamentar',
'data_destituicao_relator', 'tipo_fim_relatoria'] 'data_destituicao_relator', 'tipo_fim_relatoria']
widgets = {'comissao': forms.Select(attrs={'disabled': 'disabled'})} widgets = {'comissao': forms.Select(attrs={'disabled': 'disabled'})}
def clean(self):
cleaned_data = self.cleaned_data
try:
comissao = Comissao.objects.get(id=self.initial['comissao'])
except ObjectDoesNotExist:
msg = _('A localização atual deve ser uma comissão.')
raise ValidationError(msg)
else:
cleaned_data['comissao'] = comissao
return cleaned_data
class TramitacaoForm(ModelForm): class TramitacaoForm(ModelForm):

194
materia/views.py

@ -64,8 +64,21 @@ class RelatoriaCrud(MasterDetailCrud):
form_class = RelatoriaForm form_class = RelatoriaForm
def get_initial(self): def get_initial(self):
self.initial['comissao'] = 8 materia = MateriaLegislativa.objects.get(id=self.kwargs['pk'])
return self.initial
loc_atual = Tramitacao.objects.filter(
materia=materia).last()
if loc_atual is None:
localizacao = 0
else:
comissao = loc_atual.unidade_tramitacao_destino.comissao
if comissao:
localizacao = comissao.pk
else:
localizacao = 0
return {'comissao': localizacao}
class UpdateView(MasterDetailCrud.UpdateView): class UpdateView(MasterDetailCrud.UpdateView):
form_class = RelatoriaForm form_class = RelatoriaForm
@ -321,183 +334,6 @@ class DocumentoAcessorioEditView(CreateView):
return reverse('materia:documento_acessorio', kwargs={'pk': pk}) return reverse('materia:documento_acessorio', kwargs={'pk': pk})
class RelatoriaEditView(FormView):
template_name = "materia/relatoria_edit.html"
form_class = RelatoriaForm
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:relatoria', kwargs={'pk': pk})
def get(self, request, *args, **kwargs):
form = RelatoriaForm()
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
relatoria = Relatoria.objects.get(
id=kwargs['id'])
composicao = Composicao.objects.filter(
comissao=relatoria.comissao).last()
parlamentares = composicao.participacao_set.all()
return self.render_to_response(
{'object': materia,
'form': form,
'relatoria': relatoria,
'tipo_fim_relatorias': TipoFimRelatoria.objects.all(),
'parlamentares': parlamentares})
def post(self, request, *args, **kwargs):
form = RelatoriaForm(request.POST)
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
relatoria = Relatoria.objects.get(id=kwargs['id'])
composicao = Composicao.objects.filter(
comissao=relatoria.comissao).last()
parlamentares = composicao.participacao_set.all()
if form.is_valid():
if 'excluir' in request.POST:
relatoria.delete()
return self.form_valid(form)
elif 'salvar' in request.POST:
relatoria.materia = materia
relatoria.comissao = relatoria.comissao
relatoria.data_designacao_relator = form.cleaned_data[
'data_designacao_relator']
relatoria.data_destituicao_relator = form.cleaned_data[
'data_destituicao_relator']
relatoria.parlamentar = form.cleaned_data['parlamentar']
relatoria.tipo_fim_relatoria = form.cleaned_data[
'tipo_fim_relatoria']
relatoria.save()
return self.form_valid(form)
else:
return self.render_to_response(
{'object': materia,
'form': form,
'relatoria': relatoria,
'tipo_fim_relatorias': TipoFimRelatoria.objects.all(),
'parlamentares': parlamentares})
class RelatoriaView(FormView):
template_name = "materia/relatoria.html"
form_class = RelatoriaForm
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('materia:relatoria', kwargs={'pk': pk})
def post(self, request, *args, **kwargs):
form = RelatoriaForm(request.POST)
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
if not materia.tramitacao_set.all():
msg = _(
'Adicione alguma Tramitação antes de adicionar uma Comissão!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'tipo_fim_relatoria': TipoFimRelatoria.objects.all()
})
else:
relatorias = Relatoria.objects.filter(
materia_id=kwargs['pk']).order_by(
'-data_designacao_relator')
localizacao = Tramitacao.objects.filter(
materia=materia).last()
comissao = Comissao.objects.get(
id=localizacao.unidade_tramitacao_destino.comissao.id)
if form.is_valid():
relatoria = form.save(commit=False)
relatoria.materia = materia
relatoria.comissao = comissao
relatoria.save()
return self.form_valid(form)
else:
try:
composicao = Composicao.objects.get(comissao=comissao)
except ObjectDoesNotExist:
msg = _('Não há composição nesta Comissão!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias,
'comissao': comissao})
parlamentares = composicao.participacao_set.all()
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias,
'comissao': comissao,
'tipo_fim_relatoria': TipoFimRelatoria.objects.all(),
'parlamentares': parlamentares})
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
relatorias = Relatoria.objects.filter(
materia_id=kwargs['pk']).order_by('-data_designacao_relator')
form = RelatoriaForm()
localizacao = Tramitacao.objects.filter(
materia=materia).last()
if not materia.tramitacao_set.all():
msg = _(
'Adicione alguma Tramitação antes de adicionar uma Comissão!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias,
'tipo_fim_relatoria': TipoFimRelatoria.objects.all()
})
elif not localizacao.unidade_tramitacao_destino.comissao:
msg = _('O local atual deve ser uma Comissão!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias})
else:
try:
comissao = Comissao.objects.get(
id=localizacao.unidade_tramitacao_destino.comissao.id)
composicao = Composicao.objects.filter(
comissao=comissao).last()
if not composicao:
msg = _('Não há composição nesta Comissão!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias,
'comissao': comissao})
parlamentares = composicao.participacao_set.all()
except ObjectDoesNotExist:
msg = _('O local atual deve ser uma Comissão!')
messages.add_message(request, messages.INFO, msg)
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias})
else:
composicao = Composicao.objects.filter(
comissao=comissao).last()
parlamentares = composicao.participacao_set.all()
return self.render_to_response(
{'object': materia,
'form': form,
'relatorias': relatorias,
'comissao': comissao,
'tipo_fim_relatoria': TipoFimRelatoria.objects.all(),
'parlamentares': parlamentares})
def load_email_templates(templates, context={}): def load_email_templates(templates, context={}):
emails = [] emails = []

61
templates/materia/relatoria_edit.html

@ -1,61 +0,0 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %} {% endblock %}
{% block detail_content %}
<fieldset>
<legend>Matéria Legislativa</legend>
{% include "materia/resumo_detail_materia.html" %}
<fieldset class="form-group">
<legend>Editar Relator</legend>
<form method="POST">
{% csrf_token %}
<div class="row">
<div class="col-md-12">
Localização Atual
<input type="text" name="comissao" disabled value="{{relatoria.comissao.nome}}" class="form-control"/>
</div>
</div>
<div class="row">
<div class="col-md-6">
Data Designação*
<input type="text" name="data_designacao_relator" class ="dateinput form-control" value="{{relatoria.data_designacao_relator}}" />
</div>
<div class="col-md-6">
Data Destituição
<input type="text" name="data_destituicao_relator" class ="dateinput form-control" {% if relatoria.data_destituicao_relator %} value="{{relatoria.data_destituicao_relator}}" {% endif %}/>
</div>
</div>
<div class="row">
<div class="col-md-6">
Parlamentar*
<select name="parlamentar" class="form-control">
<option value=""> ---------- </option>
{% for p in parlamentares %}
<option value="{{p.parlamentar_id}}" {% if relatoria.parlamentar_id == p.parlamentar_id %} selected {% endif %}>
{{p.parlamentar}}
</option>
{% endfor %}
</select>
</div>
<div class="col-md-6">
Motivo Fim Relatoria
<select name="tipo_fim_relatoria" class="form-control">
<option value=""> ---------- </option>
{% for t in tipo_fim_relatorias %}
<option value="{{t.id}}" {% if t.id == relatoria.tipo_fim_relatoria_id %} selected {% endif %}>
{{t.descricao}}
</option>
{% endfor %}
</select>
</div>
</div>
<br />
<input type="submit" name="salvar" value="Salvar" class="btn btn-primary"/>
<input type="submit" name="excluir" value="Excluir" class="btn btn-danger"/>
</form>
</fieldset>
</fieldset>
{% endblock %}
Loading…
Cancel
Save