Browse Source

fix: melhorias e sujestões de usuários nas correspondências

pull/3459/merge
LeandroJatai 2 years ago
parent
commit
7f6156cae2
  1. 1
      sapl/relatorios/views.py
  2. 17
      sapl/sessao/models.py
  3. 39
      sapl/sessao/views.py
  4. 6
      sapl/templates/relatorios/relatorio_pauta_sessao.html
  5. 7
      sapl/templates/sessao/blocos_ata/correspondencias.html
  6. 4
      sapl/templates/sessao/blocos_resumo/correspondencias.html
  7. 2
      sapl/templates/sessao/correspondencia_form.html
  8. 2
      sapl/templates/sessao/em_lote/correspondencia.html
  9. 2
      sapl/templates/sessao/pauta_sessao_detail.html
  10. 4
      sapl/templates/sessao/subnav-solene.yaml

1
sapl/relatorios/views.py

@ -583,6 +583,7 @@ def get_sessao_plenaria(sessao, casa, user):
'tipo': c.get_tipo_display(),
'epigrafe': d.epigrafe,
'data': d.data.strftime('%d/%m/%Y'),
'interessado': d.interessado,
'assunto': d.assunto,
'restrito': d.restrito,
'is_ostensivo': is_ostensivo

17
sapl/sessao/models.py

@ -1045,12 +1045,15 @@ class Correspondencia(models.Model):
(3, 'interna', 'Interna'),
)
sessao_plenaria = models.ForeignKey(SessaoPlenaria,
on_delete=models.CASCADE,
related_name='correspondencia_set')
documento = models.ForeignKey(DocumentoAdministrativo,
on_delete=models.PROTECT,
verbose_name=_('Documento Administrativo'))
sessao_plenaria = models.ForeignKey(
SessaoPlenaria,
on_delete=models.CASCADE,
related_name='correspondencia_set',
verbose_name=_('Sessão Plenária'))
documento = models.ForeignKey(
DocumentoAdministrativo,
on_delete=models.PROTECT,
verbose_name=_('Documento Administrativo'))
observacao = models.TextField(
blank=True, verbose_name=_('Observação'))
@ -1071,4 +1074,4 @@ class Correspondencia(models.Model):
return self.documento.assunto
def __str__(self):
return _('Correspondência: {}').format(self.documento.epigrafe)
return _('Correspondência: {}').format(self.documento)

39
sapl/sessao/views.py

@ -1995,8 +1995,9 @@ def get_correspondencias(sessao_plenaria, user):
{
'id': d.id,
'tipo': c.get_tipo_display(),
'epigrafe': d.epigrafe,
'epigrafe': d,
'data': d.data.strftime('%d/%m/%Y'),
'interessado': d.interessado,
'assunto': d.assunto,
'restrito': d.restrito,
'is_ostensivo': is_ostensivo
@ -3868,8 +3869,9 @@ class PautaSessaoDetailView(DetailView):
{
'id': d.id,
'tipo': c.get_tipo_display(),
'epigrafe': d.epigrafe,
'epigrafe': d,
'data': d.data.strftime('%d/%m/%Y'),
'interessado': d.interessado,
'assunto': d.assunto,
'restrito': d.restrito,
'is_ostensivo': is_ostensivo
@ -5074,7 +5076,7 @@ def recuperar_documento(request):
return JsonResponse(
{
'id': d.id,
'epigrafe': d.epigrafe,
'epigrafe': d,
'data': d.data.strftime('%d/%m/%Y'),
'assunto': d.assunto,
'restrito': d.restrito,
@ -5091,7 +5093,16 @@ class CorrespondenciaCrud(MasterDetailCrud):
class BaseMixin(MasterDetailCrud.BaseMixin):
list_field_names = [('ordem_tipo'),
'correspondencia', 'documento__data', 'documento']
('documento__data', 'documento__interessado'), 'documento']
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
s = SessaoPlenaria.objects.get(pk=context['root_pk'])
context.update({
'subnav_template_name': 'sessao/subnav-solene.yaml'
if s.tipo.nome == "Solene" else 'sessao/subnav.yaml'})
return context
@property
def verbose_name(self):
@ -5131,14 +5142,6 @@ class CorrespondenciaCrud(MasterDetailCrud):
else:
return f'{obj.get_tipo_display()}', url
def hook_header_correspondencia(self, *args, **kwargs):
return force_text(_('Correspondência'))
def hook_correspondencia(self, obj, ss, url):
return obj.documento.epigrafe, reverse_lazy(
'sapl.protocoloadm:documentoadministrativo_detail',
kwargs={'pk': obj.documento.id})
class CreateView(MasterDetailCrud.CreateView):
form_class = CorrespondenciaForm
@ -5157,7 +5160,7 @@ class CorrespondenciaCrud(MasterDetailCrud):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = self.object.documento.epigrafe
context['title'] = self.object.documento
return context
def get_initial(self):
@ -5179,6 +5182,9 @@ class CorrespondenciaCrud(MasterDetailCrud):
context['title'] = self.object.sessao_plenaria
return context
def hook_header_sessao_plenaria(self, *args, **kwargs):
return _('Sessão Plenária')
def hook_documento(self, obj, verbose_name=None, field_display=None):
d = obj.documento
url = reverse(
@ -5187,7 +5193,7 @@ class CorrespondenciaCrud(MasterDetailCrud):
)
return (
verbose_name,
f'<a href="{url}">{d.epigrafe}</a><br>{d.assunto}'
f'<a href="{url}">{d}</a><br>{d.assunto}'
)
def get_object(self, queryset=None):
@ -5218,12 +5224,9 @@ class CorrespondenciaEmLoteView(PermissionRequiredMixin, FilterView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['root_pk'] = self.kwargs['pk']
s = SessaoPlenaria.objects.get(pk=self.kwargs['pk'])
context['subnav_template_name'] = 'sessao/subnav.yaml'
context['root_pk'] = self.kwargs['pk']
context['title'] = _(
'Correspondencias em Lote <small>({})</small>').format(s)

6
sapl/templates/relatorios/relatorio_pauta_sessao.html

@ -24,9 +24,9 @@
{% for c in correspondencias%}
<tr>
<td>
<strong>({{c.tipo}})</strong> <strong>{{c.epigrafe}}</strong><br>
<strong>Data do Documento: </strong>{{c.data}}<br>
<strong>Assunto:</strong> {{c.assunto}}
<strong>({{c.tipo}})</strong> <strong>{{c.epigrafe}}</strong><br>
<strong>Data: </strong>{{c.data}}{% if c.interessado %} - <strong>Interessado: </strong>{{c.interessado}}{% endif %}<br>
<strong>Assunto:</strong> {{c.assunto}}
</td>
</tr>
{% endfor %}

7
sapl/templates/sessao/blocos_ata/correspondencias.html

@ -3,9 +3,10 @@
<p align="justify">
<strong>Correspondências:</strong>
{% for c in correspondencias %}
{{forloop.counter}}) <strong>{{c.tipo}}</strong> - <strong>{{c.epigrafe}}</strong> -
<strong>Data: </strong>{{c.data}} -
<strong>Assunto:</strong> {{c.assunto}};
<strong>{{forloop.counter}})</strong> {{c.tipo}} -
<strong>{{c.epigrafe}}</strong> -
{% if c.interessado %}Interessado: {{c.interessado}} - {% endif %}
Assunto: {{c.assunto}};
{% endfor %}
</p>
</fieldset>

4
sapl/templates/sessao/blocos_resumo/correspondencias.html

@ -5,8 +5,8 @@
{% for c in correspondencias %}
<tr>
<td>
<strong>({{c.tipo}})</strong> <strong>{{c.epigrafe}}</strong><br>
<strong>Data do Documento: </strong>{{c.data}}<br>
<strong>{{c.epigrafe}}</strong><br>
<strong>Data: </strong>{{c.data}}{% if c.interessado %} - <strong>Interessado: </strong>{{c.interessado}}{% endif %}<br>
<strong>Assunto:</strong> {{c.assunto}}
</td>
</tr>

2
sapl/templates/sessao/correspondencia_form.html

@ -26,7 +26,7 @@
${data.restrito? '<strong>ATENÇÃO, este é um documento restrito!!!</strong><br>':''}
${!data.is_ostensivo? '<strong>ATENÇÃO, os documentos administrativos estão configurados globalmente como restritos!!!</strong><br>':''}
<strong>${data.epigrafe}</strong><br>
<strong>Data do Documento: </strong>${data.data}<br>
<strong>Data do Documento: </strong>${data.data} - <strong>Interessado: </strong>${data.interessado?data.interessado:'Não Informado.'}<br>
<strong>Assunto:</strong> ${data.assunto}<br><br>
`
)

2
sapl/templates/sessao/em_lote/correspondencia.html

@ -57,7 +57,7 @@
<label for="doc_{{documento.id}}" class="d-flex w-100 p-3">
<input type="checkbox" id="doc_{{documento.id}}" name="documento_id" value="{{documento.id}}" {% if check %} checked {% endif %}/>
<span>
{{documento.epigrafe}} - {{documento.assunto}}
{{documento}} - {{documento.assunto}}
{% if documento.restrito %}<br><small class="text-danger" >(Documento Restrito)</small> {% endif %}
</span>

2
sapl/templates/sessao/pauta_sessao_detail.html

@ -24,7 +24,7 @@
<tr>
<td>
<strong>({{c.tipo}})</strong> <strong>{{c.epigrafe}}</strong><br>
<strong>Data do Documento: </strong>{{c.data}}<br>
<strong>Data: </strong>{{c.data}}{% if c.interessado %} - <strong>Interessado: </strong>{{c.interessado}}{% endif %}<br>
<strong>Assunto:</strong> {{c.assunto}}
</td>
</tr>

4
sapl/templates/sessao/subnav-solene.yaml

@ -17,10 +17,10 @@
- title: {% trans 'Expedientes' %}
children:
- title: {% trans 'Expediente Diversos' %}
url: expediente
- title: {% trans 'Correspondências' %}
url: correspondencia_list
- title: {% trans 'Expediente Diversos' %}
url: expediente
- title: {% trans 'Oradores do Expediente' %}
url: oradorexpediente_list

Loading…
Cancel
Save