Browse Source

form update bugging, form create and view ok

pull/2383/head
Victor Fabre 7 years ago
parent
commit
35eca2afba
  1. 28
      sapl/sessao/forms.py
  2. 21
      sapl/sessao/migrations/0031_auto_20181116_1849.py
  3. 3
      sapl/sessao/models.py
  4. 13
      sapl/sessao/views.py
  5. 8
      sapl/templates/sessao/layouts.yaml

28
sapl/sessao/forms.py

@ -233,17 +233,28 @@ class RetiradaPautaForm(ModelForm):
q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria']) q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria'])
ordens = OrdemDia.objects.filter(q) ordens = OrdemDia.objects.filter(q)
expedientes = ExpedienteMateria.objects.filter(q) expedientes = ExpedienteMateria.objects.filter(q)
retiradas_ordem = [r.ordem for r in RetiradaPauta.objects.filter(q, ordem__in=ordens)]
retiradas_expediente = [r.expediente for r in RetiradaPauta.objects.filter(q, expediente__in=expedientes)]
setOrdem = set(ordens) - set(retiradas_ordem)
setExpediente = set(expedientes) - set(retiradas_expediente)
super(RetiradaPautaForm, self).__init__( super(RetiradaPautaForm, self).__init__(
*args, **kwargs) *args, **kwargs)
if self.instance:
setOrdem = set(ordens)
setExpediente = set(expedientes)
presencas = SessaoPlenariaPresenca.objects.filter( presencas = SessaoPlenariaPresenca.objects.filter(
q).order_by('parlamentar__nome_parlamentar') q).order_by('parlamentar__nome_parlamentar')
presentes = [p.parlamentar for p in presencas] presentes = [p.parlamentar for p in presencas]
self.fields['expediente'].choices = [ self.fields['expediente'].choices = [
(None, "------------")] + [(e.id, e.materia) for e in expedientes] (None, "------------")] + [(e.id, e.materia) for e in setExpediente]
self.fields['ordem'].choices = [ self.fields['ordem'].choices = [
(None, "------------")] + [(o.id, o.materia) for o in ordens] (None, "------------")] + [(o.id, o.materia) for o in setOrdem]
self.fields['parlamentar'].choices = [ self.fields['parlamentar'].choices = [
(None, "------------")] + [(p.id, p) for p in presentes] (None, "------------")] + [(p.id, p) for p in presentes]
@ -254,12 +265,6 @@ class RetiradaPautaForm(ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
if self.cleaned_data['ordem']:
self.cleaned_data['materia'] = self.cleaned_data['ordem'].materia
elif self.cleaned_data['expediente']:
self.cleaned_data['materia'] = self.cleaned_data['expediente'].materia
sessao_plenaria = self.instance.sessao_plenaria sessao_plenaria = self.instance.sessao_plenaria
if self.cleaned_data['data'] < sessao_plenaria.data_inicio: if self.cleaned_data['data'] < sessao_plenaria.data_inicio:
raise ValidationError(_("Data de retirada de pauta anterior à abertura da Sessão")) raise ValidationError(_("Data de retirada de pauta anterior à abertura da Sessão"))
@ -268,6 +273,13 @@ class RetiradaPautaForm(ModelForm):
return self.cleaned_data return self.cleaned_data
def save(self, commit=False):
retirada = super(RetiradaPautaForm, self).save(commit=False)
if retirada.ordem:
retirada.materia = retirada.ordem.materia
elif retirada.expediente:
retirada.materia = retirada.expediente.materia
retirada.save()
class BancadaForm(ModelForm): class BancadaForm(ModelForm):

21
sapl/sessao/migrations/0031_auto_20181116_1849.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.8 on 2018-11-16 20:49
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('sessao', '0030_auto_20181113_1149'),
]
operations = [
migrations.AlterField(
model_name='retiradapauta',
name='materia',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='materia.MateriaLegislativa', verbose_name='Matéria'),
),
]

3
sapl/sessao/models.py

@ -678,7 +678,8 @@ class JustificativaAusencia(models.Model):
class RetiradaPauta(models.Model): class RetiradaPauta(models.Model):
materia = models.ForeignKey(MateriaLegislativa, materia = models.ForeignKey(MateriaLegislativa,
on_delete=models.CASCADE) on_delete=models.CASCADE,
verbose_name=_('Matéria'))
sessao_plenaria = models.ForeignKey(SessaoPlenaria, sessao_plenaria = models.ForeignKey(SessaoPlenaria,
on_delete=models.CASCADE, on_delete=models.CASCADE,
verbose_name=_('Sessão Plenária'), verbose_name=_('Sessão Plenária'),

13
sapl/sessao/views.py

@ -3239,4 +3239,15 @@ class RetiradaPautaCrud(MasterDetailCrud):
def get_success_url(self): def get_success_url(self):
return reverse('sapl.sessao:retiradapauta_list', return reverse('sapl.sessao:retiradapauta_list',
kwargs={'pk': self.kwargs['pk']}) kwargs={'pk': self.kwargs['pk']})
class UpdateView(MasterDetailCrud.UpdateView):
form_class = RetiradaPautaForm
layout_key = None
def get_initial(self):
sessao_plenaria = RetiradaPauta.objects.get(id=self.kwargs['pk']).sessao_plenaria
return {'sessao_plenaria': sessao_plenaria}
class DeleteView(MasterDetailCrud.DeleteView):
pass

8
sapl/templates/sessao/layouts.yaml

@ -91,7 +91,7 @@ TipoJustificativa:
JustificativaAusencia: JustificativaAusencia:
{% trans 'Justificativa de Ausência' %}: {% trans 'Justificativa de Ausência' %}:
- parlamentar - parlamentar
- data hora - data hora
- upload_anexo - upload_anexo
- tipo_ausencia - tipo_ausencia
@ -103,3 +103,9 @@ JustificativaAusencia:
TipoRetiradaPauta: TipoRetiradaPauta:
{% trans 'Tipo Retirada Pauta'%}: {% trans 'Tipo Retirada Pauta'%}:
- descricao - descricao
RetiradaPauta:
{% trans 'Retirada de Pauta' %}:
- tipo_de_retirada materia
- data parlamentar
- observacao

Loading…
Cancel
Save