Browse Source

Altera TipoCasaLegislativa para TipoOrgao

pull/32/head
Sesostris Vieira 4 years ago
parent
commit
05d3cc8816
  1. 14
      etc/migracao/migra.py
  2. 4
      sigi/apps/casas/admin.py
  3. 4
      sigi/apps/casas/models.py
  4. 84
      sigi/apps/casas/views.py

14
etc/migracao/migra.py

@ -60,7 +60,7 @@ def migra_assembleias(filename):
reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True)
header = reader.next()
tipo_casa = TipoCasaLegislativa.objects.filter(sigla='AL').get()
tipo_casa = TipoOrgao.objects.filter(sigla='AL').get()
for line in reader:
uf = UnidadeFederativa.objects.get(sigla=line[UF_COL])
@ -85,7 +85,7 @@ def migra_assembleias(filename):
telefone=line[FONE_1_COL]
)
if line[UF_COL] == 'DF':
casa.tipo = TipoCasaLegislativa.objects.filter(sigla='CT').get()
casa.tipo = TipoOrgao.objects.filter(sigla='CT').get()
casa.save()
if line[FONE_2_COL]:
@ -141,7 +141,7 @@ def migra_casas(filename):
reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True)
header = reader.next()
tipo_casa = TipoCasaLegislativa.objects.filter(sigla='CM').get()
tipo_casa = TipoOrgao.objects.filter(sigla='CM').get()
linenum = 1
for line in reader:
@ -368,7 +368,7 @@ def migra_convenios_assembleias(filename):
reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True)
header = reader.next()
linenum = 1
tipo_casa = TipoCasaLegislativa.objects.filter(sigla='AL').get()
tipo_casa = TipoOrgao.objects.filter(sigla='AL').get()
for line in reader:
linenum += 1
@ -417,11 +417,11 @@ def popula():
projeto3 = Projeto(sigla='PML', nome='Projeto Modernização Legislativo')
projeto3.save()
tipo1 = TipoCasaLegislativa(sigla='CM', nome='Câmara Municipal')
tipo1 = TipoOrgao(sigla='CM', nome='Câmara Municipal')
tipo1.save()
tipo2 = TipoCasaLegislativa(sigla='AL', nome='Assembléia Legislativa')
tipo2 = TipoOrgao(sigla='AL', nome='Assembléia Legislativa')
tipo2.save()
tipo3 = TipoCasaLegislativa(sigla='CT', nome='Câmara Distrital')
tipo3 = TipoOrgao(sigla='CT', nome='Câmara Distrital')
tipo3.save()

4
sigi/apps/casas/admin.py

@ -9,7 +9,7 @@ from django.utils.translation import ugettext as _
from image_cropping import ImageCroppingMixin
from sigi.apps.casas.forms import CasaLegislativaForm
from sigi.apps.casas.models import CasaLegislativa, Presidente, Funcionario, TipoCasaLegislativa
from sigi.apps.casas.models import CasaLegislativa, Presidente, Funcionario, TipoOrgao
from sigi.apps.casas.views import report_complete, labels_report, export_csv, \
labels_report_sem_presidente, report, \
adicionar_casas_carrinho
@ -433,4 +433,4 @@ class CasaLegislativaAdmin(ImageCroppingMixin, BaseModelAdmin):
admin.site.register(CasaLegislativa, CasaLegislativaAdmin)
admin.site.register(TipoCasaLegislativa)
admin.site.register(TipoOrgao)

4
sigi/apps/casas/models.py

@ -13,7 +13,7 @@ from sigi.apps.servidores.models import Servidor
from sigi.apps.utils import SearchField
class TipoCasaLegislativa(models.Model):
class TipoOrgao(models.Model):
""" Modelo para representar o tipo da Casa Legislativa
@ -49,7 +49,7 @@ class CasaLegislativa(models.Model):
# Guarda um campo para ser usado em buscas em caixa baixa e sem acento
search_text = SearchField(field_names=['nome'])
# search_text.projeto_filter = True
tipo = models.ForeignKey(TipoCasaLegislativa, verbose_name=_(u"Tipo"))
tipo = models.ForeignKey(TipoOrgao, verbose_name=_(u"Tipo"))
cnpj = models.CharField(_(u"CNPJ"), max_length=32, blank=True)
observacoes = models.TextField(_(u'observações'), blank=True)
horario_funcionamento = models.CharField(

84
sigi/apps/casas/views.py

@ -11,7 +11,7 @@ from django.shortcuts import render, get_object_or_404
from django.utils.translation import ugettext as _, ungettext
from sigi.apps.casas.forms import PortfolioForm
from sigi.apps.casas.models import CasaLegislativa, TipoCasaLegislativa
from sigi.apps.casas.models import CasaLegislativa, TipoOrgao
from sigi.apps.casas.reports import (CasasLegislativasLabels,
CasasLegislativasLabelsSemPresidente)
from sigi.apps.contatos.models import UnidadeFederativa, Mesorregiao, Microrregiao
@ -49,18 +49,18 @@ def get_for_qs(get, qs):
for k, v in get.iteritems():
if str(k) not in ('page', 'pop', 'q', '_popup', 'o', 'ot'):
kwargs[str(k)] = v
if 'convenio' in kwargs:
if kwargs['convenio'] == 'SC':
qs = qs.filter(convenio=None)
qs = qs.filter(convenio=None)
elif kwargs['convenio'] == 'CC':
qs = qs.exclude(convenio=None)
else:
qs = qs.filter(convenio__projeto_id=kwargs['convenio'])
qs = qs.distinct('municipio__uf__nome', 'nome')
del(kwargs['convenio'])
if 'servico' in kwargs:
if kwargs['servico'] == 'SS':
qs = qs.filter(servico=None)
@ -79,9 +79,9 @@ def get_for_qs(get, qs):
qs = qs.filter(servico__tipo_servico_id=kwargs['servico'])
qs = qs.distinct('municipio__uf__nome', 'nome')
del(kwargs['servico'])
qs = qs.filter(**kwargs)
if 'o' in get:
qs = query_ordena(qs, get['o'])
@ -291,10 +291,10 @@ def report(request, id=None, tipo=None):
if not qs:
return HttpResponseRedirect('../')
qs = qs.order_by('municipio__uf', 'nome')
context = {'casas': qs, 'title': _(u"Relação de Casas Legislativas")}
return render_to_pdf('casas/report_pdf.html', context)
@ -308,7 +308,7 @@ def report_complete(request, id=None):
if not qs:
return HttpResponseRedirect('../')
return render_to_pdf('casas/report_complete_pdf.html', {'casas': qs})
@ -323,7 +323,7 @@ def casas_sem_convenio_report(request):
qs = qs.order_by('municipio__uf', 'nome')
context = {'casas': qs, 'title': _(u"Casas sem convênio")}
return render_to_pdf('casas/report_pdf.html', context)
@ -426,21 +426,21 @@ def portfolio(request):
uf_id = request.GET.get('uf', None)
meso_id = request.GET.get('meso', None)
micro_id = request.GET.get('micro', None)
data = {}
data['errors'] = []
data['messages'] = []
data['regioes'] = UnidadeFederativa.REGIAO_CHOICES
data['tipos_casas'] = TipoCasaLegislativa.objects.all()
data['tipos_casas'] = TipoOrgao.objects.all()
casas = None
gerente = None
if tipo:
data['tipo'] = tipo
if micro_id:
microrregiao = get_object_or_404(Microrregiao, pk=micro_id)
mesorregiao = microrregiao.mesorregiao
mesorregiao = microrregiao.mesorregiao
uf = mesorregiao.uf
data['regiao'] = uf.regiao
data['uf_id'] = uf.pk
@ -489,25 +489,25 @@ def portfolio(request):
data['ufs'] = UnidadeFederativa.objects.filter(regiao=regiao)
data['form'] = PortfolioForm(
_(u'Atribuir casas da região {name} para').format(
name=[x[1] for x in UnidadeFederativa.REGIAO_CHOICES if
name=[x[1] for x in UnidadeFederativa.REGIAO_CHOICES if
x[0] == regiao][0]))
data['querystring'] = 'regiao={0}'.format(regiao)
casas = CasaLegislativa.objects.filter(municipio__uf__regiao=regiao)
if casas:
casas = casas.order_by('municipio__uf',
casas = casas.order_by('municipio__uf',
'municipio__microrregiao__mesorregiao',
'municipio__microrregiao', 'municipio')
casas.prefetch_related('municipio', 'municipio__uf',
'municipio__microrregiao',
'municipio__microrregiao__mesorregiao',
'gerentes_interlegis')
if tipo:
casas = casas.filter(tipo__sigla=tipo)
data['querystring'] += "&tipo={0}".format(tipo)
if request.method == 'POST':
form = PortfolioForm(data=request.POST)
if form.is_valid():
@ -515,7 +515,7 @@ def portfolio(request):
acao = form.cleaned_data['acao']
count = casas.count()
if acao == 'ADD':
gerente.casas_que_gerencia.add(*casas)
data['messages'].append(ungettext(
@ -534,14 +534,14 @@ def portfolio(request):
data['errors'].append(_(u"Ação não definida"))
else:
data['errors'].append(_(u"Dados inválidos"))
paginator = Paginator(casas, 30)
try:
pagina = paginator.page(page)
except (EmptyPage, InvalidPage):
pagina = paginator.page(paginator.num_pages)
data['page_obj'] = pagina
return render(request, 'casas/portfolio.html', data)
@ -552,13 +552,13 @@ def resumo_carteira(casas):
sem_produto = regioes.copy()
tipos_servico = TipoServico.objects.all()
dados = {ts.id: regioes.copy() for ts in tipos_servico}
for r in casas.values('municipio__uf__regiao').annotate(quantidade=Count('id')).order_by():
regiao = r['municipio__uf__regiao']
quantidade = r['quantidade']
total[regiao] = quantidade
total['total'] += quantidade
for r in casas.values('municipio__uf__regiao', 'servico__tipo_servico__id').annotate(quantidade=Count('id')).order_by():
regiao = r['municipio__uf__regiao']
servico = r['servico__tipo_servico__id']
@ -567,16 +567,16 @@ def resumo_carteira(casas):
sem_produto[regiao] = quantidade
sem_produto['total'] += quantidade
else:
dados[servico][regiao] = quantidade
dados[servico][regiao] = quantidade
dados[servico]['total'] += quantidade
dados_ocorrencia = {
'registradas': regioes.copy(),
'pendentes': regioes.copy(),
'sem': regioes.copy(),
'media': regioes.copy(),
}
for r in casas.values('ocorrencia__status', 'municipio__uf__regiao').annotate(quantidade=Count('id')).order_by():
status = r['ocorrencia__status']
regiao = r['municipio__uf__regiao']
@ -590,13 +590,13 @@ def resumo_carteira(casas):
if status in [Ocorrencia.STATUS_ABERTO, Ocorrencia.STATUS_REABERTO]:
dados_ocorrencia['pendentes'][regiao] += quantidade
dados_ocorrencia['pendentes']['total'] += quantidade
for r in regioes:
if (total[r] - dados_ocorrencia['sem'][r]) == 0:
dados_ocorrencia['media'][r] = 0
else:
dados_ocorrencia['media'][r] = (1.0 * dados_ocorrencia['registradas'][r] / (total[r] - dados_ocorrencia['sem'][r]))
resumo = [[_(u"Item"), _(u"Total nacional")] + [r[1] for r in UnidadeFederativa.REGIAO_CHOICES]]
resumo.append([_(u"Casas em sua carteira"), total['total']] + [total[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
resumo.append({'subtitle': _(u"Uso dos produtos Interlegis")})
@ -619,7 +619,7 @@ def casas_carteira(request, casas, context):
micro_id = request.GET.get('micro', None)
servicos = request.GET.getlist('servico')
tipos_servico = context['servicos']
context['qs_regiao'] = ''
if micro_id is not None:
@ -644,12 +644,12 @@ def casas_carteira(request, casas, context):
context['regiao'] = sigla_regiao
context['qs_regiao'] = 'r=%s' % sigla_regiao
casas = casas.filter(municipio__uf__regiao=sigla_regiao)
if 'regiao' in context:
context['ufs'] = UnidadeFederativa.objects.filter(regiao=context['regiao'])
todos_servicos = ['_none_'] + [s.sigla for s in tipos_servico]
if not servicos or set(servicos) == set(todos_servicos):
servicos = todos_servicos
context['qs_servico'] = ''
@ -660,9 +660,9 @@ def casas_carteira(request, casas, context):
casas = casas.filter(servico__tipo_servico__sigla__in=servicos)
casas = casas.distinct('nome', 'municipio__uf')
context['qs_servico'] = "&".join(['servico=%s' % s for s in servicos])
context['servicos_check'] = servicos
casas = casas.select_related('municipio', 'municipio__uf', 'municipio__microrregiao', 'municipio__microrregiao__mesorregiao').prefetch_related('servico_set')
return casas, context
@ -675,7 +675,7 @@ def painel_relacionamento(request):
seletor = request.GET.get('s', None)
servidor = request.GET.get('servidor', None)
fmt = request.GET.get('f', 'html')
if servidor is None:
gerente = request.user.servidor
elif servidor == '_all':
@ -689,7 +689,7 @@ def painel_relacionamento(request):
if gerente is None or not casas.exists():
casas = CasaLegislativa.objects.exclude(gerentes_interlegis=None)
gerente = None
tipos_servico = TipoServico.objects.all()
regioes = UnidadeFederativa.REGIAO_CHOICES
@ -702,11 +702,11 @@ def painel_relacionamento(request):
'gerente': gerente,
'qs_servidor': ('servidor=%s' % gerente.pk) if gerente else '',
}
if snippet != 'lista':
context['resumo'] = resumo_carteira(casas)
if snippet != 'resumo':
if snippet != 'resumo':
casas, context = casas_carteira(request, casas, context)
paginator = Paginator(casas, 30)
try:
@ -743,5 +743,5 @@ def painel_relacionamento(request):
return render(request, 'casas/lista_casas_carteira_snippet.html', context)
if snippet == 'resumo':
return render(request, 'casas/resumo_carteira_snippet.html', context)
return render(request, 'casas/painel.html', context)

Loading…
Cancel
Save