diff --git a/sapl/sessao/migrations/0025_auto_20180919_1116.py b/sapl/sessao/migrations/0025_auto_20180919_1116.py new file mode 100644 index 000000000..fa4c0a435 --- /dev/null +++ b/sapl/sessao/migrations/0025_auto_20180919_1116.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.13 on 2018-09-19 14:16 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0024_ocorrenciasessao'), + ] + + operations = [ + migrations.AlterField( + model_name='ocorrenciasessao', + name='sessao_plenaria', + field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='sessao.SessaoPlenaria'), + ), + ] diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 6d885e54a..7f8ea0882 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -300,10 +300,11 @@ class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria def __str__(self): return '%s - %s' % (self.tipo, self.sessao_plenaria) + @reversion.register() class OcorrenciaSessao(models.Model): # OcorrenciaSessaoPlenaria - sessao_plenaria = models.ForeignKey(SessaoPlenaria, - on_delete=models.PROTECT) + sessao_plenaria = models.OneToOneField(SessaoPlenaria, + on_delete=models.PROTECT) conteudo = models.TextField( blank=True, verbose_name=_('Ocorrências da Sessão Plenária')) @@ -312,7 +313,7 @@ class OcorrenciaSessao(models.Model): # OcorrenciaSessaoPlenaria verbose_name_plural = _('Ocorrências da Sessão Plenaria') def __str__(self): - return '%s - %s' % (self.sessao_plenaria) + return '%s - %s' % (self.sessao_plenaria, self.conteudo) @reversion.register() diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index e654c8243..1e3e4ae43 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -3,7 +3,7 @@ from django.conf.urls import include, url from sapl.sessao.views import (AdicionarVariasMateriasExpediente, AdicionarVariasMateriasOrdemDia, BancadaCrud, BlocoCrud, CargoBancadaCrud, - ExpedienteMateriaCrud, ExpedienteView, ocorrencia_sessaoView, + ExpedienteMateriaCrud, ExpedienteView, OcorrenciaSessaoView, MateriaOrdemDiaCrud, MesaView, OradorCrud, OradorExpedienteCrud, PainelView, PautaSessaoDetailView, PautaSessaoView, @@ -101,7 +101,7 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/expediente$', ExpedienteView.as_view(), name='expediente'), url(r'^sessao/(?P\d+)/ocorrencia_sessao$', - ocorrencia_sessaoView.as_view(), name='ocorrencia_sessao'), + OcorrenciaSessaoView.as_view(), name='ocorrencia_sessao'), url(r'^sessao/(?P\d+)/presenca$', PresencaView.as_view(), name='presenca'), url(r'^sessao/(?P\d+)/painel$', @@ -112,7 +112,7 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/resumo$', ResumoView.as_view(), name='resumo'), url(r'^sessao/(?P\d+)/resumo_ata$', - ResumoAtaView.as_view(), name='resumo_ata'), + ResumoAtaView.as_view(), name='resumo_ata'), url(r'^sessao/pesquisar-sessao$', PesquisarSessaoPlenariaView.as_view(), name='pesquisar_sessao'), url(r'^sessao/(?P\d+)/matordemdia/votnom/(?P\d+)/(?P\d+)$', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 8fa2d532b..cd2ac714b 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1455,9 +1455,12 @@ class ResumoView(DetailView): 'decimo_ordenacao': dict_ord_template['oradores_expli']}) return self.render_to_response(context) + + class ResumoAtaView(ResumoView): template_name = 'sessao/resumo_ata.html' + class ExpedienteView(FormMixin, DetailView): template_name = 'sessao/expediente.html' form_class = ExpedienteForm @@ -1535,8 +1538,9 @@ class ExpedienteView(FormMixin, DetailView): def get_success_url(self): pk = self.kwargs['pk'] return reverse('sapl.sessao:expediente', kwargs={'pk': pk}) - -class ocorrencia_sessaoView(FormMixin, DetailView): + + +class OcorrenciaSessaoView(FormMixin, DetailView): template_name = 'sessao/ocorrencia_sessao.html' form_class = OcorrenciaSessaoForm model = SessaoPlenaria @@ -1558,61 +1562,28 @@ class ocorrencia_sessaoView(FormMixin, DetailView): return self.form_valid(form) if form.is_valid(): - list_conteudo = request.POST.getlist('conteudo') + conteudo = request.POST.get('conteudo') - for tipo, conteudo in zip(list_tipo, list_conteudo): - - ExpedienteSessao.objects.filter( - sessao_plenaria_id=self.object.id, - tipo_id=tipo).delete() + OcorrenciaSessao.objects.filter( + sessao_plenaria_id=self.object.id).delete() - expediente = ExpedienteSessao() - expediente.sessao_plenaria_id = self.object.id - expediente.tipo_id = tipo - expediente.conteudo = conteudo - expediente.save() + ocorrencia = OcorrenciaSessao() + ocorrencia.sessao_plenaria_id = self.object.id + ocorrencia.conteudo = conteudo + ocorrencia.save() - msg = _('Registro salvo com sucesso') - messages.add_message(self.request, messages.SUCCESS, msg) + msg = _('Registro salvo com sucesso') + messages.add_message(self.request, messages.SUCCESS, msg) return self.form_valid(form) else: msg = _('Erro ao salvar registro') messages.add_message(self.request, messages.SUCCESS, msg) return self.form_invalid(form) - def get(self, request, *args, **kwargs): - self.object = self.get_object() - context = self.get_context_data(object=self.object) - tipos = TipoExpediente.objects.all().order_by('nome') - expedientes_sessao = ExpedienteSessao.objects.filter( - sessao_plenaria_id=self.object.id).order_by('tipo__nome') - - expedientes_salvos = [] - for e in expedientes_sessao: - expedientes_salvos.append(e.tipo) - - tipos_null = list(set(tipos) - set(expedientes_salvos)) - tipos_null.sort(key=lambda x: x.nome) - - expedientes = [] - for e, t in zip(expedientes_sessao, tipos): - expedientes.append({'tipo': e.tipo, - 'conteudo': e.conteudo - }) - context.update({'expedientes': expedientes}) - - for e in tipos_null: - expedientes.append({'tipo': e, - 'conteudo': '' - }) - - context.update({'expedientes': expedientes}) - return self.render_to_response(context) - def get_success_url(self): pk = self.kwargs['pk'] return reverse('sapl.sessao:ocorrencia_sessao', kwargs={'pk': pk}) - + class VotacaoEditView(SessaoPermissionMixin): diff --git a/sapl/templates/sessao/ocorrencia_sessao.html b/sapl/templates/sessao/ocorrencia_sessao.html index d0f1f8962..f487a4b6e 100644 --- a/sapl/templates/sessao/ocorrencia_sessao.html +++ b/sapl/templates/sessao/ocorrencia_sessao.html @@ -10,7 +10,7 @@
{% csrf_token %}
- +