|
@ -7,11 +7,50 @@ from sigi.apps.utils import to_ascii |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def forwards(apps, schema_editor): |
|
|
def forwards(apps, schema_editor): |
|
|
|
|
|
import ipdb |
|
|
|
|
|
|
|
|
|
|
|
ipdb.set_trace() |
|
|
TipoEvento = apps.get_model("eventos", "TipoEvento") |
|
|
TipoEvento = apps.get_model("eventos", "TipoEvento") |
|
|
Evento = apps.get_model("eventos", "Evento") |
|
|
Evento = apps.get_model("eventos", "Evento") |
|
|
Solicitacao = apps.get_model("eventos", "Solicitacao") |
|
|
Solicitacao = apps.get_model("eventos", "Solicitacao") |
|
|
ItemSolicitado = apps.get_model("eventos", "ItemSolicitado") |
|
|
ItemSolicitado = apps.get_model("eventos", "ItemSolicitado") |
|
|
|
|
|
|
|
|
|
|
|
siglas = { |
|
|
|
|
|
"Encontro": 2, |
|
|
|
|
|
"SAPL": 4, |
|
|
|
|
|
"PROCLEG": 8, |
|
|
|
|
|
"SAPL-A&C": 10, |
|
|
|
|
|
"PE": 11, |
|
|
|
|
|
"CERIMN": 12, |
|
|
|
|
|
"CI": 13, |
|
|
|
|
|
"MJ": 14, |
|
|
|
|
|
"PM": 15, |
|
|
|
|
|
"LC": 18, |
|
|
|
|
|
"SAPL-R": 19, |
|
|
|
|
|
"SAPL-ICP": 20, |
|
|
|
|
|
"EDEM": 22, |
|
|
|
|
|
"eDEM": 22, |
|
|
|
|
|
"GPS": 23, |
|
|
|
|
|
"CIGE": 24, |
|
|
|
|
|
"LGPD": 25, |
|
|
|
|
|
"TEGLEG": 26, |
|
|
|
|
|
"CICLO": 27, |
|
|
|
|
|
"OUV": 32, |
|
|
|
|
|
"GPM": 40, |
|
|
|
|
|
"SAPL-SPVP": 41, |
|
|
|
|
|
"SAAP": 42, |
|
|
|
|
|
"GABP": 52, |
|
|
|
|
|
"PROCMULHER": 57, |
|
|
|
|
|
"RELPUB": 58, |
|
|
|
|
|
"ORÇPM": 59, |
|
|
|
|
|
"ARQ": 60, |
|
|
|
|
|
"BOM-ATEND": 61, |
|
|
|
|
|
"MIDSOC": 62, |
|
|
|
|
|
"POL-LEG": 63, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
m_siglas = {s.lower().replace("-", " "): k for s, k in siglas.items()} |
|
|
|
|
|
|
|
|
conjuncoes = [ |
|
|
conjuncoes = [ |
|
|
"oficina", |
|
|
"oficina", |
|
|
"a", |
|
|
"a", |
|
@ -28,9 +67,14 @@ def forwards(apps, schema_editor): |
|
|
"com", |
|
|
"com", |
|
|
] |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
# Adiciona as siglas pré-definidas pela COPERI |
|
|
|
|
|
|
|
|
|
|
|
for sgl, id in siglas.items(): |
|
|
|
|
|
TipoEvento.objects.filter(id=id).update(sigla=sgl) |
|
|
|
|
|
|
|
|
# Siglas para TipoEvento com as iniciais de cada palavra do nome |
|
|
# Siglas para TipoEvento com as iniciais de cada palavra do nome |
|
|
|
|
|
|
|
|
for t in TipoEvento.objects.all(): |
|
|
for t in TipoEvento.objects.filter(sigla=""): |
|
|
t.sigla = "".join( |
|
|
t.sigla = "".join( |
|
|
[s[:1] for s in t.nome.split(" ") if s.lower() not in conjuncoes] |
|
|
[s[:1] for s in t.nome.split(" ") if s.lower() not in conjuncoes] |
|
|
) |
|
|
) |
|
@ -47,8 +91,9 @@ def forwards(apps, schema_editor): |
|
|
|
|
|
|
|
|
conjugados = [ |
|
|
conjugados = [ |
|
|
to_ascii(re.search("(\w+) e (\w+)", t.nome.lower()).group()) |
|
|
to_ascii(re.search("(\w+) e (\w+)", t.nome.lower()).group()) |
|
|
for t in TipoEvento.objects.exclude(id=35) |
|
|
for t in TipoEvento.objects.exclude(id=35).filter( |
|
|
if " e " in t.nome |
|
|
nome__icontains=" e " |
|
|
|
|
|
) |
|
|
] |
|
|
] |
|
|
|
|
|
|
|
|
# Tipo_evento_id 35 foi cadastrado como 'pedidos SIGAD' e todos os eventos |
|
|
# Tipo_evento_id 35 foi cadastrado como 'pedidos SIGAD' e todos os eventos |
|
@ -103,20 +148,32 @@ def forwards(apps, schema_editor): |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
for d in descricoes: |
|
|
for d in descricoes: |
|
|
|
|
|
d = d.strip() |
|
|
|
|
|
tipo_id = None |
|
|
|
|
|
# Verifica se não é uma sigla pré-definida # |
|
|
|
|
|
if d in m_siglas: |
|
|
|
|
|
tipo_id = m_siglas[d] |
|
|
|
|
|
else: |
|
|
termos = { |
|
|
termos = { |
|
|
s.strip() for s in d.strip().split(" ") if s not in conjuncoes |
|
|
s.strip() for s in d.split(" ") if s not in conjuncoes |
|
|
} |
|
|
} |
|
|
similar = min( |
|
|
similar = min( |
|
|
[(id, len(termos.difference(t))) for id, t in tipos.items()], |
|
|
[ |
|
|
|
|
|
(id, len(termos.difference(t))) |
|
|
|
|
|
for id, t in tipos.items() |
|
|
|
|
|
], |
|
|
key=lambda x: x[1], |
|
|
key=lambda x: x[1], |
|
|
) |
|
|
) |
|
|
if similar and similar[1] < len(termos): |
|
|
if similar and similar[1] < len(termos): |
|
|
|
|
|
tipo_id = similar[0] |
|
|
|
|
|
|
|
|
|
|
|
if tipo_id: |
|
|
if not ItemSolicitado.objects.filter( |
|
|
if not ItemSolicitado.objects.filter( |
|
|
solicitacao=solicitacao, tipo_evento_id=similar[0] |
|
|
solicitacao=solicitacao, tipo_evento_id=tipo_id |
|
|
).exists(): |
|
|
).exists(): |
|
|
ItemSolicitado( |
|
|
ItemSolicitado( |
|
|
solicitacao=solicitacao, |
|
|
solicitacao=solicitacao, |
|
|
tipo_evento_id=similar[0], |
|
|
tipo_evento_id=tipo_id, |
|
|
virtual=e.virtual, |
|
|
virtual=e.virtual, |
|
|
inicio_desejado=e.data_inicio |
|
|
inicio_desejado=e.data_inicio |
|
|
or e.data_pedido |
|
|
or e.data_pedido |
|
|