Browse Source

Retirado django.utils.simplejson (p django 1.7)

TODO: refatorar para retirar o nome simplejson totalmente
producao
Marcio Mazza 10 years ago
parent
commit
5f761aabfe
  1. 5
      sigi/apps/diagnosticos/views.py
  2. 94
      sigi/apps/metas/views.py
  3. 32
      sigi/apps/servicos/views.py

5
sigi/apps/diagnosticos/views.py

@ -1,10 +1,9 @@
# -*- coding: utf8 -*- # -*- coding: utf8 -*-
import json
from itertools import cycle from itertools import cycle
from django.http import HttpResponse from django.http import HttpResponse
from django.utils import simplejson import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
from django.shortcuts import render_to_response, get_object_or_404 from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext from django.template import RequestContext
from django.views.decorators.cache import never_cache from django.views.decorators.cache import never_cache
@ -341,4 +340,4 @@ def municipios_diagnosticados(self):
'fim': d.data_visita_fim, 'equipe': "<ul><li>" + "</li><li>".join([m.user.get_full_name() for m in d.membros]) + "</li></ul>",} 'fim': d.data_visita_fim, 'equipe': "<ul><li>" + "</li><li>".join([m.user.get_full_name() for m in d.membros]) + "</li></ul>",}
municipios.append(municipio) municipios.append(municipio)
return HttpResponse(simplejson.dumps(municipios), mimetype="application/json") return HttpResponse(simplejson.dumps(municipios), mimetype="application/json")

94
sigi/apps/metas/views.py

@ -4,7 +4,7 @@ import os
from django.http import HttpResponse from django.http import HttpResponse
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.utils import simplejson import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
from django.utils.datastructures import SortedDict from django.utils.datastructures import SortedDict
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.template import RequestContext from django.template import RequestContext
@ -35,23 +35,23 @@ def dashboard(request):
dados = SortedDict() dados = SortedDict()
projetos = Projeto.objects.all() projetos = Projeto.objects.all()
meses = Desembolso.objects.dates('data', 'month', 'DESC')[:6] meses = Desembolso.objects.dates('data', 'month', 'DESC')[:6]
colors = ['ffff00', 'cc7900', 'ff0000', '92d050', '006600', '0097cc', '002776', 'ae78d6', 'ff00ff', '430080', colors = ['ffff00', 'cc7900', 'ff0000', '92d050', '006600', '0097cc', '002776', 'ae78d6', 'ff00ff', '430080',
'28d75c', '0000ff', 'fff200'] '28d75c', '0000ff', 'fff200']
for date in reversed(meses): for date in reversed(meses):
mes_ano = '%s/%s' % (date.month, date.year) mes_ano = '%s/%s' % (date.month, date.year)
dados[mes_ano] = 0 dados[mes_ano] = 0
for p in projetos: for p in projetos:
matriz[p.id] = (p.sigla, dados.copy()) matriz[p.id] = (p.sigla, dados.copy())
for date in meses: for date in meses:
mes_ano = '%s/%s' % (date.month, date.year) mes_ano = '%s/%s' % (date.month, date.year)
for d in Desembolso.objects.filter(data__year=date.year, data__month=date.month).values('projeto').annotate(total_dolar=Sum('valor_dolar')): for d in Desembolso.objects.filter(data__year=date.year, data__month=date.month).values('projeto').annotate(total_dolar=Sum('valor_dolar')):
if int(d['total_dolar']) > desembolsos_max: if int(d['total_dolar']) > desembolsos_max:
desembolsos_max = int(d['total_dolar']) desembolsos_max = int(d['total_dolar'])
matriz[d['projeto']][1][mes_ano] += int(d['total_dolar']) matriz[d['projeto']][1][mes_ano] += int(d['total_dolar'])
meses = ["%s/%s" % (m.month, m.year) for m in reversed(meses)] meses = ["%s/%s" % (m.month, m.year) for m in reversed(meses)]
extra_context = {'desembolsos': matriz, 'desembolsos_max': desembolsos_max, 'meses': meses, 'colors': ','.join(colors[:len(matriz)])} extra_context = {'desembolsos': matriz, 'desembolsos_max': desembolsos_max, 'meses': meses, 'colors': ','.join(colors[:len(matriz)])}
return render_to_response('metas/dashboard.html', extra_context, context_instance=RequestContext(request)) return render_to_response('metas/dashboard.html', extra_context, context_instance=RequestContext(request))
@ -60,19 +60,19 @@ def mapa(request):
""" """
Mostra o mapa com filtros carregados com valores default Mostra o mapa com filtros carregados com valores default
""" """
regiao_choices = UnidadeFederativa.REGIAO_CHOICES regiao_choices = UnidadeFederativa.REGIAO_CHOICES
estado_choices = UnidadeFederativa.objects.all() estado_choices = UnidadeFederativa.objects.all()
servico_choices = TipoServico.objects.all() servico_choices = TipoServico.objects.all()
projeto_choices = Projeto.objects.all() projeto_choices = Projeto.objects.all()
seit = [ ts.sigla for ts in servico_choices] seit = [ ts.sigla for ts in servico_choices]
convenios = ['PML'] # Apenas o ultimo #hardcoded #fixme convenios = ['PML'] # Apenas o ultimo #hardcoded #fixme
equipadas = [] #[p.sigla for p in projeto_choices] equipadas = [] #[p.sigla for p in projeto_choices]
diagnosticos = ['P'] # choices: ["A", "P"] diagnosticos = ['P'] # choices: ["A", "P"]
regioes = [r[0] for r in regiao_choices] regioes = [r[0] for r in regiao_choices]
estados = [] estados = []
extra_context = { extra_context = {
'seit': seit, 'seit': seit,
'convenios': convenios, 'convenios': convenios,
@ -85,7 +85,7 @@ def mapa(request):
'servico_choices': servico_choices, 'servico_choices': servico_choices,
'projeto_choices': projeto_choices, 'projeto_choices': projeto_choices,
} }
return render_to_response('metas/mapa.html', extra_context, context_instance=RequestContext(request)) return render_to_response('metas/mapa.html', extra_context, context_instance=RequestContext(request))
@ -96,13 +96,13 @@ def map_data(request):
Tenta ler esse json do arquivo JSON_FILE_NAME. Se não encontrar, chama a rotina Tenta ler esse json do arquivo JSON_FILE_NAME. Se não encontrar, chama a rotina
gera_map_data_file(). gera_map_data_file().
""" """
try: try:
file = open(JSON_FILE_NAME, 'r') file = open(JSON_FILE_NAME, 'r')
json = file.read() json = file.read()
except: except:
json = gera_map_data_file() json = gera_map_data_file()
return HttpResponse(json, mimetype="application/json") return HttpResponse(json, mimetype="application/json")
def map_search(request): def map_search(request):
@ -116,7 +116,7 @@ def map_search(request):
casas = CasaLegislativa.objects.filter(search_text__icontains=to_ascii(q)) casas = CasaLegislativa.objects.filter(search_text__icontains=to_ascii(q))
if casas.count() > 0: if casas.count() > 0:
response = {'result': 'FOUND', 'ids': [c.pk for c in casas]} response = {'result': 'FOUND', 'ids': [c.pk for c in casas]}
return HttpResponse(simplejson.dumps(response), mimetype="application/json") return HttpResponse(simplejson.dumps(response), mimetype="application/json")
@cache_page(86400) # Cache de um dia (24 horas = 86400 segundos) @cache_page(86400) # Cache de um dia (24 horas = 86400 segundos)
@ -124,7 +124,7 @@ def map_sum(request):
# Filtrar Casas de acordo com os parâmetros # Filtrar Casas de acordo com os parâmetros
param = get_params(request) param = get_params(request)
casas = filtrar_casas(**param) casas = filtrar_casas(**param)
# Montar registros de totalização # Montar registros de totalização
tot_servicos = SortedDict() tot_servicos = SortedDict()
tot_projetos = SortedDict() tot_projetos = SortedDict()
@ -134,17 +134,17 @@ def map_sum(request):
tot_servicos[ts.sigla] = 0 tot_servicos[ts.sigla] = 0
for pr in Projeto.objects.all(): for pr in Projeto.objects.all():
tot_projetos[pr.sigla] = 0 tot_projetos[pr.sigla] = 0
tot_convenios = tot_projetos.copy() tot_convenios = tot_projetos.copy()
tot_equipadas = tot_projetos.copy() tot_equipadas = tot_projetos.copy()
tot_diagnosticos['A'] = 0 tot_diagnosticos['A'] = 0
tot_diagnosticos['P'] = 0 tot_diagnosticos['P'] = 0
# Montar as linhas do array de resultados com as regiões e os estados # Montar as linhas do array de resultados com as regiões e os estados
result = {} result = {}
for uf in UnidadeFederativa.objects.filter(Q(regiao__in=param['regioes']) | Q(sigla__in=param['estados'])).order_by('regiao', 'nome'): for uf in UnidadeFederativa.objects.filter(Q(regiao__in=param['regioes']) | Q(sigla__in=param['estados'])).order_by('regiao', 'nome'):
if not result.has_key(uf.regiao): if not result.has_key(uf.regiao):
result[uf.regiao] = {'nome': uf.get_regiao_display(), 'ufs': {}, 'servicos': tot_servicos.copy(), result[uf.regiao] = {'nome': uf.get_regiao_display(), 'ufs': {}, 'servicos': tot_servicos.copy(),
@ -154,7 +154,7 @@ def map_sum(request):
'convenios': tot_projetos.copy(), 'equipadas': tot_projetos.copy(), 'convenios': tot_projetos.copy(), 'equipadas': tot_projetos.copy(),
'diagnosticos': tot_diagnosticos.copy()} 'diagnosticos': tot_diagnosticos.copy()}
# Processar as casas filtradas # Processar as casas filtradas
for casa in casas.distinct(): for casa in casas.distinct():
uf = casa.municipio.uf uf = casa.municipio.uf
@ -179,7 +179,7 @@ def map_sum(request):
tot_diagnosticos['A'] += 1 tot_diagnosticos['A'] += 1
result[uf.regiao]['diagnosticos']['A'] += 1 result[uf.regiao]['diagnosticos']['A'] += 1
result[uf.regiao]['ufs'][uf.codigo_ibge]['diagnosticos']['A'] += 1 result[uf.regiao]['ufs'][uf.codigo_ibge]['diagnosticos']['A'] += 1
extra_context = { extra_context = {
'pagesize': 'a4 landscape', 'pagesize': 'a4 landscape',
'servicos': TipoServico.objects.all(), 'servicos': TipoServico.objects.all(),
@ -189,7 +189,7 @@ def map_sum(request):
'tot_convenios': tot_convenios, 'tot_convenios': tot_convenios,
'tot_equipadas': tot_equipadas, 'tot_equipadas': tot_equipadas,
'tot_diagnosticos': tot_diagnosticos, 'tot_diagnosticos': tot_diagnosticos,
} }
return render_to_pdf('metas/map_sum.html', extra_context) return render_to_pdf('metas/map_sum.html', extra_context)
@cache_page(86400) # Cache de um dia (24 horas = 86400 segundos) @cache_page(86400) # Cache de um dia (24 horas = 86400 segundos)
@ -208,16 +208,16 @@ def map_list(request):
srv = {} srv = {}
for ts in TipoServico.objects.all(): for ts in TipoServico.objects.all():
srv[ts.pk] = ts.nome srv[ts.pk] = ts.nome
cnv = {} cnv = {}
for pr in Projeto.objects.all(): for pr in Projeto.objects.all():
cnv[pr.id] = pr.sigla cnv[pr.id] = pr.sigla
writer.writerow([u'codigo_ibge', u'nome_casa', u'municipio', u'uf', u'regiao',] + [x for x in srv.values()] + writer.writerow([u'codigo_ibge', u'nome_casa', u'municipio', u'uf', u'regiao',] + [x for x in srv.values()] +
reduce(lambda x,y: x+y, [['conveniada ao %s' % x, 'equipada por %s' % x] for x in cnv.values()])) reduce(lambda x,y: x+y, [['conveniada ao %s' % x, 'equipada por %s' % x] for x in cnv.values()]))
for casa in casas: for casa in casas:
row = [casa.municipio.codigo_ibge, casa.nome, casa.municipio.nome, casa.municipio.uf.sigla, row = [casa.municipio.codigo_ibge, casa.nome, casa.municipio.nome, casa.municipio.uf.sigla,
casa.municipio.uf.get_regiao_display(),] casa.municipio.uf.get_regiao_display(),]
for id in srv.keys(): for id in srv.keys():
try: try:
@ -231,16 +231,16 @@ def map_list(request):
row += [cv.data_retorno_assinatura, cv.data_termo_aceite if cv.equipada else None,] row += [cv.data_retorno_assinatura, cv.data_termo_aceite if cv.equipada else None,]
except: except:
row += [None, None,] row += [None, None,]
writer.writerow(row) writer.writerow(row)
return response return response
return render_to_pdf('metas/map_list.html', {'casas': casas}) return render_to_pdf('metas/map_list.html', {'casas': casas})
#---------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------
# Funções auxiliares - não são views # Funções auxiliares - não são views
#---------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------
def get_params(request): def get_params(request):
''' Pegar parâmetros da pesquisa ''' ''' Pegar parâmetros da pesquisa '''
@ -248,7 +248,7 @@ def get_params(request):
'seit' : request.GET.getlist('seit'), 'seit' : request.GET.getlist('seit'),
'convenios' : request.GET.getlist('convenios'), 'convenios' : request.GET.getlist('convenios'),
'equipadas' : request.GET.getlist('equipadas'), 'equipadas' : request.GET.getlist('equipadas'),
'diagnosticos' : request.GET.getlist('diagnosticos'), 'diagnosticos' : request.GET.getlist('diagnosticos'),
'regioes' : request.GET.getlist('regioes'), 'regioes' : request.GET.getlist('regioes'),
'estados' : request.GET.getlist('estados'), 'estados' : request.GET.getlist('estados'),
} }
@ -260,14 +260,14 @@ def filtrar_casas(seit, convenios, equipadas, regioes, estados, diagnosticos):
qEquipada = Q(convenio__projeto__sigla__in=equipadas, convenio__equipada=True) qEquipada = Q(convenio__projeto__sigla__in=equipadas, convenio__equipada=True)
qRegiao = Q(municipio__uf__regiao__in=regioes) qRegiao = Q(municipio__uf__regiao__in=regioes)
qEstado = Q(municipio__uf__sigla__in=estados) qEstado = Q(municipio__uf__sigla__in=estados)
if diagnosticos: if diagnosticos:
qDiagnostico = Q(diagnostico__publicado__in=[p == 'P' for p in diagnosticos]) qDiagnostico = Q(diagnostico__publicado__in=[p == 'P' for p in diagnosticos])
else: else:
qDiagnostico = Q() qDiagnostico = Q()
casas = CasaLegislativa.objects.filter(qServico | qConvenio | qEquipada | qDiagnostico).filter(qRegiao | qEstado) casas = CasaLegislativa.objects.filter(qServico | qConvenio | qEquipada | qDiagnostico).filter(qRegiao | qEstado)
return casas return casas
def gera_map_data_file(cronjob=False): def gera_map_data_file(cronjob=False):
@ -275,17 +275,17 @@ def gera_map_data_file(cronjob=False):
Este arquivo será consumido pela view de dados de mapa. Este arquivo será consumido pela view de dados de mapa.
Retorna os dados json caso cronjob seja falso. Retorna os dados json caso cronjob seja falso.
Caso cronjob seja True, retorna log de tempo gasto na geração ou a mensagem do erro Caso cronjob seja True, retorna log de tempo gasto na geração ou a mensagem do erro
que impediu a gravação do arquivo. que impediu a gravação do arquivo.
''' '''
import time import time
start = time.time() start = time.time()
casas = {} casas = {}
for c in CasaLegislativa.objects.select_related('servico', 'convenio', 'diagnostico').all().distinct(): for c in CasaLegislativa.objects.select_related('servico', 'convenio', 'diagnostico').all().distinct():
if c.servico_set.count() == 0 and c.convenio_set.count() == 0 and c.diagnostico_set.count() == 0: if c.servico_set.count() == 0 and c.convenio_set.count() == 0 and c.diagnostico_set.count() == 0:
continue; # Salta essa casa, pois ela não tem nada com o Interlegis continue; # Salta essa casa, pois ela não tem nada com o Interlegis
if not casas.has_key(c.pk): if not casas.has_key(c.pk):
casa = { casa = {
'nome': c.nome + ', ' + c.municipio.uf.sigla, 'nome': c.nome + ', ' + c.municipio.uf.sigla,
@ -294,19 +294,19 @@ def gera_map_data_file(cronjob=False):
'lng': str(c.municipio.longitude), 'lng': str(c.municipio.longitude),
'estado': c.municipio.uf.sigla, 'estado': c.municipio.uf.sigla,
'regiao': c.municipio.uf.regiao, 'regiao': c.municipio.uf.regiao,
'diagnosticos': [], 'diagnosticos': [],
'seit': [], 'seit': [],
'convenios': [], 'convenios': [],
'equipadas': [], 'equipadas': [],
'info': [] 'info': []
} }
for sv in c.servico_set.all(): for sv in c.servico_set.all():
casa['info'].append(u"%s ativado em %s <a href='%s' target='_blank'><img src='%simg/link.gif' alt='link'></a>" % ( casa['info'].append(u"%s ativado em %s <a href='%s' target='_blank'><img src='%simg/link.gif' alt='link'></a>" % (
sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y') if sv.data_ativacao else sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y') if sv.data_ativacao else
u'<sem data de ativação>', sv.url, STATIC_URL)) u'<sem data de ativação>', sv.url, STATIC_URL))
casa['seit'].append(sv.tipo_servico.sigla) casa['seit'].append(sv.tipo_servico.sigla)
for cv in c.convenio_set.all(): for cv in c.convenio_set.all():
if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None): if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None):
casa['info'].append(u"Equipada em %s pelo %s" % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla)) casa['info'].append(u"Equipada em %s pelo %s" % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla))
@ -318,19 +318,19 @@ def gera_map_data_file(cronjob=False):
casa['info'].append(u"Conveniada ao %s em %s e equipada em %s" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y'))) casa['info'].append(u"Conveniada ao %s em %s e equipada em %s" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y')))
casa['equipadas'].append(cv.projeto.sigla) casa['equipadas'].append(cv.projeto.sigla)
casa['convenios'].append(cv.projeto.sigla) casa['convenios'].append(cv.projeto.sigla)
for dg in c.diagnostico_set.all(): for dg in c.diagnostico_set.all():
casa['diagnosticos'].append('P' if dg.publicado else 'A') casa['diagnosticos'].append('P' if dg.publicado else 'A')
casa['info'].append(u'Diagnosticada no período de %s a %s' % (dg.data_visita_inicio.strftime('%d/%m/%Y') if casa['info'].append(u'Diagnosticada no período de %s a %s' % (dg.data_visita_inicio.strftime('%d/%m/%Y') if
dg.data_visita_inicio is not None else u"<sem data de início>", dg.data_visita_inicio is not None else u"<sem data de início>",
dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else u"<sem data de término>")) dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else u"<sem data de término>"))
casa['info'] = "<br/>".join(casa['info']) casa['info'] = "<br/>".join(casa['info'])
casas[c.pk] = casa casas[c.pk] = casa
json_data = simplejson.dumps(casas) json_data = simplejson.dumps(casas)
try: try:
file = open(JSON_FILE_NAME, 'w') file = open(JSON_FILE_NAME, 'w')
file.write(json_data) file.write(json_data)
@ -340,7 +340,7 @@ def gera_map_data_file(cronjob=False):
return str(e) return str(e)
else: else:
pass # ... ou os dados poderão ser usados de qualquer forma pass # ... ou os dados poderão ser usados de qualquer forma
if cronjob: if cronjob:
return "Arquivo %s gerado em %d segundos" % (JSON_FILE_NAME, time.time() - start) return "Arquivo %s gerado em %d segundos" % (JSON_FILE_NAME, time.time() - start)

32
sigi/apps/servicos/views.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django import forms from django import forms
from django.http import HttpResponse from django.http import HttpResponse
from django.utils import simplejson import json as simplejson # XXX trocar isso por simplesmente import json e refatorar o codigo
from django.shortcuts import render_to_response, get_object_or_404 from django.shortcuts import render_to_response, get_object_or_404
from django.db.models import Q from django.db.models import Q
from sigi.apps.servicos.models import TipoServico, CasaAtendida, CasaManifesta, ServicoManifesto from sigi.apps.servicos.models import TipoServico, CasaAtendida, CasaManifesta, ServicoManifesto
from sigi.apps.contatos.models import UnidadeFederativa from sigi.apps.contatos.models import UnidadeFederativa
from sigi.apps.casas.models import CasaLegislativa from sigi.apps.casas.models import CasaLegislativa
from django.template.context import RequestContext from django.template.context import RequestContext
@ -17,7 +17,7 @@ from django.views.generic.base import TemplateView
class MapaView(TemplateView): class MapaView(TemplateView):
template_name = "servicos/mapa.html" template_name = "servicos/mapa.html"
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
@ -29,15 +29,15 @@ class MapaView(TemplateView):
def municipios_atendidos(self, servico): def municipios_atendidos(self, servico):
municipios = [] municipios = []
servico = servico.upper() servico = servico.upper()
query = Q() query = Q()
if servico != 'ALL': if servico != 'ALL':
for sigla in servico.split('_'): for sigla in servico.split('_'):
query = query | Q(tipo_servico__sigla=sigla) query = query | Q(tipo_servico__sigla=sigla)
query = Q(data_desativacao=None) & query query = Q(data_desativacao=None) & query
for casa in CasaAtendida.objects.all(): for casa in CasaAtendida.objects.all():
if casa.servico_set.filter(query).exists(): if casa.servico_set.filter(query).exists():
m = casa.municipio m = casa.municipio
@ -69,15 +69,15 @@ class CasaManifestaProtoForm(forms.Form):
field_line.append(bf) field_line.append(bf)
field_lines.append(field_line) field_lines.append(field_line)
result.append({'name': name, 'lines': field_lines},) result.append({'name': name, 'lines': field_lines},)
self.fieldsets = result self.fieldsets = result
def casa_manifesta_view(request): def casa_manifesta_view(request):
if 'casa_id' in request.GET: if 'casa_id' in request.GET:
casa_id = request.GET.get('casa_id') casa_id = request.GET.get('casa_id')
casa = get_object_or_404(CasaLegislativa, pk=casa_id) casa = get_object_or_404(CasaLegislativa, pk=casa_id)
# Criar um formulário dinâmico # Criar um formulário dinâmico
campos = {} campos = {}
fieldsets = ((None, ('informante', 'cargo', 'email'),),) fieldsets = ((None, ('informante', 'cargo', 'email'),),)
@ -86,9 +86,9 @@ def casa_manifesta_view(request):
campos['url_%s' % ts.pk] = forms.URLField(label=u'Informe a URL', required=False) campos['url_%s' % ts.pk] = forms.URLField(label=u'Informe a URL', required=False)
campos['hospedagem_interlegis_%s' % ts.pk] = forms.BooleanField(label=u'Serviço está hospedado no Interlegis', required=False) campos['hospedagem_interlegis_%s' % ts.pk] = forms.BooleanField(label=u'Serviço está hospedado no Interlegis', required=False)
fieldsets += ((ts.nome, ('possui_%s' % ts.pk, 'url_%s' % ts.pk, 'hospedagem_interlegis_%s' % ts.pk )),) fieldsets += ((ts.nome, ('possui_%s' % ts.pk, 'url_%s' % ts.pk, 'hospedagem_interlegis_%s' % ts.pk )),)
CasaManifestaForm = type('', (CasaManifestaProtoForm,), campos) CasaManifestaForm = type('', (CasaManifestaProtoForm,), campos)
if request.method == 'POST': if request.method == 'POST':
cmf = CasaManifestaForm(request.POST) cmf = CasaManifestaForm(request.POST)
if cmf.is_valid(): if cmf.is_valid():
@ -124,15 +124,15 @@ def casa_manifesta_view(request):
'email': cm.email, 'email': cm.email,
} }
for sm in cm.servicomanifesto_set.all(): for sm in cm.servicomanifesto_set.all():
values['possui_%s' % sm.servico.pk] = True values['possui_%s' % sm.servico.pk] = True
values['url_%s' % sm.servico.pk] = sm.url values['url_%s' % sm.servico.pk] = sm.url
values['hospedagem_interlegis_%s' % sm.servico.pk] = sm.hospedagem_interlegis values['hospedagem_interlegis_%s' % sm.servico.pk] = sm.hospedagem_interlegis
cmf = CasaManifestaForm(values) cmf = CasaManifestaForm(values)
except: except:
cmf = CasaManifestaForm() cmf = CasaManifestaForm()
cmf.set_fieldsets(fieldsets) cmf.set_fieldsets(fieldsets)
extra_context = {'casa': casa, 'cmf': cmf} extra_context = {'casa': casa, 'cmf': cmf}
elif 'uf' in request.GET: elif 'uf' in request.GET:
uf = request.GET.get('uf') uf = request.GET.get('uf')
@ -140,4 +140,4 @@ def casa_manifesta_view(request):
else: else:
extra_context = {'uf_list': UnidadeFederativa.objects.all()} extra_context = {'uf_list': UnidadeFederativa.objects.all()}
return render_to_response('servicos/casa_manifesta.html', extra_context, context_instance=RequestContext(request)) return render_to_response('servicos/casa_manifesta.html', extra_context, context_instance=RequestContext(request))

Loading…
Cancel
Save