Browse Source

Issue3460 - Adição de campos nos templates de proposição e protocolo. (#3467)

* Alteracoes nos templates de proposicao para adicionar o campo enviada por

* Adicionado campos ao template da proposicao e protocolo

* Conserto de bug do protocolo.user do documento

* Adicionado filtro format_user para os templates e unificacao das migracoes

* Adicao do filtro format_user nos templates de protocolo

* Alteracao posicao data de envio

Co-authored-by: Gustavo274 <gustavo@DESKTOP-JVUD0SL.localdomain>
pull/3471/head
Gustavo274 3 years ago
committed by GitHub
parent
commit
4da59e70fc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      sapl/base/templatetags/common_tags.py
  2. 2
      sapl/materia/forms.py
  3. 26
      sapl/protocoloadm/migrations/0038_auto_20211025_1657.py
  4. 8
      sapl/protocoloadm/models.py
  5. 4
      sapl/protocoloadm/views.py
  6. 12
      sapl/templates/materia/proposicao_detail.html
  7. 4
      sapl/templates/materia/recibo_proposicao.html
  8. 7
      sapl/templates/protocoloadm/comprovante.html
  9. 7
      sapl/templates/protocoloadm/protocolo_filter.html
  10. 9
      sapl/templates/protocoloadm/protocolo_mostrar.html

7
sapl/base/templatetags/common_tags.py

@ -51,6 +51,12 @@ def model_verbose_name_plural(class_name):
model = get_class(class_name) model = get_class(class_name)
return model._meta.verbose_name_plural return model._meta.verbose_name_plural
@register.filter
def format_user(user):
if user.first_name:
return user.username + " - " + user.first_name + " " + user.last_name
else:
return user.username
@register.filter @register.filter
def meta_model_value(instance, attr): def meta_model_value(instance, attr):
@ -363,3 +369,4 @@ def dont_break_out(value):
_safe = '<div class="dont-break-out">{}</div>'.format(value) _safe = '<div class="dont-break-out">{}</div>'.format(value)
_safe = mark_safe(_safe) _safe = mark_safe(_safe)
return _safe return _safe

2
sapl/materia/forms.py

@ -2607,6 +2607,8 @@ class ConfirmarProposicaoForm(ProposicaoForm):
protocolo.ano = timezone.now().year protocolo.ano = timezone.now().year
protocolo.tipo_protocolo = '1' protocolo.tipo_protocolo = '1'
protocolo.user = proposicao.user
protocolo.de_proposicao = True
protocolo.interessado = str(proposicao.autor)[ protocolo.interessado = str(proposicao.autor)[
:200] # tamanho máximo 200 :200] # tamanho máximo 200

26
sapl/protocoloadm/migrations/0038_auto_20211025_1657.py

@ -0,0 +1,26 @@
# Generated by Django 2.2.24 on 2021-10-25 19:57
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('protocoloadm', '0037_auto_20210209_1047'),
]
operations = [
migrations.AddField(
model_name='protocolo',
name='de_proposicao',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='protocolo',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='Usuário'),
),
]

8
sapl/protocoloadm/models.py

@ -83,6 +83,14 @@ class Protocolo(models.Model):
verbose_name=_('IP'), verbose_name=_('IP'),
help_text=_('Endereço IP da estação de trabalho do usuário que está realizando Protocolo e ' help_text=_('Endereço IP da estação de trabalho do usuário que está realizando Protocolo e '
'informando data e hora manualmente.')) 'informando data e hora manualmente.'))
user = models.ForeignKey(
get_settings_auth_user_model(),
verbose_name=_('Usuário'),
on_delete=models.PROTECT,
null=True,
blank=True
)
de_proposicao = models.BooleanField(default=False)
# Não foi utilizado auto_now_add=True em timestamp porque ele usa datetime.now que não é timezone aware. # Não foi utilizado auto_now_add=True em timestamp porque ele usa datetime.now que não é timezone aware.
timestamp = models.DateTimeField( timestamp = models.DateTimeField(
null=True, null=True,

4
sapl/protocoloadm/views.py

@ -599,6 +599,7 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
def get_initial(self): def get_initial(self):
initial = super().get_initial() initial = super().get_initial()
initial['user'] = self.request.user.username
initial['user_data_hora_manual'] = self.request.user.username initial['user_data_hora_manual'] = self.request.user.username
initial['ip_data_hora_manual'] = get_client_ip(self.request) initial['ip_data_hora_manual'] = get_client_ip(self.request)
initial['data'] = timezone.localdate(timezone.now()) initial['data'] = timezone.localdate(timezone.now())
@ -663,6 +664,7 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
protocolo.ano = timezone.now().year protocolo.ano = timezone.now().year
protocolo.assunto_ementa = self.request.POST['assunto'] protocolo.assunto_ementa = self.request.POST['assunto']
protocolo.user = self.request.user
if form.cleaned_data['data_hora_manual'] == 'True': if form.cleaned_data['data_hora_manual'] == 'True':
protocolo.timestamp = None protocolo.timestamp = None
@ -811,6 +813,7 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
def get_initial(self): def get_initial(self):
initial = super().get_initial() initial = super().get_initial()
initial['user'] = self.request.user.username
initial['user_data_hora_manual'] = self.request.user.username initial['user_data_hora_manual'] = self.request.user.username
initial['ip_data_hora_manual'] = get_client_ip(self.request) initial['ip_data_hora_manual'] = get_client_ip(self.request)
initial['data'] = timezone.localdate(timezone.now()) initial['data'] = timezone.localdate(timezone.now())
@ -882,6 +885,7 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
protocolo.numero_paginas = self.request.POST['numero_paginas'] protocolo.numero_paginas = self.request.POST['numero_paginas']
protocolo.observacao = self.request.POST['observacao'] protocolo.observacao = self.request.POST['observacao']
protocolo.assunto_ementa = self.request.POST['assunto_ementa'] protocolo.assunto_ementa = self.request.POST['assunto_ementa']
protocolo.user = self.request.user
if form.cleaned_data['data_hora_manual'] == 'True': if form.cleaned_data['data_hora_manual'] == 'True':
protocolo.timestamp = None protocolo.timestamp = None

12
sapl/templates/materia/proposicao_detail.html

@ -108,6 +108,18 @@
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% if object.data_envio %}
<div class="row">
<div class="col-sm-12">
<div id="div_id_obseracao" class="form-group">
<p class="control-label">Enviada por</p>
<div class="controls">
<div class="form-control-static">{{ proposicao.user|format_user }}</div>
</div>
</div>
</div>
</div>
{% endif %}
<div class="row"> <div class="row">
{% if object.conteudo_gerado_related %} {% if object.conteudo_gerado_related %}
<div class="col-sm-6"> <div class="col-sm-6">

4
sapl/templates/materia/recibo_proposicao.html

@ -1,6 +1,7 @@
{% load i18n %} {% load i18n %}
{% load tz %} {% load tz %}
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% load common_tags %}
{% load webpack_static from webpack_loader %} {% load webpack_static from webpack_loader %}
{% block detail_content %} {% block detail_content %}
@ -50,10 +51,11 @@
</tr> </tr>
<tr> <tr>
<td>Autor: <b>{{proposicao.autor}}</b></td> <td>Autor: <b>{{proposicao.autor}}</b></td>
<td>Data de Envio: <b>{{proposicao.data_envio|localtime|date:"d/m/Y H:i:s"}}</b></td> <td>Enviada por: <b>{{ proposicao.user|format_user }}</b></td>
</tr> </tr>
<tr> <tr>
<td>Descrição: <b>{{proposicao.descricao}}</b></td> <td>Descrição: <b>{{proposicao.descricao}}</b></td>
<td>Data de Envio: <b>{{proposicao.data_envio|localtime|date:"d/m/Y H:i:s"}}</b></td>
</tr> </tr>
</table> </table>

7
sapl/templates/protocoloadm/comprovante.html

@ -2,6 +2,7 @@
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% load static %} {% load static %}
{% load webpack_static from webpack_loader %} {% load webpack_static from webpack_loader %}
{% load common_tags %}
{% block detail_content %} {% block detail_content %}
<style xmlns:max-width="http://www.w3.org/1999/xhtml"> <style xmlns:max-width="http://www.w3.org/1999/xhtml">
table { table {
@ -110,6 +111,12 @@
<td>{{ protocolo.interessado }}</td> <td>{{ protocolo.interessado }}</td>
</tr> </tr>
{% endif %} {% endif %}
{% if protocolo.de_proposicao %}
<tr>
<th>Proposição enviada por:</th>
<td>{{ {{ proposicao.user|format_user }} }}</td>
</tr>
{% endif %}
<tr> <tr>
<th>Natureza</th> <th>Natureza</th>
<td> <td>

7
sapl/templates/protocoloadm/protocolo_filter.html

@ -3,6 +3,7 @@
{% load tz %} {% load tz %}
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% load static %} {% load static %}
{% load common_tags %}
{% load webpack_static from webpack_loader %} {% load webpack_static from webpack_loader %}
{% block action_newsearch %} {% block action_newsearch %}
@ -49,6 +50,12 @@
{% elif p.tipo_processo == 1 %} {% elif p.tipo_processo == 1 %}
<strong>Autor:</strong> {{ p.autor.nome|default_if_none:"Não informado" }}</br> <strong>Autor:</strong> {{ p.autor.nome|default_if_none:"Não informado" }}</br>
{% endif %} {% endif %}
{% if p.de_proposicao %}
<strong>Proposição enviada por:</strong> {{ p.user|format_user }}</br>
{% endif %}
{% if p.user %}
<strong>Protocolado por:</strong> {{ p.user|format_user|default_if_none:"Não informado" }}</br>
{% endif %}
<strong>Natureza do Processo:</strong> <strong>Natureza do Processo:</strong>
{% if p.tipo_processo == 0 %} Administrativo {% elif p.tipo_processo == 1 %} Matéria Legislativa {% endif %}</br> {% if p.tipo_processo == 0 %} Administrativo {% elif p.tipo_processo == 1 %} Matéria Legislativa {% endif %}</br>

9
sapl/templates/protocoloadm/protocolo_mostrar.html

@ -2,6 +2,7 @@
{% load i18n %} {% load i18n %}
{% load tz %} {% load tz %}
{% load static %} {% load static %}
{% load common_tags %}
{% load webpack_static from webpack_loader %} {% load webpack_static from webpack_loader %}
{% block detail_content %} {% block detail_content %}
@ -18,8 +19,14 @@
{% if protocolo.tipo_processo == 0 %} {% if protocolo.tipo_processo == 0 %}
<strong>Interessado:</strong> {{ protocolo.interessado|default_if_none:"Não informado" }}</br> <strong>Interessado:</strong> {{ protocolo.interessado|default_if_none:"Não informado" }}</br>
{% elif protocolo.tipo_processo == 1 %} {% elif protocolo.tipo_processo == 1 %}
<strong>Autor:</strong>{{ protocolo.autor.nome|default_if_none:"Não informado" }}</br> <strong>Autor:</strong> {{ protocolo.autor.nome|default_if_none:"Não informado" }}</br>
{% endif %} <!-- TODO: convert if-else to custom tag --> {% endif %} <!-- TODO: convert if-else to custom tag -->
{% if protocolo.de_proposicao %}
<strong>Proposição enviada por:</strong> {{ protocolo.user|format_user }}</br>
{% endif %}
{% if protocolo.user %}
<strong>Protocolado por:</strong> {{ protocolo.user|format_user|default_if_none:"Não informado" }}</br>
{% endif %}
<strong>Natureza do Processo: </strong>{% if protocolo.tipo_processo == 0 %} Administrativo {% elif protocolo.tipo_processo == 1 %} Legislativo {% endif %}</br> <strong>Natureza do Processo: </strong>{% if protocolo.tipo_processo == 0 %} Administrativo {% elif protocolo.tipo_processo == 1 %} Legislativo {% endif %}</br>
<strong>Número de Páginas: </strong> {{ protocolo.numero_paginas|default_if_none:"Não informado" }}</br> <strong>Número de Páginas: </strong> {{ protocolo.numero_paginas|default_if_none:"Não informado" }}</br>

Loading…
Cancel
Save