Browse Source

Refatora tramitacao para create view

pull/258/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
cfef06de83
  1. 26
      materia/forms.py
  2. 34
      materia/views.py
  3. 80
      templates/materia/tramitacao_edit.html

26
materia/forms.py

@ -172,41 +172,31 @@ class TramitacaoForm(ModelForm):
'data_fim_prazo', 'data_fim_prazo',
'texto'] 'texto']
widgets = { def __init__(self, excluir=False, *args, **kwargs):
'data_tramitacao': forms.DateInput(attrs={
'class': 'dateinput'}),
'data_encaminhamento': forms.DateInput(attrs={
'class': 'dateinput'}),
'data_fim_prazo': forms.DateInput(attrs={
'class': 'dateinput'}),
}
def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row( row1 = crispy_layout_mixin.to_row(
[('data_tramitacao', 6), [('data_tramitacao', 6), ('unidade_tramitacao_local', 6)])
('unidade_tramitacao_local', 6)])
row2 = crispy_layout_mixin.to_row( row2 = crispy_layout_mixin.to_row(
[('status', 5), [('status', 5), ('turno', 5), ('urgente', 2)])
('turno', 5),
('urgente', 2)])
row3 = crispy_layout_mixin.to_row( row3 = crispy_layout_mixin.to_row(
[('unidade_tramitacao_destino', 12)]) [('unidade_tramitacao_destino', 12)])
row4 = crispy_layout_mixin.to_row( row4 = crispy_layout_mixin.to_row(
[('data_encaminhamento', 6), [('data_encaminhamento', 6), ('data_fim_prazo', 6)])
('data_fim_prazo', 6)])
row5 = crispy_layout_mixin.to_row( row5 = crispy_layout_mixin.to_row(
[('texto', 12)]) [('texto', 12)])
more = []
if excluir:
more = [Submit('Excluir', 'Excluir')]
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Fieldset(_('Incluir Tramitação'), Fieldset(_('Incluir Tramitação'),
row1, row2, row3, row4, row5, row1, row2, row3, row4, row5,
), ),
form_actions() form_actions(more=more)
) )
super(TramitacaoForm, self).__init__( super(TramitacaoForm, self).__init__(
*args, **kwargs) *args, **kwargs)

34
materia/views.py

@ -979,14 +979,15 @@ def do_envia_email_tramitacao(request, materia):
return None return None
class TramitacaoView(FormView): class TramitacaoView(CreateView):
template_name = "materia/tramitacao.html" template_name = "materia/tramitacao.html"
form_class = TramitacaoForm
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk']) materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacoes = Tramitacao.objects.filter( tramitacoes = Tramitacao.objects.filter(
materia_id=kwargs['pk']).order_by('-data_tramitacao') materia_id=kwargs['pk']).order_by('-data_tramitacao')
form = TramitacaoForm form = self.get_form()
return self.render_to_response( return self.render_to_response(
{'object': materia, {'object': materia,
@ -994,7 +995,7 @@ class TramitacaoView(FormView):
'tramitacoes': tramitacoes}) 'tramitacoes': tramitacoes})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
form = TramitacaoForm(request.POST) form = self.get_form()
materia = MateriaLegislativa.objects.get(id=kwargs['pk']) materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacoes_list = Tramitacao.objects.filter( tramitacoes_list = Tramitacao.objects.filter(
materia_id=kwargs['pk']).order_by('-data_tramitacao') materia_id=kwargs['pk']).order_by('-data_tramitacao')
@ -1019,7 +1020,6 @@ class TramitacaoView(FormView):
'tramitacoes': tramitacoes_list}) 'tramitacoes': tramitacoes_list})
do_envia_email_tramitacao(request, materia) do_envia_email_tramitacao(request, materia)
return self.form_valid(form) return self.form_valid(form)
else: else:
return self.render_to_response({'form': form, return self.render_to_response({'form': form,
@ -1031,44 +1031,37 @@ class TramitacaoView(FormView):
return reverse('tramitacao_materia', kwargs={'pk': pk}) return reverse('tramitacao_materia', kwargs={'pk': pk})
class TramitacaoEditView(FormView): class TramitacaoEditView(CreateView):
template_name = "materia/tramitacao_edit.html" template_name = "materia/tramitacao_edit.html"
form_class = TramitacaoForm
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk']) materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacao = Tramitacao.objects.get(id=kwargs['id']) tramitacao = Tramitacao.objects.get(id=kwargs['id'])
form = TramitacaoForm form = TramitacaoForm(excluir=True, instance=tramitacao)
return self.render_to_response( return self.render_to_response(
{'object': materia, {'object': materia,
'form': form, 'form': form,
'tramitacao': tramitacao, 'tramitacao': tramitacao})
'turno': Tramitacao.TURNO_CHOICES,
'status': StatusTramitacao.objects.all(),
'unidade_tramitacao': UnidadeTramitacao.objects.all()})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk']) materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
tramitacao = Tramitacao.objects.get(id=kwargs['id']) tramitacao = Tramitacao.objects.get(id=kwargs['id'])
form = TramitacaoForm(request.POST) form = self.get_form()
if form.is_valid(): if form.is_valid():
if 'excluir' in request.POST: if 'excluir' in request.POST:
if tramitacao == Tramitacao.objects.filter( if tramitacao == Tramitacao.objects.filter(
materia=materia).last(): materia=materia).last():
tramitacao.delete() tramitacao.delete()
return self.form_valid(form)
else: else:
msg = _('Somente a útlima tramitação pode ser deletada!') msg = _('Somente a útlima tramitação pode ser deletada!')
messages.add_message(request, messages.INFO, msg) messages.add_message(request, messages.INFO, msg)
return self.render_to_response( return self.render_to_response(
{'object': materia, {'object': materia,
'form': form, 'form': form,
'tramitacao': tramitacao, 'tramitacao': tramitacao})
'turno': Tramitacao.TURNO_CHOICES,
'status': StatusTramitacao.objects.all(),
'unidade_tramitacao': UnidadeTramitacao.objects.all()
})
elif 'salvar' in request.POST: elif 'salvar' in request.POST:
tramitacao.status = form.cleaned_data['status'] tramitacao.status = form.cleaned_data['status']
tramitacao.turno = form.cleaned_data['turno'] tramitacao.turno = form.cleaned_data['turno']
@ -1081,15 +1074,12 @@ class TramitacaoEditView(FormView):
tramitacao.texto = form.cleaned_data['texto'] tramitacao.texto = form.cleaned_data['texto']
tramitacao.save() tramitacao.save()
return self.form_valid(form) return redirect(self.get_success_url())
else: else:
return self.render_to_response( return self.render_to_response(
{'object': materia, {'object': materia,
'form': form, 'form': form,
'tramitacao': tramitacao, 'tramitacao': tramitacao})
'turno': Tramitacao.TURNO_CHOICES,
'status': StatusTramitacao.objects.all(),
'unidade_tramitacao': UnidadeTramitacao.objects.all()})
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']

80
templates/materia/tramitacao_edit.html

@ -3,83 +3,5 @@
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% block actions %} {% endblock %} {% block actions %} {% endblock %}
{% block detail_content %} {% block detail_content %}
<fieldset> {% crispy form %}
<legend>Matéria Legislativa</legend>
{% include "materia/resumo_detail_materia.html" %}
<fieldset class="form-group">
<legend>Editar Tramitação</legend>
<form method="POST">
{% csrf_token %}
<div class="row">
<div class="col-md-6">
<label>Data Tramitação</label>
<input type="text" name="data_tramitacao" class="dateinput form-control" value="{{tramitacao.data_tramitacao|date:'d/m/Y'}}" disabled />
</div>
<div class="col-md-6">
<label>Unidade Local</label>
<input type="text" name="unidade_tramitacao_local" value="{{tramitacao.unidade_tramitacao_local}} " disabled class="form-control"/>
</div>
</div>
<div class="row">
<div class="col-md-4">
<label>Status*</label>
<select name="status" class="form-control">
{% for s in status %}
<option value="{{s.id}}" {% if s.id == tramitacao.status.id %} selected {% endif %}>
{{s.descricao}}
</option>
{% endfor %}
</select>
</div>
<div class="col-md-4">
<label>Turno*</label>
<select name="turno" class="form-control">
{% for a, b in turno %}
<option value="{{a}}">{{b}}</option>
{% endfor %}
</select>
</div>
<div class="col-md-4 checkbox">
<input type="checkbox" name="urgente" value="{{tramtiacao.urgente}}" /> Urgente ?<br />
</div>
</div>
<div class="row">
<div class="col-md-12">
<label>Unidade Destino</label>
<select name="unidade_tramitacao_destino" class="form-control">
{% for u in unidade_tramitacao %}
<option value="{{u.id}}" {% if u.id == tramitacao.unidade_tramitacao_destino.id %} selected {% endif %}>
{{u.orgao}} - {{u.comissao}}
</option>
{% endfor %}
</select>
</div>
</div>
<div class="row">
<div class="col-md-6">
<label>Data Encaminhamento</label>
<input type="text" name="data_encaminhamento" class="dateinput form-control" value="{{tramitacao.data_encaminhamento|date:'d/m/Y'}}" />
</div>
<div class="col-md-6">
<label>Data Fim Prazo</label>
<input type="text" name="data_fim_prazo" class="dateinput form-control" value="{{tramitacao.data_fim_prazo|date:'d/m/Y'}}" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<label>Texto da Ação</label>
<textarea rows="4" cols="50" name="texto" class="form-control">{{tramitacao.texto}}</textarea>
</div>
</div>
<br />
<input type="submit" value="Salvar" id="salvar" name="salvar" class="btn btn-primary" />
<input type="submit" value="Excluir" id="excluir" name="excluir" class="btn btn-danger" />
</form>
</fieldset>
</fieldset>
{% endblock %} {% endblock %}

Loading…
Cancel
Save