Browse Source

impl data e hora manual no protocolo de documentos

pull/2448/head
Leandro Roberto 7 years ago
parent
commit
96bc49f8eb
  1. 54
      sapl/protocoloadm/forms.py
  2. 20
      sapl/protocoloadm/views.py
  3. 14
      sapl/templates/protocoloadm/protocolar_documento.html
  4. 8
      sapl/templates/protocoloadm/protocolo_mostrar.html

54
sapl/protocoloadm/forms.py

@ -345,6 +345,12 @@ class ProtocoloDocumentForm(ModelForm):
numero = forms.IntegerField( numero = forms.IntegerField(
required=False, label=_('Número de Protocolo (opcional)')) required=False, label=_('Número de Protocolo (opcional)'))
data_hora_manual = forms.ChoiceField(
label=_('Informar data e hora manualmente?'),
widget=forms.RadioSelect(),
choices=YES_NO_CHOICES,
initial=False)
class Meta: class Meta:
model = Protocolo model = Protocolo
fields = ['tipo_protocolo', fields = ['tipo_protocolo',
@ -353,7 +359,9 @@ class ProtocoloDocumentForm(ModelForm):
'assunto', 'assunto',
'interessado', 'interessado',
'observacao', 'observacao',
'numero' 'numero',
'data',
'hora',
] ]
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -361,30 +369,56 @@ class ProtocoloDocumentForm(ModelForm):
row1 = to_row( row1 = to_row(
[(InlineRadios('tipo_protocolo'), 12)]) [(InlineRadios('tipo_protocolo'), 12)])
row2 = to_row( row2 = to_row(
[('tipo_documento', 6), [('tipo_documento', 5),
('numero_paginas', 6)]) ('numero_paginas', 2),
row3 = to_row( (Div(), 1),
[('assunto', 12)]) (InlineRadios('data_hora_manual'), 4),
])
row3 = to_row([
(Div(), 2),
(Alert(
"""
Usuário: <strong>{}</strong> - {}<br>
IP: <strong>{}</strong> - {}<br>
""".format(
kwargs['initial']['user_data_hora_manual'],
Protocolo._meta.get_field(
'user_data_hora_manual').help_text,
kwargs['initial']['ip_data_hora_manual'],
Protocolo._meta.get_field(
'ip_data_hora_manual').help_text,
),
dismiss=False,
css_class='alert-info'), 6),
('data', 2),
('hora', 2),
])
row4 = to_row( row4 = to_row(
[('interessado', 12)]) [('assunto', 12)])
row5 = to_row( row5 = to_row(
[('observacao', 12)]) [('interessado', 12)])
row6 = to_row( row6 = to_row(
[('observacao', 12)])
row7 = to_row(
[('numero', 12)]) [('numero', 12)])
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Fieldset(_('Identificação de Documento'), Fieldset(_('Identificação de Documento'),
row1, row1,
row2, row2),
Fieldset(_('Protocolo com data e hora informados manualmente'),
row3, row3,
css_id='protocolo_data_hora_manual',
css_class='hidden'),
row4, row4,
row5, row5,
HTML("&nbsp;"), HTML("&nbsp;"),
),
Fieldset(_('Número do Protocolo (Apenas se quiser que a numeração comece ' Fieldset(_('Número do Protocolo (Apenas se quiser que a numeração comece '
'a partir do número a ser informado)'), 'a partir do número a ser informado)'),
row6, row7,
HTML("&nbsp;"), HTML("&nbsp;"),
form_actions(label=_('Protocolar Documento')) form_actions(label=_('Protocolar Documento'))
) )

20
sapl/protocoloadm/views.py

@ -492,6 +492,15 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
return reverse('sapl.protocoloadm:protocolo_mostrar', return reverse('sapl.protocoloadm:protocolo_mostrar',
kwargs={'pk': self.object.id}) kwargs={'pk': self.object.id})
def get_initial(self):
initial = super().get_initial()
initial['user_data_hora_manual'] = self.request.user.username
initial['ip_data_hora_manual'] = get_client_ip(self.request)
initial['data'] = datetime.now().date
initial['hora'] = datetime.now().time
return initial
def form_valid(self, form): def form_valid(self, form):
protocolo = form.save(commit=False) protocolo = form.save(commit=False)
username = self.request.user.username username = self.request.user.username
@ -538,6 +547,17 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
return self.render_to_response(self.get_context_data()) return self.render_to_response(self.get_context_data())
protocolo.ano = timezone.now().year protocolo.ano = timezone.now().year
protocolo.assunto_ementa = self.request.POST['assunto'] protocolo.assunto_ementa = self.request.POST['assunto']
if form.cleaned_data['data_hora_manual'] == 'True':
protocolo.timestamp = None
protocolo.user_data_hora_manual = username
protocolo.ip_data_hora_manual = get_client_ip(self.request)
else:
protocolo.data = None
protocolo.hora = None
protocolo.user_data_hora_manual = ''
protocolo.ip_data_hora_manual = ''
protocolo.save() protocolo.save()
self.object = protocolo self.object = protocolo
return redirect(self.get_success_url()) return redirect(self.get_success_url())

14
sapl/templates/protocoloadm/protocolar_documento.html

@ -14,3 +14,17 @@
{% block detail_content %} {% block detail_content %}
{% crispy form %} {% crispy form %}
{% endblock detail_content %} {% endblock detail_content %}
{% block extra_js %}
<script language="Javascript">
$(document).ready(function() {
$("input[name=data_hora_manual]").change(function(event) {
if (this.value === 'True' && this.checked)
$("#protocolo_data_hora_manual").removeClass('hidden');
else if (this.value === 'False' && this.checked)
$("#protocolo_data_hora_manual").addClass('hidden');
});
$("input[name=data_hora_manual]").trigger('change')
});
</script>
{% endblock %}

8
sapl/templates/protocoloadm/protocolo_mostrar.html

@ -4,6 +4,14 @@
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% load static %} {% load static %}
{% block actions %}
{{ block.super }}
<div class="actions btn-group pull-right grid-gutter-width-right " role="group">
<a href="{% url 'sapl.protocoloadm:protocolo' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div>
{% endblock %}
{% block detail_content %} {% block detail_content %}
<strong>Protocolo: </strong>{{ protocolo.numero|stringformat:'06d' }}/{{ protocolo.ano }} - <strong>Protocolo: </strong>{{ protocolo.numero|stringformat:'06d' }}/{{ protocolo.ano }} -
<a href="{% url 'sapl.relatorios:relatorio_etiqueta_protocolo' protocolo.numero protocolo.ano %}"><img src="{% static 'img/etiqueta.png' %}" alt="Etiqueta Individual"></a></br> <a href="{% url 'sapl.relatorios:relatorio_etiqueta_protocolo' protocolo.numero protocolo.ano %}"><img src="{% static 'img/etiqueta.png' %}" alt="Etiqueta Individual"></a></br>

Loading…
Cancel
Save