Browse Source

ajusta crud de justificativaausencia

pull/2260/head
Leandro Roberto 7 years ago
parent
commit
dff53bf9e8
  1. 54
      sapl/sessao/forms.py
  2. 24
      sapl/sessao/views.py
  3. 5
      sapl/templates/sessao/justificativaausencia_form.html
  4. 3
      sapl/templates/sessao/layouts.yaml

54
sapl/sessao/forms.py

@ -6,12 +6,15 @@ from django import forms
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import transaction
from django.db.models import Q
from django.forms import ModelForm
from django.forms.widgets import CheckboxSelectMultiple
from django.utils.translation import ugettext_lazy as _
import django_filters
from floppyforms import widgets
from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import form_actions, to_row
from sapl.crispy_layout_mixin import form_actions, to_row, SaplFormLayout
from sapl.materia.forms import MateriaLegislativaFilterSet
from sapl.materia.models import (MateriaLegislativa, StatusTramitacao,
TipoMateriaLegislativa)
@ -697,11 +700,15 @@ class JustificativaAusenciaForm(ModelForm):
'upload_anexo',
'tipo_ausencia',
'ausencia',
#'materias_do_expediente',
#'materias_da_ordem_do_dia',
'materias_do_expediente',
'materias_da_ordem_do_dia',
'observacao'
]
widgets = {
'materias_do_expediente': CheckboxSelectMultiple(),
'materias_da_ordem_do_dia': CheckboxSelectMultiple()}
def __init__(self, *args, **kwargs):
row1 = to_row(
@ -715,32 +722,40 @@ class JustificativaAusenciaForm(ModelForm):
[('tipo_ausencia', 12)])
row5 = to_row(
[('ausencia', 12)])
# row6 = to_row(
# [('materias_do_expediente', 12)])
# row7 = to_row(
# [('materias_da_ordem_do_dia', 12)])
row6 = to_row(
[('materias_do_expediente', 12)])
row7 = to_row(
[('materias_da_ordem_do_dia', 12)])
row8 = to_row(
[('observacao', 12)])
self.helper = FormHelper()
self.helper.layout = Layout(
self.helper.layout = SaplFormLayout(
Fieldset(_('Justificativa de Ausência'),
row1, row2, row3,
row4, row5,
# row6,
# row7,
row8,
form_actions(label='Salvar'))
row6,
row7,
row8)
)
q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria'])
ordens = OrdemDia.objects.filter(q)
expedientes = ExpedienteMateria.objects.filter(q)
super(JustificativaAusenciaForm, self).__init__(
*args, **kwargs)
presencas = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=kwargs['initial']['sessao_plenaria']
).order_by('parlamentar__nome_parlamentar')
q).order_by('parlamentar__nome_parlamentar')
self.fields['materias_do_expediente'].choices = [
(e.id, e.materia) for e in expedientes]
self.fields['materias_da_ordem_do_dia'].choices = [
(o.id, o.materia) for o in ordens]
self.fields['parlamentar'].choices = [
("0", "------------")] + [
(p.parlamentar.id, p.parlamentar) for p in presencas]
def clean(self):
@ -749,10 +764,19 @@ class JustificativaAusenciaForm(ModelForm):
if not self.is_valid():
return self.cleaned_data
sessao_plenaria = cleaned_data['sessao_plenaria']
sessao_plenaria = self.instance.sessao_plenaria
if not sessao_plenaria.finalizada or sessao_plenaria.finalizada is None:
raise ValidationError(
"A sessão deve está finalizada para registrar uma Ausência")
else:
return self.cleaned_data
def save(self, commit=False):
justificativa = super().save(True)
if justificativa.ausencia == 2:
justificativa.materias_do_expediente.clear()
justificativa.materias_da_ordem_do_dia.clear()
return justificativa

24
sapl/sessao/views.py

@ -2981,6 +2981,19 @@ class JustificativaAusenciaCrud(MasterDetailCrud):
list_field_names = ['parlamentar', 'sessao_plenaria', 'ausencia', 'tipo_ausencia',
'data']
@property
def layout_display(self):
layout = super().layout_display
if self.object.ausencia == 2:
# rm materias_da_ordem_do_dia do detail
layout[0]['rows'].pop(6)
# rm materias_do_expediente do detail
layout[0]['rows'].pop(5)
return layout
class ListView(MasterDetailCrud.ListView):
paginate_by = 10
@ -3029,5 +3042,16 @@ class JustificativaAusenciaCrud(MasterDetailCrud):
form_class = JustificativaAusenciaForm
layout_key = None
def get_initial(self):
sessao_plenaria = JustificativaAusencia.objects.get(
id=self.kwargs['pk']).sessao_plenaria
return {'sessao_plenaria': sessao_plenaria}
class DetailView(MasterDetailCrud.DetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data()
return context
class DeleteView(MasterDetailCrud.DeleteView):
pass

5
sapl/templates/sessao/justificativaausencia_form.html

@ -11,12 +11,13 @@
$("#id_ausencia").change(function() {
var val = $(this).val();
if(val === "1") {
$("#show_materia").show();
$("#div_id_materias_do_expediente, #div_id_materias_da_ordem_do_dia").show();
}
else if(val === "2") {
$("#show_materia").hide();
$("#div_id_materias_do_expediente, #div_id_materias_da_ordem_do_dia").hide();
}
});
$("#id_ausencia").change()
});
</script>

3
sapl/templates/sessao/layouts.yaml

@ -96,5 +96,6 @@ JustificativaAusencia:
- upload_anexo
- tipo_ausencia
- ausencia
- materias_do_expediente
- materias_da_ordem_do_dia
- observacao
- sessao_plenaria
Loading…
Cancel
Save