Browse Source

Possibilita que alguns convênios tenham término indefinido

pull/187/head
Sesóstris Vieira 3 months ago
parent
commit
43609386e2
  1. 2
      sigi/apps/convenios/admin.py
  2. 22
      sigi/apps/convenios/migrations/0038_projeto_termino_indefinido.py
  3. 16
      sigi/apps/convenios/models.py

2
sigi/apps/convenios/admin.py

@ -104,7 +104,7 @@ class ConvenioVigenteFilter(admin.filters.SimpleListFilter):
@admin.register(Projeto) @admin.register(Projeto)
class ProjetoAdmin(admin.ModelAdmin): class ProjetoAdmin(admin.ModelAdmin):
list_display = ("sigla", "nome") list_display = ("sigla", "nome", "termino_indefinido")
formfield_overrides = {HTMLField: {"widget": AdminTinyMCE}} formfield_overrides = {HTMLField: {"widget": AdminTinyMCE}}

22
sigi/apps/convenios/migrations/0038_projeto_termino_indefinido.py

@ -0,0 +1,22 @@
# Generated by Django 5.2.1 on 2025-05-23 20:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("convenios", "0037_ajusta_acts_pendentes_gertiq_184827"),
]
operations = [
migrations.AddField(
model_name="projeto",
name="termino_indefinido",
field=models.BooleanField(
default=True,
help_text="Indica se os convênios deste tipo podem estar vigentes sem ter uma data de término de vigência.",
verbose_name="Término indefinido",
),
),
]

16
sigi/apps/convenios/models.py

@ -1,6 +1,5 @@
import re import re
import requests import requests
from difflib import SequenceMatcher
from hashlib import md5 from hashlib import md5
from pathlib import Path from pathlib import Path
from django.db import models from django.db import models
@ -55,6 +54,14 @@ class Projeto(models.Model):
) )
nome = models.CharField(max_length=50) nome = models.CharField(max_length=50)
sigla = models.CharField(max_length=10) sigla = models.CharField(max_length=10)
termino_indefinido = models.BooleanField(
_("Término indefinido"),
default=True,
help_text=_(
"Indica se os convênios deste tipo podem estar vigentes sem ter "
"uma data de término de vigência."
),
)
texto_oficio = HTMLField( texto_oficio = HTMLField(
_("texto do ofício"), blank=True, help_text=OFICIO_HELP _("texto do ofício"), blank=True, help_text=OFICIO_HELP
) )
@ -380,17 +387,18 @@ class Convenio(models.Model):
if display_type == "numero": if display_type == "numero":
display = self.num_processo_sf display = self.num_processo_sf
else: else:
display = "<i class='material-icons'>visibility</i>" display = '<i class="bi bi-eye"></i>'
return ( return (
f'<a href="https://intra.senado.leg.br/sigad/novo/protocolo/' f'<a href="https://intra.senado.leg.br/sigad/novo/protocolo/'
f"impressao.asp?area=processo&txt_numero_orgao={orgao}" f"impressao.asp?area=processo&txt_numero_orgao={orgao}"
f'&txt_numero_sequencial={sequencial}&txt_numero_ano={ano}" ' f'&txt_numero_sequencial={sequencial}&txt_numero_ano={ano}" '
f'title="{self.num_processo_sf}" '
f'target="_blank">{display}</a>' f'target="_blank">{display}</a>'
) )
if display_type == "numero": if display_type == "numero":
return self.num_processo_sf return self.num_processo_sf
else: else:
return "<i class='material-icons'>visibility_off</i>" return '<i class="bi bi-eye-slash"></i>'
def get_url_gescon(self): def get_url_gescon(self):
if not self.id_contrato_gescon: if not self.id_contrato_gescon:
@ -410,7 +418,7 @@ class Convenio(models.Model):
def clean(self): def clean(self):
# Gertiq #184827 # Gertiq #184827
if self.num_convenio: if self.num_convenio:
if ( if not self.projeto.termino_indefinido and (
self.data_retorno_assinatura is None self.data_retorno_assinatura is None
or self.data_termino_vigencia is None or self.data_termino_vigencia is None
): ):

Loading…
Cancel
Save