diff --git a/sigi/apps/convenios/admin.py b/sigi/apps/convenios/admin.py
index 51f69f9..6530e61 100644
--- a/sigi/apps/convenios/admin.py
+++ b/sigi/apps/convenios/admin.py
@@ -104,7 +104,7 @@ class ConvenioVigenteFilter(admin.filters.SimpleListFilter):
@admin.register(Projeto)
class ProjetoAdmin(admin.ModelAdmin):
- list_display = ("sigla", "nome")
+ list_display = ("sigla", "nome", "termino_indefinido")
formfield_overrides = {HTMLField: {"widget": AdminTinyMCE}}
diff --git a/sigi/apps/convenios/migrations/0038_projeto_termino_indefinido.py b/sigi/apps/convenios/migrations/0038_projeto_termino_indefinido.py
new file mode 100644
index 0000000..d031d06
--- /dev/null
+++ b/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",
+ ),
+ ),
+ ]
diff --git a/sigi/apps/convenios/models.py b/sigi/apps/convenios/models.py
index 23ba55d..33774f4 100644
--- a/sigi/apps/convenios/models.py
+++ b/sigi/apps/convenios/models.py
@@ -1,6 +1,5 @@
import re
import requests
-from difflib import SequenceMatcher
from hashlib import md5
from pathlib import Path
from django.db import models
@@ -55,6 +54,14 @@ class Projeto(models.Model):
)
nome = models.CharField(max_length=50)
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 do ofício"), blank=True, help_text=OFICIO_HELP
)
@@ -380,17 +387,18 @@ class Convenio(models.Model):
if display_type == "numero":
display = self.num_processo_sf
else:
- display = "visibility"
+ display = ''
return (
f'{display}'
)
if display_type == "numero":
return self.num_processo_sf
else:
- return "visibility_off"
+ return ''
def get_url_gescon(self):
if not self.id_contrato_gescon:
@@ -410,7 +418,7 @@ class Convenio(models.Model):
def clean(self):
# Gertiq #184827
if self.num_convenio:
- if (
+ if not self.projeto.termino_indefinido and (
self.data_retorno_assinatura is None
or self.data_termino_vigencia is None
):