Browse Source

Add form to Autoria in MateriaLegislativa

pull/11/merge
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
453e934ad3
  1. 13
      materia/urls.py
  2. 84
      materia/views.py
  3. 79
      templates/materia/autoria.html
  4. 2
      templates/materia/materia_detail.html

13
materia/urls.py

@ -1,8 +1,8 @@
from django.conf.urls import include, url
from materia.views import (DespachoInicialEditView, DespachoInicialView,
DocumentoAcessorioEditView, DocumentoAcessorioView,
FormularioCadastroView, FormularioSimplificadoView,
from materia.views import (AutoriaView, DespachoInicialEditView,
DespachoInicialView, DocumentoAcessorioEditView,
DocumentoAcessorioView, FormularioCadastroView,
FormularioSimplificadoView,
LegislacaoCitadaEditView, LegislacaoCitadaView,
MateriaAnexadaEditView, MateriaAnexadaView,
NumeracaoEditView, NumeracaoView, RelatoriaView,
@ -64,4 +64,9 @@ urlpatterns = [
TramitacaoView.as_view(), name='tramitacao_materia'),
url(r'^materia/(?P<pk>\d+)/tramitacao/(?P<id>\d+)/edit$',
TramitacaoEditView.as_view(), name='tramitacao_edit'),
<<<<<<< HEAD
=======
url(r'^materia/(?P<pk>\d+)/autoria$',
AutoriaView.as_view(), name='autoria'),
>>>>>>> Add form to Autoria in MateriaLegislativa
]

84
materia/views.py

@ -1291,8 +1291,13 @@ class TramitacaoView(FormMixin, GenericView):
{'form': form,
'materia': materia,
'tramitacoes': tramitacoes_list,
<<<<<<< HEAD
'error': 'A origem da nova tramitação \
deve ser igual ao destino da última adicionada!'})
=======
'error': 'A origem da nova tramitação\
deve ser igual ao destino da última adicionada!'})
>>>>>>> Add form to Autoria in MateriaLegislativa
return self.form_valid(form)
else:
return self.render_to_response({'form': form,
@ -1354,3 +1359,82 @@ class TramitacaoEditView(FormMixin, GenericView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('tramitacao_materia', kwargs={'pk': pk})
class AutoriaForm(forms.Form):
tipo_autor = forms.CharField()
nome_autor = forms.CharField()
primeiro_autor = forms.CharField()
class AutoriaView(GenericView):
template_name = "materia/autoria.html"
def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
autorias = Autoria.objects.filter(materia=materia)
form = AutoriaForm()
return self.render_to_response(
{'materia': materia,
'form': form,
'autorias': autorias,
'tipo_autores': TipoAutor.objects.all(),
'autores': Autor.objects.all(),
'tipo_autor_id': TipoAutor.objects.first().id})
def post(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
autorias = Autoria.objects.filter(materia=materia)
form = AutoriaForm(request.POST)
if 'salvar' in request.POST:
if int(form.data['primeiro_autor']) == 1:
primeiro = True
else:
primeiro = False
autor = Autor.objects.get(
id=int(form.data['nome_autor']))
try:
autoria = Autoria.objects.get(
autor=autor,
materia=materia
)
except ObjectDoesNotExist:
autoria = Autoria()
autoria.autor = autor
autoria.materia = materia
autoria.primeiro_autor = primeiro
autoria.save()
return self.render_to_response(
{'materia': materia,
'form': form,
'autorias': autorias,
'tipo_autores': TipoAutor.objects.all(),
'autores': Autor.objects.all(),
'tipo_autor_id': int(form.data['tipo_autor'])})
else:
return self.render_to_response(
{'materia': materia,
'form': form,
'autorias': autorias,
'tipo_autores': TipoAutor.objects.all(),
'autores': Autor.objects.all(),
'tipo_autor_id': int(form.data['tipo_autor']),
'error': 'Essa autoria já foi adicionada!'})
else:
return self.render_to_response(
{'materia': materia,
'form': form,
'autorias': autorias,
'tipo_autores': TipoAutor.objects.all(),
'autores': Autor.objects.all(),
'tipo_autor_id': int(form.data['tipo_autor'])})
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('autoria', kwargs={'pk': pk})

79
templates/materia/autoria.html

@ -0,0 +1,79 @@
{% extends "materia/materia_detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block detail_content %}
<fieldset>
<legend>Matéria Legislativa</legend>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Tipo: <b>{{materia.tipo.sigla}}</b></li>
<li>Número: <b>{{materia.numero}}</b></li>
<li>Ano: <b>{{materia.ano}}</b></li>
</ul>
Ementa: <b>{{materia.ementa}}</b>
<fieldset>
<legend>Autorias</legend>
<table>
<tr>
<th>Nome Autor</th>
<th>Tipo Autor</th>
<th>Primeiro Autor</th>
</tr>
{% for a in autorias %}
<tr>
<td><a href="">{{a.autor}}</a></td>
<td>{{a.autor.tipo.descricao}}</td>
<td>{{a.primeiro_autor|yesno:"Sim,Não"}}</td>
</tr>
{% endfor %}
</table>
</fieldset>
<fieldset>
<legend>Adicionar Autoria</legend>
{% if error %} <h5 align="center"><font color="#FF0000">{{ error }}</font></h5> {% endif %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Tipo do Autor</li>
<li>Nome Autor</li>
<li>Primeiro Autor</li>
</ul>
<form method="POST">
{% csrf_token %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>
<select name="tipo_autor" onChange="form.submit();">
{% for tipo in tipo_autores %}
<option value="{{tipo.id}}" {% if tipo.id == tipo_autor_id %} selected {% endif %}>
{{tipo.descricao}}
</option>
{% endfor %}
</select>
</li>
<li>
<select name="nome_autor">
{% for a in autores %}
{% if a.tipo.id == tipo_autor_id %}
<option value="{{a.id}}">
{{a}}
</option>
{% endif %}
{% endfor %}
</select>
</li>
<li>
<select name="primeiro_autor">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
</select>
</li>
</ul>
<input type="submit" name="salvar" value="Salvar" class="button primary">
</form>
</fieldset>
</fieldset>
{% endblock %}

2
templates/materia/materia_detail.html

@ -5,7 +5,7 @@
<dl class="sub-nav left">
<dd><a href="" class="button secondary">{% trans 'Início' %}</a></dd>
<dd><a href="{% url 'materia_anexada' materia.id %}" class="button secondary">{% trans 'Anexada' %}</a></dd>
<dd><a href="" class="button secondary">{% trans 'Autoria' %}</a></dd>
<dd><a href="{% url 'autoria' materia.id %}" class="button secondary">{% trans 'Autoria' %}</a></dd>
<dd><a href="{% url 'despacho_inicial' materia.id %}" class="button secondary">{% trans 'Despacho Inicial' %}</a></dd>
<dd><a href="{% url 'documento_acessorio' materia.id %}" class="button secondary">{% trans 'Documento Acessório' %}</a></dd>
<dd><a href="{% url 'legislacao_citada' materia.id %}" class="button secondary">{% trans 'Legislação Citada' %}</a></dd>

Loading…
Cancel
Save