From 02876ff05b38b315391d59d8252b879fc3f1e539 Mon Sep 17 00:00:00 2001 From: Edward Date: Mon, 20 Mar 2017 16:24:53 -0300 Subject: [PATCH] Mudancas docadm (#962) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Mudanças em Protocolo e doc adm * Eduardo Edson feedback! :) --- sapl/protocoloadm/forms.py | 22 ++++++++++++++++------ sapl/protocoloadm/models.py | 2 +- sapl/protocoloadm/views.py | 16 +++++++++++++--- sapl/templates/protocoloadm/layouts.yaml | 2 +- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 53b336d12..1caf5c569 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -540,6 +540,15 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm): class DocumentoAdministrativoForm(ModelForm): + data = forms.DateField(initial=datetime.today) + + ano_protocolo = forms.ChoiceField(required=False, + label=Protocolo._meta. + get_field('ano').verbose_name, + choices=RANGE_ANOS, + widget=forms.Select( + attrs={'class': 'selector'})) + class Meta: model = DocumentoAdministrativo fields = ['tipo', @@ -547,6 +556,7 @@ class DocumentoAdministrativoForm(ModelForm): 'ano', 'data', 'numero_protocolo', + 'ano_protocolo', 'assunto', 'interessado', 'tramitacao', @@ -561,23 +571,22 @@ class DocumentoAdministrativoForm(ModelForm): def clean(self): numero_protocolo = self.data['numero_protocolo'] - ano = self.data['ano'] + ano_protocolo = self.data['ano_protocolo'] - if numero_protocolo and ano: + if numero_protocolo and ano_protocolo: try: self.fields['protocolo'].initial = Protocolo.objects.get( numero=numero_protocolo, - ano=ano).pk + ano=ano_protocolo).pk except ObjectDoesNotExist: msg = _('Protocolo %s/%s inexistente' % ( - numero_protocolo, ano)) + numero_protocolo, ano_protocolo)) raise ValidationError(str(msg)) return self.cleaned_data def save(self, commit=True): documento = super(DocumentoAdministrativoForm, self).save(False) - if self.fields['protocolo'].initial: documento.protocolo = Protocolo.objects.get( id=int(self.fields['protocolo'].initial)) @@ -587,11 +596,12 @@ class DocumentoAdministrativoForm(ModelForm): return documento def __init__(self, *args, **kwargs): + row1 = to_row( [('tipo', 4), ('numero', 4), ('ano', 4)]) row2 = to_row( - [('data', 6), ('numero_protocolo', 6)]) + [('data', 4), ('numero_protocolo', 4), ('ano_protocolo', 4)]) row3 = to_row( [('assunto', 12)]) diff --git a/sapl/protocoloadm/models.py b/sapl/protocoloadm/models.py index 0823a18a3..551fdcc19 100644 --- a/sapl/protocoloadm/models.py +++ b/sapl/protocoloadm/models.py @@ -110,7 +110,7 @@ class DocumentoAdministrativo(models.Model): protocolo = models.ForeignKey( Protocolo, blank=True, - null=True) + null=True, verbose_name=_('Protocolo')) data = models.DateField(verbose_name=_('Data')) numero_protocolo = models.PositiveIntegerField( blank=True, null=True, verbose_name=_('Núm. Protocolo')) diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index 7fd906f1c..3e13920d4 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -87,7 +87,7 @@ class DocumentoAdministrativoCrud(Crud): class BaseMixin(Crud.BaseMixin): list_field_names = ['tipo', 'numero', 'ano', 'data', - 'numero_protocolo', 'assunto', + 'numero_protocolo', 'ano_protocolo', 'assunto', 'interessado', 'tramitacao', 'texto_integral'] class ListView(DocumentoAdministrativoMixin, Crud.ListView): @@ -95,9 +95,17 @@ class DocumentoAdministrativoCrud(Crud): class CreateView(DocumentoAdministrativoMixin, Crud.CreateView): form_class = DocumentoAdministrativoForm + layout_key = None class UpdateView(DocumentoAdministrativoMixin, Crud.UpdateView): form_class = DocumentoAdministrativoForm + layout_key = None + + def get_initial(self): + if self.object.protocolo: + p = self.object.protocolo + return {'ano_protocolo': p.ano, + 'numero_protocolo': p.numero} class DetailView(DocumentoAdministrativoMixin, Crud.DetailView): def get_context_data(self, **kwargs): @@ -303,8 +311,10 @@ class CriarDocumentoProtocolo(PermissionRequiredMixin, CreateView): doc = {} doc['tipo'] = protocolo.tipo_documento doc['ano'] = curr_year - doc['data'] = protocolo.data + doc['data'] = datetime.today() doc['numero_protocolo'] = protocolo.numero + doc['ano_protocolo'] = protocolo.ano + doc['protocolo'] = protocolo.id doc['assunto'] = protocolo.assunto_ementa doc['interessado'] = protocolo.interessado doc['numero'] = numero_max + 1 if numero_max else 1 @@ -329,7 +339,7 @@ class ProtocoloMostrarView(PermissionRequiredMixin, TemplateView): else: context['materia'] = materia - elif protocolo.tipo_documento: + if protocolo.tipo_documento: context[ 'documentos'] = protocolo.documentoadministrativo_set.all().order_by('-ano', '-numero') diff --git a/sapl/templates/protocoloadm/layouts.yaml b/sapl/templates/protocoloadm/layouts.yaml index ef3727839..8b6c935d0 100644 --- a/sapl/templates/protocoloadm/layouts.yaml +++ b/sapl/templates/protocoloadm/layouts.yaml @@ -6,7 +6,7 @@ TipoDocumentoAdministrativo: DocumentoAdministrativo: {% trans 'Indentificação Básica' %}: - tipo numero ano - - data numero_protocolo + - data protocolo - assunto - interessado tramitacao - texto_integral