Browse Source

Adicionar busca por orgaosGestoresTitulares na importação de convênios

pull/157/head
Sesostris Vieira 3 years ago
parent
commit
31a96f7e37
  1. 20
      sigi/apps/convenios/migrations/0019_gescon_orgaos_gestores.py
  2. 25
      sigi/apps/convenios/models.py

20
sigi/apps/convenios/migrations/0019_gescon_orgaos_gestores.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('convenios', '0018_auto_20211208_1256'),
]
operations = [
migrations.AddField(
model_name='gescon',
name='orgaos_gestores',
field=models.TextField(default='SCCO', help_text='Siglas de \xf3rg\xe3os gestores que devem aparecer no campoORGAOSGESTORESTITULARES<ul><li>Informe um sigla por linha.</li><li>Ocorrendo qualquer uma das siglas, o contrato ser\xe1 importado.</li></ul>', verbose_name='\xd3rg\xe3os gestores'),
preserve_default=True,
),
]

25
sigi/apps/convenios/models.py

@ -421,6 +421,15 @@ class Gescon(models.Model):
u"<li>Ocorrendo qualquer uma das palavras, o contrato será " u"<li>Ocorrendo qualquer uma das palavras, o contrato será "
u"importado.</li></ul>") u"importado.</li></ul>")
) )
orgaos_gestores = models.TextField(
_(u"Órgãos gestores"),
default=u"SCCO",
help_text=_(u"Siglas de órgãos gestores que devem aparecer no campo"
u"ORGAOSGESTORESTITULARES"
u"<ul><li>Informe um sigla por linha.</li>"
u"<li>Ocorrendo qualquer uma das siglas, o contrato será "
u"importado.</li></ul>")
)
email = models.EmailField( email = models.EmailField(
_(u"E-mail"), _(u"E-mail"),
help_text=_(u"Caixa de e-mail para onde o relatório diário de " help_text=_(u"Caixa de e-mail para onde o relatório diário de "
@ -475,9 +484,10 @@ class Gescon(models.Model):
) )
) )
if self.palavras == "": if self.palavras == "" or self.orgaos_gestores == "":
self.add_message(_(u"Nenhuma palavra de pesquisa definida - " self.add_message(_(u"Nenhuma palavra de pesquisa ou orgãos "
u"processo abortado."), True) u"gestores definidos - processo abortado."),
True)
return return
if self.subespecies == "": if self.subespecies == "":
@ -497,6 +507,7 @@ class Gescon(models.Model):
return return
palavras = self.palavras.split() palavras = self.palavras.split()
orgaos = self.orgaos_gestores.split()
subespecies = {tuple(s.split("=")) for s in self.subespecies.split()} subespecies = {tuple(s.split("=")) for s in self.subespecies.split()}
for sigla_gescon, sigla_sigi in subespecies: for sigla_gescon, sigla_sigi in subespecies:
@ -537,9 +548,13 @@ class Gescon(models.Model):
contratos = response.json() contratos = response.json()
# Pegar só os contratos que possuem alguma das palavras-chave # Pegar só os contratos que possuem alguma das palavras-chave
# ou algum dos órgaos gestores
import ipdb; ipdb.set_trace()
nossos = [c for c in contratos nossos = [c for c in contratos
if any(palavra in c['objeto'] for palavra in palavras)] if any(palavra in c['objeto'] for palavra in palavras) or
any(orgao in c['orgaosGestoresTitulares']
for orgao in orgaos
if c['orgaosGestoresTitulares'] is not None)]
self.add_message( self.add_message(
_(u"\t{count} contratos encontrados no Gescon").format( _(u"\t{count} contratos encontrados no Gescon").format(

Loading…
Cancel
Save