Browse Source

Refactor 'CadastroSessaoView'

pull/98/head
Eduardo Calil 9 years ago
parent
commit
4d63db294e
  1. 4
      sessao/urls.py
  2. 100
      sessao/views.py
  3. 8
      templates/sessao/sessao_cadastro.html
  4. 2
      templates/sessao/sessao_list.html

4
sessao/urls.py

@ -15,7 +15,8 @@ from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
VotacaoNominalExpedienteEditView, VotacaoNominalExpedienteEditView,
VotacaoNominalExpedienteView, VotacaoNominalView, VotacaoNominalExpedienteView, VotacaoNominalView,
VotacaoView, sessao_crud, tipo_expediente_crud, VotacaoView, sessao_crud, tipo_expediente_crud,
tipo_resultado_votacao_crud, tipo_sessao_crud) tipo_resultado_votacao_crud, tipo_sessao_crud,
SessaoCadastroView)
urlpatterns_sessao = sessao_crud.urlpatterns + [ urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/expediente$', url(r'^(?P<pk>\d+)/expediente$',
@ -87,6 +88,7 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
PautaSessaoListView.as_view(), name='list_pauta_sessao'), PautaSessaoListView.as_view(), name='list_pauta_sessao'),
url(r'^(?P<pk>\d+)/pauta-sessao-detail$', url(r'^(?P<pk>\d+)/pauta-sessao-detail$',
PautaSessaoDetailView.as_view(), name='pauta_sessao_detail'), PautaSessaoDetailView.as_view(), name='pauta_sessao_detail'),
url(r'^cadastro$', SessaoCadastroView.as_view(), name='sessao_cadastro')
] ]
sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace

100
sessao/views.py

@ -1,7 +1,10 @@
from datetime import datetime from datetime import datetime
from re import sub from re import sub
from django.forms import ModelForm
from django import forms from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import (HTML, ButtonHolder, Column, Fieldset, Layout,
Submit)
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.forms.util import ErrorList from django.forms.util import ErrorList
@ -9,7 +12,6 @@ from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView from django.views.generic import ListView
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
import sapl import sapl
from materia.models import Autoria, TipoMateriaLegislativa from materia.models import Autoria, TipoMateriaLegislativa
from parlamentares.models import Parlamentar from parlamentares.models import Parlamentar
@ -2327,3 +2329,97 @@ class PautaSessaoDetailView(sessao_crud.CrudDetailView):
context.update({'materias_ordem': materias_ordem}) context.update({'materias_ordem': materias_ordem})
return self.render_to_response(context) return self.render_to_response(context)
class SessaoForm(ModelForm):
class Meta:
model = SessaoPlenaria
fields = ['numero',
'tipo',
'legislatura',
'sessao_legislativa', #Pega do Models os campos necessários para o form
'data_inicio',
'hora_inicio',
'iniciada',
'data_fim',
'hora_fim',
'finalizada',
'upload_pauta',
'upload_ata',
'url_audio',
'url_video']
def __init__(self, *args, **kwargs):
row1 = sapl.layout.to_row(
[('numero', 3),
('tipo', 3),
('legislatura', 3),
('sessao_legislativa', 3)]) #Cria os campos
row2 = sapl.layout.to_row(
[('data_inicio', 4),
('hora_inicio', 4),
('iniciada', 4)])
row3 = sapl.layout.to_row(
[('data_fim', 4),
('hora_fim', 4),
('finalizada', 4)])
row4 = sapl.layout.to_row(
[('upload_pauta', 6),
('upload_ata', 6)])
row5 = sapl.layout.to_row(
[('url_audio', 6),
('url_video', 6)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
'Dados Básicos', #Desenha o HTML
row1,
row2,
row3,
row4,
row5,
ButtonHolder(
Submit('submit', 'Salvar',
css_class='button primary')
)
)
)
super(SessaoForm, self).__init__(*args, **kwargs)
class SessaoCadastroView(FormMixin, sessao_crud.CrudDetailView):
template_name = "sessao/sessao_cadastro.html"
def get(self, request, *args, **kwargs):
form = SessaoForm()
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
form = SessaoForm(request.POST)
if form.is_valid():
sessao = form.save(commit=False)
if 'upload_ata' in request.FILES:
sessao.upload_ata = request.FILES['upload_ata']
if 'upload_pauta' in request.FILES:
sessao.upload_pauta = request.FILES['upload_pauta']
sessao.save()
return self.form_valid(form)
else:
return self.render_to_response({'form': form})
def get_success_url(self):
return reverse('sessaoplenaria:list_sessao')

8
templates/sessao/sessao_cadastro.html

@ -0,0 +1,8 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %} {% endblock %}
{% block detail_content %}
{% crispy form %}
{% endblock detail_content %}

2
templates/sessao/sessao_list.html

@ -5,7 +5,7 @@
{% block base_content %} {% block base_content %}
<dl class="sub-nav"> <dl class="sub-nav">
<h2>Sessões Plenárias</h2> <h2>Sessões Plenárias</h2>
<dd><a href="{% url 'sessaoplenaria:create' %}"> <dd><a href="{% url 'sessaoplenaria:sessao_cadastro' %}">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Sessão Plenária {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Sessão Plenária {% endblocktrans %}
</a></dd> </a></dd>
</dl> </dl>

Loading…
Cancel
Save