|
|
@ -1,34 +1,35 @@ |
|
|
import django_filters |
|
|
|
|
|
import logging |
|
|
import logging |
|
|
|
|
|
|
|
|
|
|
|
import django_filters |
|
|
from crispy_forms.layout import Fieldset, Layout |
|
|
from crispy_forms.layout import Fieldset, Layout |
|
|
|
|
|
|
|
|
from django import forms |
|
|
from django import forms |
|
|
from django.contrib.contenttypes.models import ContentType |
|
|
from django.contrib.contenttypes.models import ContentType |
|
|
from django.core.exceptions import ValidationError |
|
|
from django.core.exceptions import ValidationError |
|
|
from django.db import transaction |
|
|
from django.db import transaction |
|
|
from django.db.models import Q |
|
|
from django.db.models import Q |
|
|
from django.forms import ModelForm |
|
|
from django.forms import ModelForm |
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
|
|
from django.utils import timezone |
|
|
from django.utils import timezone |
|
|
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
|
|
|
|
|
from sapl.base.models import Autor, TipoAutor |
|
|
from sapl.base.models import Autor, TipoAutor |
|
|
from sapl.comissoes.models import (Comissao, Composicao, |
|
|
from sapl.comissoes.models import ( |
|
|
DocumentoAcessorio, Participacao, |
|
|
Comissao, |
|
|
Periodo, Reuniao) |
|
|
Composicao, |
|
|
from sapl.crispy_layout_mixin import (form_actions, SaplFormHelper, |
|
|
DocumentoAcessorio, |
|
|
to_row) |
|
|
Participacao, |
|
|
|
|
|
Periodo, |
|
|
|
|
|
Reuniao, |
|
|
|
|
|
) |
|
|
|
|
|
from sapl.crispy_layout_mixin import SaplFormHelper, form_actions, to_row |
|
|
from sapl.materia.models import MateriaEmTramitacao, PautaReuniao |
|
|
from sapl.materia.models import MateriaEmTramitacao, PautaReuniao |
|
|
from sapl.parlamentares.models import (Legislatura, Mandato, |
|
|
from sapl.parlamentares.models import Legislatura, Mandato, Parlamentar |
|
|
Parlamentar) |
|
|
from sapl.utils import FileFieldCheckMixin, FilterOverridesMetaMixin, validar_arquivo |
|
|
from sapl.utils import (FileFieldCheckMixin, |
|
|
|
|
|
FilterOverridesMetaMixin, validar_arquivo) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ComposicaoForm(forms.ModelForm): |
|
|
class ComposicaoForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
comissao = forms.CharField( |
|
|
comissao = forms.CharField( |
|
|
required=False, label='Comissao', widget=forms.HiddenInput()) |
|
|
required=False, label="Comissao", widget=forms.HiddenInput() |
|
|
|
|
|
) |
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
@ -37,48 +38,60 @@ class ComposicaoForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
def __init__(self, user=None, **kwargs): |
|
|
def __init__(self, user=None, **kwargs): |
|
|
super(ComposicaoForm, self).__init__(**kwargs) |
|
|
super(ComposicaoForm, self).__init__(**kwargs) |
|
|
self.fields['comissao'].widget.attrs['disabled'] = 'disabled' |
|
|
self.fields["comissao"].widget.attrs["disabled"] = "disabled" |
|
|
|
|
|
|
|
|
def clean(self): |
|
|
def clean(self): |
|
|
data = super().clean() |
|
|
data = super().clean() |
|
|
data['comissao'] = self.initial['comissao'] |
|
|
data["comissao"] = self.initial["comissao"] |
|
|
comissao_pk = self.initial['comissao'].id |
|
|
comissao_pk = self.initial["comissao"].id |
|
|
|
|
|
|
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return data |
|
|
return data |
|
|
|
|
|
|
|
|
periodo = data['periodo'] |
|
|
periodo = data["periodo"] |
|
|
|
|
|
|
|
|
if periodo.data_fim: |
|
|
if periodo.data_fim: |
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
Q(periodo__data_inicio__lte=periodo.data_fim, periodo__data_fim__gte=periodo.data_fim) | |
|
|
Q( |
|
|
Q(periodo__data_inicio__gte=periodo.data_inicio, periodo__data_fim__lte=periodo.data_inicio), |
|
|
periodo__data_inicio__lte=periodo.data_fim, |
|
|
comissao_id=comissao_pk) |
|
|
periodo__data_fim__gte=periodo.data_fim, |
|
|
|
|
|
) |
|
|
|
|
|
| Q( |
|
|
|
|
|
periodo__data_inicio__gte=periodo.data_inicio, |
|
|
|
|
|
periodo__data_fim__lte=periodo.data_inicio, |
|
|
|
|
|
), |
|
|
|
|
|
comissao_id=comissao_pk, |
|
|
|
|
|
) |
|
|
else: |
|
|
else: |
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
Q(periodo__data_inicio__gte=periodo.data_inicio, periodo__data_fim__lte=periodo.data_inicio), |
|
|
Q( |
|
|
comissao_id=comissao_pk) |
|
|
periodo__data_inicio__gte=periodo.data_inicio, |
|
|
|
|
|
periodo__data_fim__lte=periodo.data_inicio, |
|
|
|
|
|
), |
|
|
|
|
|
comissao_id=comissao_pk, |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
if intersecao_periodo: |
|
|
if intersecao_periodo: |
|
|
if periodo.data_fim: |
|
|
if periodo.data_fim: |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'O período informado ({} a {}) choca com períodos já cadastrados para esta comissão'.format( |
|
|
"O período informado ({} a {}) choca com períodos já cadastrados para esta comissão".format( |
|
|
periodo.data_inicio, periodo.data_fim |
|
|
periodo.data_inicio, periodo.data_fim |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
else: |
|
|
else: |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'O período informado ({} - ) choca com períodos já cadastrados para esta comissão'.format( |
|
|
"O período informado ({} - ) choca com períodos já cadastrados para esta comissão".format( |
|
|
periodo.data_inicio |
|
|
periodo.data_inicio |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError('O período informado choca com períodos já cadastrados para esta comissão') |
|
|
raise ValidationError( |
|
|
|
|
|
"O período informado choca com períodos já cadastrados para esta comissão" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
return data |
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PeriodoForm(forms.ModelForm): |
|
|
class PeriodoForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
@ -91,54 +104,57 @@ class PeriodoForm(forms.ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return cleaned_data |
|
|
return cleaned_data |
|
|
|
|
|
|
|
|
data_inicio = cleaned_data['data_inicio'] |
|
|
data_inicio = cleaned_data["data_inicio"] |
|
|
data_fim = cleaned_data['data_fim'] |
|
|
data_fim = cleaned_data["data_fim"] |
|
|
|
|
|
|
|
|
if data_fim and data_fim < data_inicio: |
|
|
if data_fim and data_fim < data_inicio: |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'A Data Final ({}) é menor que ' |
|
|
"A Data Final ({}) é menor que " |
|
|
'a Data Inicial({}).'.format(data_fim, data_inicio) |
|
|
"a Data Inicial({}).".format(data_fim, data_inicio) |
|
|
|
|
|
) |
|
|
|
|
|
raise ValidationError( |
|
|
|
|
|
"A Data Final não pode ser menor que " "a Data Inicial" |
|
|
) |
|
|
) |
|
|
raise ValidationError('A Data Final não pode ser menor que ' |
|
|
|
|
|
'a Data Inicial') |
|
|
|
|
|
|
|
|
|
|
|
# Evita NoneType exception se não preenchida a data_fim |
|
|
# Evita NoneType exception se não preenchida a data_fim |
|
|
if not data_fim: |
|
|
if not data_fim: |
|
|
data_fim = data_inicio |
|
|
data_fim = data_inicio |
|
|
|
|
|
|
|
|
legislatura = Legislatura.objects.filter(data_inicio__lte=data_inicio, |
|
|
legislatura = Legislatura.objects.filter( |
|
|
data_fim__gte=data_fim, |
|
|
data_inicio__lte=data_inicio, |
|
|
) |
|
|
data_fim__gte=data_fim, |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
if not legislatura: |
|
|
if not legislatura: |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'O período informado ({} a {})' |
|
|
"O período informado ({} a {})" |
|
|
'não está contido em uma única ' |
|
|
"não está contido em uma única " |
|
|
'legislatura existente'.format(data_inicio, data_fim) |
|
|
"legislatura existente".format(data_inicio, data_fim) |
|
|
|
|
|
) |
|
|
|
|
|
raise ValidationError( |
|
|
|
|
|
"O período informado " |
|
|
|
|
|
"deve estar contido em uma única " |
|
|
|
|
|
"legislatura existente" |
|
|
) |
|
|
) |
|
|
raise ValidationError('O período informado ' |
|
|
|
|
|
'deve estar contido em uma única ' |
|
|
|
|
|
'legislatura existente') |
|
|
|
|
|
|
|
|
|
|
|
return cleaned_data |
|
|
return cleaned_data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ParticipacaoCreateForm(forms.ModelForm): |
|
|
class ParticipacaoCreateForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = Participacao |
|
|
model = Participacao |
|
|
fields = '__all__' |
|
|
fields = "__all__" |
|
|
exclude = ['composicao'] |
|
|
exclude = ["composicao"] |
|
|
|
|
|
|
|
|
def __init__(self, user=None, **kwargs): |
|
|
def __init__(self, user=None, **kwargs): |
|
|
super(ParticipacaoCreateForm, self).__init__(**kwargs) |
|
|
super(ParticipacaoCreateForm, self).__init__(**kwargs) |
|
|
|
|
|
|
|
|
if self.instance: |
|
|
if self.instance: |
|
|
comissao = kwargs['initial'] |
|
|
comissao = kwargs["initial"] |
|
|
comissao_pk = int(comissao['parent_pk']) |
|
|
comissao_pk = int(comissao["parent_pk"]) |
|
|
composicao = Composicao.objects.get(id=comissao_pk) |
|
|
composicao = Composicao.objects.get(id=comissao_pk) |
|
|
participantes = composicao.participacao_set.all() |
|
|
participantes = composicao.participacao_set.all() |
|
|
id_part = [p.parlamentar.id for p in participantes] |
|
|
id_part = [p.parlamentar.id for p in participantes] |
|
|
@ -147,22 +163,25 @@ class ParticipacaoCreateForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
qs = self.create_participacao() |
|
|
qs = self.create_participacao() |
|
|
|
|
|
|
|
|
parlamentares = Mandato.objects.filter(qs, |
|
|
parlamentares = ( |
|
|
parlamentar__ativo=True |
|
|
Mandato.objects.filter(qs, parlamentar__ativo=True) |
|
|
).prefetch_related('parlamentar').\ |
|
|
.prefetch_related("parlamentar") |
|
|
values_list('parlamentar', |
|
|
.values_list("parlamentar", flat=True) |
|
|
flat=True |
|
|
.distinct() |
|
|
).distinct() |
|
|
) |
|
|
qs = Parlamentar.objects.filter(id__in=parlamentares).distinct().\ |
|
|
qs = ( |
|
|
exclude(id__in=id_part) |
|
|
Parlamentar.objects.filter(id__in=parlamentares) |
|
|
|
|
|
.distinct() |
|
|
|
|
|
.exclude(id__in=id_part) |
|
|
|
|
|
) |
|
|
eligible = self.verifica() |
|
|
eligible = self.verifica() |
|
|
result = list(set(qs) & set(eligible)) |
|
|
result = list(set(qs) & set(eligible)) |
|
|
if result == eligible: |
|
|
if result == eligible: |
|
|
self.fields['parlamentar'].queryset = qs |
|
|
self.fields["parlamentar"].queryset = qs |
|
|
else: |
|
|
else: |
|
|
ids = [e.id for e in eligible] |
|
|
ids = [e.id for e in eligible] |
|
|
qs = Parlamentar.objects.filter(id__in=ids) |
|
|
qs = Parlamentar.objects.filter(id__in=ids) |
|
|
self.fields['parlamentar'].queryset = qs |
|
|
self.fields["parlamentar"].queryset = qs |
|
|
|
|
|
|
|
|
def clean(self): |
|
|
def clean(self): |
|
|
cleaned_data = super(ParticipacaoCreateForm, self).clean() |
|
|
cleaned_data = super(ParticipacaoCreateForm, self).clean() |
|
|
@ -170,51 +189,62 @@ class ParticipacaoCreateForm(forms.ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return cleaned_data |
|
|
return cleaned_data |
|
|
|
|
|
|
|
|
data_designacao = cleaned_data['data_designacao'] |
|
|
data_designacao = cleaned_data["data_designacao"] |
|
|
data_desligamento = cleaned_data['data_desligamento'] |
|
|
data_desligamento = cleaned_data["data_desligamento"] |
|
|
|
|
|
|
|
|
if data_desligamento and \ |
|
|
if data_desligamento and data_designacao > data_desligamento: |
|
|
data_designacao > data_desligamento: |
|
|
|
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data de designação ({}) superior ' |
|
|
"Data de designação ({}) superior " |
|
|
'à data de desligamento ({})'.format(data_designacao, data_desligamento) |
|
|
"à data de desligamento ({})".format(data_designacao, data_desligamento) |
|
|
|
|
|
) |
|
|
|
|
|
raise ValidationError( |
|
|
|
|
|
_("Data de designação não pode ser superior " "à data de desligamento") |
|
|
) |
|
|
) |
|
|
raise ValidationError(_('Data de designação não pode ser superior ' |
|
|
|
|
|
'à data de desligamento')) |
|
|
|
|
|
|
|
|
|
|
|
composicao = Composicao.objects.get(id=self.initial['parent_pk']) |
|
|
composicao = Composicao.objects.get(id=self.initial["parent_pk"]) |
|
|
cargos_unicos = [ |
|
|
cargos_unicos = [ |
|
|
c.cargo.nome for c in composicao.participacao_set.filter(cargo__unico=True)] |
|
|
c.cargo.nome for c in composicao.participacao_set.filter(cargo__unico=True) |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
if cleaned_data['cargo'].nome in cargos_unicos: |
|
|
if cleaned_data["cargo"].nome in cargos_unicos: |
|
|
msg = _('Este cargo é único para esta Comissão.') |
|
|
msg = _("Este cargo é único para esta Comissão.") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Este cargo ({}) é único para esta Comissão.'.format( |
|
|
"Este cargo ({}) é único para esta Comissão.".format( |
|
|
cleaned_data['cargo'].nome |
|
|
cleaned_data["cargo"].nome |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
return cleaned_data |
|
|
return cleaned_data |
|
|
|
|
|
|
|
|
def create_participacao(self): |
|
|
def create_participacao(self): |
|
|
composicao = Composicao.objects.get(id=self.initial['parent_pk']) |
|
|
composicao = Composicao.objects.get(id=self.initial["parent_pk"]) |
|
|
data_inicio_comissao = composicao.periodo.data_inicio |
|
|
data_inicio_comissao = composicao.periodo.data_inicio |
|
|
data_fim_comissao = composicao.periodo.data_fim if composicao.periodo.data_fim else timezone.now() |
|
|
data_fim_comissao = ( |
|
|
q1 = Q(data_fim_mandato__isnull=False, |
|
|
composicao.periodo.data_fim |
|
|
data_fim_mandato__gte=data_inicio_comissao) |
|
|
if composicao.periodo.data_fim |
|
|
q2 = Q(data_inicio_mandato__gte=data_inicio_comissao) \ |
|
|
else timezone.now() |
|
|
& Q(data_inicio_mandato__lte=data_fim_comissao) |
|
|
) |
|
|
q3 = Q(data_fim_mandato__isnull=True, |
|
|
q1 = Q( |
|
|
data_inicio_mandato__lte=data_inicio_comissao) |
|
|
data_fim_mandato__isnull=False, data_fim_mandato__gte=data_inicio_comissao |
|
|
|
|
|
) |
|
|
|
|
|
q2 = Q(data_inicio_mandato__gte=data_inicio_comissao) & Q( |
|
|
|
|
|
data_inicio_mandato__lte=data_fim_comissao |
|
|
|
|
|
) |
|
|
|
|
|
q3 = Q( |
|
|
|
|
|
data_fim_mandato__isnull=True, data_inicio_mandato__lte=data_inicio_comissao |
|
|
|
|
|
) |
|
|
qs = q1 | q2 | q3 |
|
|
qs = q1 | q2 | q3 |
|
|
return qs |
|
|
return qs |
|
|
|
|
|
|
|
|
def verifica(self): |
|
|
def verifica(self): |
|
|
composicao = Composicao.objects.get(id=self.initial['parent_pk']) |
|
|
composicao = Composicao.objects.get(id=self.initial["parent_pk"]) |
|
|
participantes = composicao.participacao_set.all() |
|
|
participantes = composicao.participacao_set.all() |
|
|
participantes_id = [p.parlamentar.id for p in participantes] |
|
|
participantes_id = [p.parlamentar.id for p in participantes] |
|
|
parlamentares = Parlamentar.objects.all().exclude( |
|
|
parlamentares = ( |
|
|
id__in=participantes_id).order_by('nome_completo') |
|
|
Parlamentar.objects.all() |
|
|
|
|
|
.exclude(id__in=participantes_id) |
|
|
|
|
|
.order_by("nome_completo") |
|
|
|
|
|
) |
|
|
parlamentares = [p for p in parlamentares if p.ativo] |
|
|
parlamentares = [p for p in parlamentares if p.ativo] |
|
|
|
|
|
|
|
|
lista = [] |
|
|
lista = [] |
|
|
@ -226,9 +256,13 @@ class ParticipacaoCreateForm(forms.ModelForm): |
|
|
data_fim = m.data_fim_mandato |
|
|
data_fim = m.data_fim_mandato |
|
|
comp_data_inicio = composicao.periodo.data_inicio |
|
|
comp_data_inicio = composicao.periodo.data_inicio |
|
|
comp_data_fim = composicao.periodo.data_fim |
|
|
comp_data_fim = composicao.periodo.data_fim |
|
|
if (data_fim and data_fim >= comp_data_inicio)\ |
|
|
if ( |
|
|
or (data_inicio >= comp_data_inicio and data_inicio <= comp_data_fim)\ |
|
|
(data_fim and data_fim >= comp_data_inicio) |
|
|
or (data_fim is None and data_inicio <= comp_data_inicio): |
|
|
or ( |
|
|
|
|
|
data_inicio >= comp_data_inicio and data_inicio <= comp_data_fim |
|
|
|
|
|
) |
|
|
|
|
|
or (data_fim is None and data_inicio <= comp_data_inicio) |
|
|
|
|
|
): |
|
|
lista.append(p) |
|
|
lista.append(p) |
|
|
|
|
|
|
|
|
lista = list(set(lista)) |
|
|
lista = list(set(lista)) |
|
|
@ -237,25 +271,32 @@ class ParticipacaoCreateForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ParticipacaoEditForm(forms.ModelForm): |
|
|
class ParticipacaoEditForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
nome_parlamentar = forms.CharField(required=False, label='Parlamentar') |
|
|
nome_parlamentar = forms.CharField(required=False, label="Parlamentar") |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = Participacao |
|
|
model = Participacao |
|
|
fields = ['nome_parlamentar', 'parlamentar', 'cargo', 'titular', |
|
|
fields = [ |
|
|
'data_designacao', 'data_desligamento', |
|
|
"nome_parlamentar", |
|
|
'motivo_desligamento', 'observacao'] |
|
|
"parlamentar", |
|
|
|
|
|
"cargo", |
|
|
|
|
|
"titular", |
|
|
|
|
|
"data_designacao", |
|
|
|
|
|
"data_desligamento", |
|
|
|
|
|
"motivo_desligamento", |
|
|
|
|
|
"observacao", |
|
|
|
|
|
] |
|
|
widgets = { |
|
|
widgets = { |
|
|
'parlamentar': forms.HiddenInput(), |
|
|
"parlamentar": forms.HiddenInput(), |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
def __init__(self, user=None, **kwargs): |
|
|
def __init__(self, user=None, **kwargs): |
|
|
super(ParticipacaoEditForm, self).__init__(**kwargs) |
|
|
super(ParticipacaoEditForm, self).__init__(**kwargs) |
|
|
self.initial['nome_parlamentar'] = Parlamentar.objects.get( |
|
|
self.initial["nome_parlamentar"] = Parlamentar.objects.get( |
|
|
id=self.initial['parlamentar']).nome_parlamentar |
|
|
id=self.initial["parlamentar"] |
|
|
self.fields['nome_parlamentar'].widget.attrs['disabled'] = 'disabled' |
|
|
).nome_parlamentar |
|
|
|
|
|
self.fields["nome_parlamentar"].widget.attrs["disabled"] = "disabled" |
|
|
|
|
|
|
|
|
def clean(self): |
|
|
def clean(self): |
|
|
cleaned_data = super(ParticipacaoEditForm, self).clean() |
|
|
cleaned_data = super(ParticipacaoEditForm, self).clean() |
|
|
@ -263,29 +304,33 @@ class ParticipacaoEditForm(forms.ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return cleaned_data |
|
|
return cleaned_data |
|
|
|
|
|
|
|
|
data_designacao = cleaned_data['data_designacao'] |
|
|
data_designacao = cleaned_data["data_designacao"] |
|
|
data_desligamento = cleaned_data['data_desligamento'] |
|
|
data_desligamento = cleaned_data["data_desligamento"] |
|
|
|
|
|
|
|
|
if data_desligamento and \ |
|
|
if data_desligamento and data_designacao > data_desligamento: |
|
|
data_designacao > data_desligamento: |
|
|
|
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data de designação ({}) superior ' |
|
|
"Data de designação ({}) superior " |
|
|
'à data de desligamento ({})'.format(data_designacao, data_desligamento) |
|
|
"à data de desligamento ({})".format(data_designacao, data_desligamento) |
|
|
|
|
|
) |
|
|
|
|
|
raise ValidationError( |
|
|
|
|
|
_("Data de designação não pode ser superior " "à data de desligamento") |
|
|
) |
|
|
) |
|
|
raise ValidationError(_('Data de designação não pode ser superior ' |
|
|
|
|
|
'à data de desligamento')) |
|
|
|
|
|
|
|
|
|
|
|
composicao_id = self.instance.composicao_id |
|
|
composicao_id = self.instance.composicao_id |
|
|
|
|
|
|
|
|
composicao = Composicao.objects.get(id=composicao_id) |
|
|
composicao = Composicao.objects.get(id=composicao_id) |
|
|
cargos_unicos = [c.cargo.nome for c in |
|
|
cargos_unicos = [ |
|
|
composicao.participacao_set.filter(cargo__unico=True).exclude(id=self.instance.pk)] |
|
|
c.cargo.nome |
|
|
|
|
|
for c in composicao.participacao_set.filter(cargo__unico=True).exclude( |
|
|
|
|
|
id=self.instance.pk |
|
|
|
|
|
) |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
if cleaned_data['cargo'].nome in cargos_unicos: |
|
|
if cleaned_data["cargo"].nome in cargos_unicos: |
|
|
msg = _('Este cargo é único para esta Comissão.') |
|
|
msg = _("Este cargo é único para esta Comissão.") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Este cargo ({}) é único para esta Comissão (id={}).'.format( |
|
|
"Este cargo ({}) é único para esta Comissão (id={}).".format( |
|
|
cleaned_data['cargo'].nome, composicao_id |
|
|
cleaned_data["cargo"].nome, composicao_id |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
@ -294,23 +339,28 @@ class ParticipacaoEditForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ComissaoForm(forms.ModelForm): |
|
|
class ComissaoForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = Comissao |
|
|
model = Comissao |
|
|
fields = '__all__' |
|
|
fields = "__all__" |
|
|
|
|
|
|
|
|
def __init__(self, user=None, **kwargs): |
|
|
def __init__(self, user=None, **kwargs): |
|
|
super(ComissaoForm, self).__init__(**kwargs) |
|
|
super(ComissaoForm, self).__init__(**kwargs) |
|
|
inst = self.instance |
|
|
inst = self.instance |
|
|
if inst.pk: |
|
|
if inst.pk: |
|
|
if inst.tipo.natureza == 'P': |
|
|
if inst.tipo.natureza == "P": |
|
|
self.fields['apelido_temp'].widget.attrs['disabled'] = 'disabled' |
|
|
self.fields["apelido_temp"].widget.attrs["disabled"] = "disabled" |
|
|
self.fields['data_instalacao_temp'].widget.attrs['disabled'] = 'disabled' |
|
|
self.fields["data_instalacao_temp"].widget.attrs[ |
|
|
self.fields['data_final_prevista_temp'].widget.attrs['disabled'] = 'disabled' |
|
|
"disabled" |
|
|
self.fields['data_prorrogada_temp'].widget.attrs['disabled'] = 'disabled' |
|
|
] = "disabled" |
|
|
self.fields['data_fim_comissao'].widget.attrs['disabled'] = 'disabled' |
|
|
self.fields["data_final_prevista_temp"].widget.attrs[ |
|
|
|
|
|
"disabled" |
|
|
|
|
|
] = "disabled" |
|
|
|
|
|
self.fields["data_prorrogada_temp"].widget.attrs[ |
|
|
|
|
|
"disabled" |
|
|
|
|
|
] = "disabled" |
|
|
|
|
|
self.fields["data_fim_comissao"].widget.attrs["disabled"] = "disabled" |
|
|
|
|
|
|
|
|
def clean(self): |
|
|
def clean(self): |
|
|
super(ComissaoForm, self).clean() |
|
|
super(ComissaoForm, self).clean() |
|
|
@ -318,71 +368,92 @@ class ComissaoForm(forms.ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return self.cleaned_data |
|
|
return self.cleaned_data |
|
|
|
|
|
|
|
|
if len(self.cleaned_data['nome']) > 100: |
|
|
if len(self.cleaned_data["nome"]) > 100: |
|
|
msg = _('Nome da Comissão informado ({}) tem mais de 50 caracteres.'.format( |
|
|
msg = _( |
|
|
self.cleaned_data['nome'])) |
|
|
"Nome da Comissão informado ({}) tem mais de 50 caracteres.".format( |
|
|
self.logger.warning( |
|
|
self.cleaned_data["nome"] |
|
|
'Nome da Comissão deve ter no máximo 50 caracteres.' |
|
|
) |
|
|
) |
|
|
) |
|
|
|
|
|
self.logger.warning("Nome da Comissão deve ter no máximo 50 caracteres.") |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
if (self.cleaned_data['data_extincao'] and |
|
|
if ( |
|
|
self.cleaned_data['data_extincao'] < |
|
|
self.cleaned_data["data_extincao"] |
|
|
self.cleaned_data['data_criacao']): |
|
|
and self.cleaned_data["data_extincao"] < self.cleaned_data["data_criacao"] |
|
|
msg = _('Data de extinção não pode ser menor que a de criação') |
|
|
): |
|
|
|
|
|
msg = _("Data de extinção não pode ser menor que a de criação") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data de extinção ({}) não pode ser menor que a de criação ({}).'.format( |
|
|
"Data de extinção ({}) não pode ser menor que a de criação ({}).".format( |
|
|
self.cleaned_data['data_extincao'], self.cleaned_data['data_criacao'] |
|
|
self.cleaned_data["data_extincao"], |
|
|
|
|
|
self.cleaned_data["data_criacao"], |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
if (self.cleaned_data['data_final_prevista_temp'] and |
|
|
if ( |
|
|
self.cleaned_data['data_final_prevista_temp'] < |
|
|
self.cleaned_data["data_final_prevista_temp"] |
|
|
self.cleaned_data['data_criacao']): |
|
|
and self.cleaned_data["data_final_prevista_temp"] |
|
|
msg = _('Data Prevista para Término não pode ser menor que a de criação') |
|
|
< self.cleaned_data["data_criacao"] |
|
|
|
|
|
): |
|
|
|
|
|
msg = _("Data Prevista para Término não pode ser menor que a de criação") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data Prevista para Término ({}) não pode ser menor que a de criação ({}).'.format( |
|
|
"Data Prevista para Término ({}) não pode ser menor que a de criação ({}).".format( |
|
|
self.cleaned_data['data_final_prevista_temp'], self.cleaned_data['data_criacao'] |
|
|
self.cleaned_data["data_final_prevista_temp"], |
|
|
|
|
|
self.cleaned_data["data_criacao"], |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
if (self.cleaned_data['data_prorrogada_temp'] and |
|
|
if ( |
|
|
self.cleaned_data['data_prorrogada_temp'] < |
|
|
self.cleaned_data["data_prorrogada_temp"] |
|
|
self.cleaned_data['data_criacao']): |
|
|
and self.cleaned_data["data_prorrogada_temp"] |
|
|
msg = _('Data Novo Prazo não pode ser menor que a de criação') |
|
|
< self.cleaned_data["data_criacao"] |
|
|
|
|
|
): |
|
|
|
|
|
msg = _("Data Novo Prazo não pode ser menor que a de criação") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data Novo Prazo ({}) não pode ser menor que a de criação ({}).'.format( |
|
|
"Data Novo Prazo ({}) não pode ser menor que a de criação ({}).".format( |
|
|
self.cleaned_data['data_prorrogada_temp'], self.cleaned_data['data_criacao'] |
|
|
self.cleaned_data["data_prorrogada_temp"], |
|
|
|
|
|
self.cleaned_data["data_criacao"], |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
if (self.cleaned_data['data_instalacao_temp'] and |
|
|
if ( |
|
|
self.cleaned_data['data_instalacao_temp'] < |
|
|
self.cleaned_data["data_instalacao_temp"] |
|
|
self.cleaned_data['data_criacao']): |
|
|
and self.cleaned_data["data_instalacao_temp"] |
|
|
msg = _('Data de Instalação não pode ser menor que a de criação') |
|
|
< self.cleaned_data["data_criacao"] |
|
|
|
|
|
): |
|
|
|
|
|
msg = _("Data de Instalação não pode ser menor que a de criação") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data de Instalação ({}) não pode ser menor que a de criação ({}).'.format( |
|
|
"Data de Instalação ({}) não pode ser menor que a de criação ({}).".format( |
|
|
self.cleaned_data['data_instalacao_temp'], self.cleaned_data['data_criacao'] |
|
|
self.cleaned_data["data_instalacao_temp"], |
|
|
|
|
|
self.cleaned_data["data_criacao"], |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
if (self.cleaned_data['data_final_prevista_temp'] and self.cleaned_data['data_instalacao_temp'] and |
|
|
if ( |
|
|
self.cleaned_data['data_final_prevista_temp'] < |
|
|
self.cleaned_data["data_final_prevista_temp"] |
|
|
self.cleaned_data['data_instalacao_temp']): |
|
|
and self.cleaned_data["data_instalacao_temp"] |
|
|
|
|
|
and self.cleaned_data["data_final_prevista_temp"] |
|
|
|
|
|
< self.cleaned_data["data_instalacao_temp"] |
|
|
|
|
|
): |
|
|
msg = _( |
|
|
msg = _( |
|
|
'Data Prevista para Término não pode ser menor que a de Instalação.') |
|
|
"Data Prevista para Término não pode ser menor que a de Instalação." |
|
|
|
|
|
) |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data Prevista para Término ({}) não pode ser menor que a de Instalação ({}).'.format( |
|
|
"Data Prevista para Término ({}) não pode ser menor que a de Instalação ({}).".format( |
|
|
self.cleaned_data['data_final_prevista_temp'], self.cleaned_data['data_instalacao_temp'] |
|
|
self.cleaned_data["data_final_prevista_temp"], |
|
|
|
|
|
self.cleaned_data["data_instalacao_temp"], |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
if (self.cleaned_data['data_prorrogada_temp'] and self.cleaned_data['data_instalacao_temp'] and |
|
|
if ( |
|
|
self.cleaned_data['data_prorrogada_temp'] < |
|
|
self.cleaned_data["data_prorrogada_temp"] |
|
|
self.cleaned_data['data_instalacao_temp']): |
|
|
and self.cleaned_data["data_instalacao_temp"] |
|
|
msg = _('Data Novo Prazo não pode ser menor que a de Instalação.') |
|
|
and self.cleaned_data["data_prorrogada_temp"] |
|
|
|
|
|
< self.cleaned_data["data_instalacao_temp"] |
|
|
|
|
|
): |
|
|
|
|
|
msg = _("Data Novo Prazo não pode ser menor que a de Instalação.") |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
'Data Novo Prazo ({}) não pode ser menor que a de Instalação ({}).'.format( |
|
|
"Data Novo Prazo ({}) não pode ser menor que a de Instalação ({}).".format( |
|
|
self.cleaned_data['data_prorrogada_temp'], self.cleaned_data['data_instalacao_temp'] |
|
|
self.cleaned_data["data_prorrogada_temp"], |
|
|
|
|
|
self.cleaned_data["data_instalacao_temp"], |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
@ -396,12 +467,9 @@ class ComissaoForm(forms.ModelForm): |
|
|
content_type = ContentType.objects.get_for_model(Comissao) |
|
|
content_type = ContentType.objects.get_for_model(Comissao) |
|
|
object_id = comissao.pk |
|
|
object_id = comissao.pk |
|
|
tipo = TipoAutor.objects.get(content_type=content_type) |
|
|
tipo = TipoAutor.objects.get(content_type=content_type) |
|
|
nome = comissao.sigla + ' - ' + comissao.nome |
|
|
nome = comissao.sigla + " - " + comissao.nome |
|
|
Autor.objects.create( |
|
|
Autor.objects.create( |
|
|
content_type=content_type, |
|
|
content_type=content_type, object_id=object_id, tipo=tipo, nome=nome |
|
|
object_id=object_id, |
|
|
|
|
|
tipo=tipo, |
|
|
|
|
|
nome=nome |
|
|
|
|
|
) |
|
|
) |
|
|
return comissao |
|
|
return comissao |
|
|
else: |
|
|
else: |
|
|
@ -410,14 +478,14 @@ class ComissaoForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ReuniaoForm(ModelForm): |
|
|
class ReuniaoForm(ModelForm): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
comissao = forms.ModelChoiceField(queryset=Comissao.objects.all(), |
|
|
comissao = forms.ModelChoiceField( |
|
|
widget=forms.HiddenInput()) |
|
|
queryset=Comissao.objects.all(), widget=forms.HiddenInput() |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = Reuniao |
|
|
model = Reuniao |
|
|
exclude = ['cod_andamento_reuniao'] |
|
|
exclude = ["cod_andamento_reuniao"] |
|
|
|
|
|
|
|
|
def clean(self): |
|
|
def clean(self): |
|
|
super(ReuniaoForm, self).clean() |
|
|
super(ReuniaoForm, self).clean() |
|
|
@ -425,28 +493,28 @@ class ReuniaoForm(ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return self.cleaned_data |
|
|
return self.cleaned_data |
|
|
|
|
|
|
|
|
if self.cleaned_data['hora_fim']: |
|
|
if self.cleaned_data["hora_fim"]: |
|
|
if (self.cleaned_data['hora_fim'] < |
|
|
if self.cleaned_data["hora_fim"] < self.cleaned_data["hora_inicio"]: |
|
|
self.cleaned_data['hora_inicio']): |
|
|
|
|
|
msg = _( |
|
|
msg = _( |
|
|
'A hora de término da reunião não pode ser menor que a de início') |
|
|
"A hora de término da reunião não pode ser menor que a de início" |
|
|
|
|
|
) |
|
|
self.logger.warning( |
|
|
self.logger.warning( |
|
|
"A hora de término da reunião ({}) não pode ser menor que a de início ({}).".format( |
|
|
"A hora de término da reunião ({}) não pode ser menor que a de início ({}).".format( |
|
|
self.cleaned_data['hora_fim'], self.cleaned_data['hora_inicio'] |
|
|
self.cleaned_data["hora_fim"], self.cleaned_data["hora_inicio"] |
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
raise ValidationError(msg) |
|
|
raise ValidationError(msg) |
|
|
|
|
|
|
|
|
upload_pauta = self.cleaned_data.get('upload_pauta', False) |
|
|
upload_pauta = self.cleaned_data.get("upload_pauta", False) |
|
|
upload_ata = self.cleaned_data.get('upload_ata', False) |
|
|
upload_ata = self.cleaned_data.get("upload_ata", False) |
|
|
upload_anexo = self.cleaned_data.get('upload_anexo', False) |
|
|
upload_anexo = self.cleaned_data.get("upload_anexo", False) |
|
|
|
|
|
|
|
|
if upload_pauta: |
|
|
if upload_pauta: |
|
|
validar_arquivo(upload_pauta, "Pauta da Reunião") |
|
|
validar_arquivo(upload_pauta, "Pauta da Reunião") |
|
|
|
|
|
|
|
|
if upload_ata: |
|
|
if upload_ata: |
|
|
validar_arquivo(upload_ata, "Ata da Reunião") |
|
|
validar_arquivo(upload_ata, "Ata da Reunião") |
|
|
|
|
|
|
|
|
if upload_anexo: |
|
|
if upload_anexo: |
|
|
validar_arquivo(upload_anexo, "Anexo da Reunião") |
|
|
validar_arquivo(upload_anexo, "Anexo da Reunião") |
|
|
|
|
|
|
|
|
@ -454,59 +522,62 @@ class ReuniaoForm(ModelForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PautaReuniaoFilterSet(django_filters.FilterSet): |
|
|
class PautaReuniaoFilterSet(django_filters.FilterSet): |
|
|
|
|
|
|
|
|
class Meta(FilterOverridesMetaMixin): |
|
|
class Meta(FilterOverridesMetaMixin): |
|
|
model = MateriaEmTramitacao |
|
|
model = MateriaEmTramitacao |
|
|
fields = ['materia__tipo', 'materia__ano', 'materia__numero', 'materia__data_apresentacao'] |
|
|
fields = [ |
|
|
|
|
|
"materia__tipo", |
|
|
|
|
|
"materia__ano", |
|
|
|
|
|
"materia__numero", |
|
|
|
|
|
"materia__data_apresentacao", |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
def __init__(self, *args, **kwargs): |
|
|
super(PautaReuniaoFilterSet, self).__init__(*args, **kwargs) |
|
|
super(PautaReuniaoFilterSet, self).__init__(*args, **kwargs) |
|
|
|
|
|
|
|
|
self.filters['materia__tipo'].label = "Tipo da Matéria" |
|
|
self.filters["materia__tipo"].label = "Tipo da Matéria" |
|
|
self.filters['materia__ano'].label = "Ano da Matéria" |
|
|
self.filters["materia__ano"].label = "Ano da Matéria" |
|
|
self.filters['materia__numero'].label = "Número da Matéria" |
|
|
self.filters["materia__numero"].label = "Número da Matéria" |
|
|
self.filters['materia__data_apresentacao'].label = "Data (Inicial - Final)" |
|
|
self.filters["materia__data_apresentacao"].label = "Data (Inicial - Final)" |
|
|
|
|
|
|
|
|
row1 = to_row([('materia__tipo', 4), ('materia__ano', 4), ('materia__numero', 4)]) |
|
|
row1 = to_row( |
|
|
row2 = to_row([('materia__data_apresentacao', 12)]) |
|
|
[("materia__tipo", 4), ("materia__ano", 4), ("materia__numero", 4)] |
|
|
|
|
|
) |
|
|
|
|
|
row2 = to_row([("materia__data_apresentacao", 12)]) |
|
|
|
|
|
|
|
|
self.form.helper = SaplFormHelper() |
|
|
self.form.helper = SaplFormHelper() |
|
|
self.form.helper.form_method = "GET" |
|
|
self.form.helper.form_method = "GET" |
|
|
self.form.helper.layout = Layout( |
|
|
self.form.helper.layout = Layout( |
|
|
Fieldset( |
|
|
Fieldset( |
|
|
_("Pesquisa de Matérias"), row1, row2, |
|
|
_("Pesquisa de Matérias"), row1, row2, form_actions(label="Pesquisar") |
|
|
form_actions(label="Pesquisar") |
|
|
|
|
|
) |
|
|
) |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PautaReuniaoForm(forms.ModelForm): |
|
|
class PautaReuniaoForm(forms.ModelForm): |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = PautaReuniao |
|
|
model = PautaReuniao |
|
|
exclude = ['reuniao'] |
|
|
exclude = ["reuniao"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
|
|
|
|
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = DocumentoAcessorio |
|
|
model = DocumentoAcessorio |
|
|
exclude = ['reuniao'] |
|
|
exclude = ["reuniao"] |
|
|
|
|
|
|
|
|
def __init__(self, user=None, **kwargs): |
|
|
def __init__(self, user=None, **kwargs): |
|
|
super(DocumentoAcessorioCreateForm, self).__init__(**kwargs) |
|
|
super(DocumentoAcessorioCreateForm, self).__init__(**kwargs) |
|
|
|
|
|
|
|
|
if self.instance: |
|
|
if self.instance: |
|
|
reuniao = Reuniao.objects.get(id=self.initial['parent_pk']) |
|
|
reuniao = Reuniao.objects.get(id=self.initial["parent_pk"]) |
|
|
comissao = reuniao.comissao |
|
|
comissao = reuniao.comissao |
|
|
comissao_pk = comissao.id |
|
|
comissao_pk = comissao.id |
|
|
documentos = reuniao.documentoacessorio_set.all() |
|
|
documentos = reuniao.documentoacessorio_set.all() |
|
|
return self.create_documentoacessorio() |
|
|
return self.create_documentoacessorio() |
|
|
|
|
|
|
|
|
def create_documentoacessorio(self): |
|
|
def create_documentoacessorio(self): |
|
|
reuniao = Reuniao.objects.get(id=self.initial['parent_pk']) |
|
|
reuniao = Reuniao.objects.get(id=self.initial["parent_pk"]) |
|
|
|
|
|
|
|
|
def clean(self): |
|
|
def clean(self): |
|
|
super(DocumentoAcessorioCreateForm, self).clean() |
|
|
super(DocumentoAcessorioCreateForm, self).clean() |
|
|
@ -514,7 +585,7 @@ class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return self.cleaned_data |
|
|
return self.cleaned_data |
|
|
|
|
|
|
|
|
arquivo = self.cleaned_data.get('arquivo') |
|
|
arquivo = self.cleaned_data.get("arquivo") |
|
|
|
|
|
|
|
|
if arquivo: |
|
|
if arquivo: |
|
|
validar_arquivo(arquivo, "Texto Integral") |
|
|
validar_arquivo(arquivo, "Texto Integral") |
|
|
@ -529,13 +600,11 @@ class DocumentoAcessorioCreateForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DocumentoAcessorioEditForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
class DocumentoAcessorioEditForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
|
|
|
|
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = DocumentoAcessorio |
|
|
model = DocumentoAcessorio |
|
|
fields = ['nome', 'data', 'autor', 'ementa', |
|
|
fields = ["nome", "data", "autor", "ementa", "indexacao", "arquivo"] |
|
|
'indexacao', 'arquivo'] |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, user=None, **kwargs): |
|
|
def __init__(self, user=None, **kwargs): |
|
|
super(DocumentoAcessorioEditForm, self).__init__(**kwargs) |
|
|
super(DocumentoAcessorioEditForm, self).__init__(**kwargs) |
|
|
@ -546,7 +615,7 @@ class DocumentoAcessorioEditForm(FileFieldCheckMixin, forms.ModelForm): |
|
|
if not self.is_valid(): |
|
|
if not self.is_valid(): |
|
|
return self.cleaned_data |
|
|
return self.cleaned_data |
|
|
|
|
|
|
|
|
arquivo = self.cleaned_data.get('arquivo') |
|
|
arquivo = self.cleaned_data.get("arquivo") |
|
|
|
|
|
|
|
|
if arquivo: |
|
|
if arquivo: |
|
|
validar_arquivo(arquivo, "Texto Integral") |
|
|
validar_arquivo(arquivo, "Texto Integral") |
|
|
|