From c58217a7d40eed885e1c20af0b3dfdcdba115dd7 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Fri, 13 Nov 2015 15:03:41 -0200 Subject: [PATCH] Add EditView to Autoria in Materia --- materia/urls.py | 10 ++-- materia/views.py | 75 +++++++++++++++++++++++++++++ protocoloadm/urls.py | 2 +- templates/materia/autoria.html | 4 +- templates/materia/autoria_edit.html | 61 +++++++++++++++++++++++ 5 files changed, 145 insertions(+), 7 deletions(-) create mode 100644 templates/materia/autoria_edit.html diff --git a/materia/urls.py b/materia/urls.py index 92c6c2002..ef6cb9063 100644 --- a/materia/urls.py +++ b/materia/urls.py @@ -1,8 +1,8 @@ from django.conf.urls import include, url -from materia.views import (AutoriaView, DespachoInicialEditView, - DespachoInicialView, DocumentoAcessorioEditView, - DocumentoAcessorioView, FormularioCadastroView, - FormularioSimplificadoView, +from materia.views import (AutoriaEditView, AutoriaView, + DespachoInicialEditView, DespachoInicialView, + DocumentoAcessorioEditView, DocumentoAcessorioView, + FormularioCadastroView, FormularioSimplificadoView, LegislacaoCitadaEditView, LegislacaoCitadaView, MateriaAnexadaEditView, MateriaAnexadaView, NumeracaoEditView, NumeracaoView, RelatoriaView, @@ -66,4 +66,6 @@ urlpatterns = [ TramitacaoEditView.as_view(), name='tramitacao_edit'), url(r'^materia/(?P\d+)/autoria$', AutoriaView.as_view(), name='autoria'), + url(r'^materia/(?P\d+)/autoria/(?P\d+)/edit$', + AutoriaEditView.as_view(), name='autoria_edit'), ] diff --git a/materia/views.py b/materia/views.py index 8063afd43..73207ddbd 100644 --- a/materia/views.py +++ b/materia/views.py @@ -1433,3 +1433,78 @@ class AutoriaView(GenericView): def get_success_url(self): pk = self.kwargs['pk'] return reverse('autoria', kwargs={'pk': pk}) + + +class AutoriaEditView(GenericView): + template_name = "materia/autoria_edit.html" + + def get(self, request, *args, **kwargs): + materia = MateriaLegislativa.objects.get(id=kwargs['pk']) + autorias = Autoria.objects.filter(materia=materia) + autor = Autor.objects.get(id=self.kwargs['id']) + 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': autor.tipo.id, + 'autor_id': autor.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}) \ No newline at end of file diff --git a/protocoloadm/urls.py b/protocoloadm/urls.py index 7a8bbbea4..de369ae25 100644 --- a/protocoloadm/urls.py +++ b/protocoloadm/urls.py @@ -49,7 +49,7 @@ urlpatterns = [ ProtocoloMateriaView.as_view(), name='protocolar_mat'), url(r'^protocoloadm/pesq-doc-adm', PesquisarDocumentoAdministrativo.as_view(), name='pesq_doc_adm'), - url(r'^protocoloadm/doc-adm/(?P\d+)', + url(r'^protocoloadm/doc-adm/(?P\d+)$', DetailDocumentoAdministrativo.as_view(), name='detail_doc_adm'), url(r'^protocoloadm/doc-ace-adm/(?P\d+)', DocumentoAcessorioAdministrativoView.as_view(), name='doc_ace_adm'), diff --git a/templates/materia/autoria.html b/templates/materia/autoria.html index a35b7668f..40d8109fa 100644 --- a/templates/materia/autoria.html +++ b/templates/materia/autoria.html @@ -22,7 +22,7 @@ {% for a in autorias %} - {{a.autor}} + {{a.autor}} {{a.autor.tipo.descricao}} {{a.primeiro_autor|yesno:"Sim,Não"}} @@ -56,7 +56,7 @@
  • + {% for tipo in tipo_autores %} + + {% endfor %} + +
  • + +
  • + +
  • + +
  • + +
  • + + + + + +{% endblock %} \ No newline at end of file