diff --git a/sigi/apps/diagnosticos/admin.py b/sigi/apps/diagnosticos/admin.py
index 1712396..3025779 100644
--- a/sigi/apps/diagnosticos/admin.py
+++ b/sigi/apps/diagnosticos/admin.py
@@ -56,7 +56,8 @@ class DiagnosticoAdmin(BaseEntityAdmin):
eav_fieldsets = (
(u'00. Identificação do Diagnóstico', {'fields': ('responsavel', 'data_visita_inicio', 'data_visita_fim',)}),
(u'01. Identificação da Casa Legislativa', {'fields': ('casa_legislativa',)}),
- (u'02. Identificação de Competências da Casa Legislativa', {'fields': ()}))
+ (u'02. Identificação de Competências da Casa Legislativa', {'fields': ()})
+ )
# popula o eav fieldsets ordenando as categorias e as perguntas
# para serem exibidas no admin
@@ -65,10 +66,11 @@ class DiagnosticoAdmin(BaseEntityAdmin):
perguntas_by_title = [(p.title, p.name) for p in categoria.perguntas.all()]
perguntas = [pergunta[1] for pergunta in sorted(perguntas_by_title)]
- eav_fieldsets.append((categoria, {
+ eav_fieldsets += ((categoria, {
'fields': tuple(perguntas),
'classes': ['collapse']
- }))
+ }),)
+
def get_uf(self, obj):
return '%s' % (obj.casa_legislativa.municipio.uf)
diff --git a/sigi/apps/diagnosticos/models.py b/sigi/apps/diagnosticos/models.py
index d15ee8e..f394795 100644
--- a/sigi/apps/diagnosticos/models.py
+++ b/sigi/apps/diagnosticos/models.py
@@ -19,7 +19,7 @@ class Diagnostico(BaseEntity):
# campo de busca em caixa baixa e sem acento
search_text = SearchField(field_names=['casa_legislativa'])
casa_legislativa.casa_uf_filter = True
-# casa_legislativa.casa_tipo_filter = True
+ # casa_legislativa.casa_tipo_filter = True
data_visita_inicio = models.DateField(
u'data inicial da visita',
null=True,
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnostico_pdf.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnostico_pdf.html
new file mode 100644
index 0000000..a53c871
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnostico_pdf.html
@@ -0,0 +1,233 @@
+{% load smart_if %}
+
+
+
+
+ Diagnóstico em PDF
+
+
+
+
+
+
+
+
+
+ PROJETO DE MODERNIZAÇÃO DO LEGISLATIVO
+
+
+ QUESTIONÁRIO DE DIAGNÓSTICO
+
+
+ {{ diagnostico.casa_legislativa }} - {{ diagnostico.casa_legislativa.municipio.uf.sigla }}
+
+
+
Data do Questionário:
+
De {{diagnostico.data_visita_inicio}} à {{diagnostico.data_visita_fim}}
+
+
Chefe da equipe de diagnóstico:
+
{{diagnostico.responsavel}}
+
+
Membros da equipe de diagnóstico:
+ {% for membro in diagnostico.equipe_set.all %}
+
{{membro}}
+ {% endfor %}
+
+ {% for funcionario in funcionarios %}
+ {% if funcionario.setor == 'contato_interlegis' %}
+
Nome do responsável pelas Informações:
+
{{funcionario.nome|default_if_none:""}}
+
Cargo / função do responsável pelas informações:
+
{{funcionario.cargo|default_if_none:""}} / {{funcionario.funcao|default_if_none:""}}
+
E-mail do responsável pelas informações:
+
{{funcionario.email|default_if_none:""}}
+ {% for telefone in funcionario.telefones.all %}
+
Telefone {{telefone.get_tipo_display}} do responsável pelas informações
+
{{telefone}}
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+
+
+
+
+
+
+
Bloco 01. Identificação da {{casa_legislativa.tipo}}
+
+
01. Municipio - Estado:
+
{{casa_legislativa.municipio|default_if_none:""}}
+
+
02. Data de criação do Município:
+
{{casa_legislativa.municipio.data_criacao|default_if_none:""}}
+
+
03. Nome da {{casa_legislativa.tipo}}
+
{{casa_legislativa.municipio.nome|default_if_none:""}}
+
+
04. Data de instalação da {{casa_legislativa.tipo}}
+
{{casa_legislativa.data_instalacao|default_if_none:""}}
+
+
05. Endereço:
+
{{casa_legislativa.logradouro|default_if_none:""}} - {{casa_legislativa.cep|default_if_none:""}}
+
+
06. CNPJ:
+
{{casa_legislativa.cnpj|default_if_none:""}}
+
+
07. E-mail:
+
{{casa_legislativa.email|default_if_none:""}}
+
+
08. Página web:
+
{{casa_legislativa.pagina_web|default_if_none:""}}
+
+
+
+
Bloco 02. Identificação de Competências na Câmara Municipal
+ {% for funcionario in funcionarios %}
+
+
{{funcionario.get_setor_display}}
+
Nome completo: {{funcionario.nome|default_if_none:""}}
+
E-mail: {{funcionario.email|default_if_none:""}}
+
Tempo de serviço: {{funcionario.tempo_de_servico|default_if_none:""}}
+
+ {% for telefone in funcionario.telefones.all %}
+
Telefone {{telefone.get_tipo_display}}: {{telefone}}
+ {% endfor %}
+
+ {% endfor %}
+
+
+ {% for categoria, schemas in schemas_by_categoria %}
+
+
Bloco {{categoria.nome}}
+ {% for schema in schemas %}
+
+
{{ schema.title }}
+ {% if schema.datatype == schema.TYPE_MANY or schema.datatype == schema.TYPE_ONE %}
+
+ {% for choice in schema.get_choices %}
+ {% if choice.pk in schema.value %}
+ {{ choice.title }}
+ {% else %}
+ {{ choice.title }}
+ {% endif %}
+ {% endfor %}
+
+ {% else %}
+
+ {% if schema.datatype == schema.TYPE_FLOAT %}
+ {{ schema.value|floatformat|default_if_none:"sem resposta"}}
+ {% else %}
+ {{ schema.value|default_if_none:"sem resposta"}}
+ {% endif %}
+
+ {% endif %}
+
+ {% endfor %}
+
+ {% endfor %}
+
+
+
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categoria_casa_legislativa_form.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categoria_casa_legislativa_form.html
new file mode 100644
index 0000000..ca07c66
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categoria_casa_legislativa_form.html
@@ -0,0 +1,46 @@
+{% extends "base_mobile.html" %}
+
+{% block media %}
+ {{ block.super }}
+
+{% endblock %}
+
+{% block cabecalho %}
+ 01. Identificação da Camara Municipal
+ Voltar
+{% endblock cabecalho %}
+
+{% block corpo %}
+ {% if form %}
+
+
+
Aguarde carregando perguntas para essa categoria...
+
+
+ {% else %}
+ Nenhuma existem perguntas para essa categoria.
+ {% endif %}
+{% endblock corpo %}
+
+{% block rodape %}
+ {{ block.super }}
+ Listar
+ Sair
+{% endblock rodape %}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categoria_contatos_form.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categoria_contatos_form.html
new file mode 100644
index 0000000..c2b8e51
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categoria_contatos_form.html
@@ -0,0 +1,52 @@
+{% extends "base_mobile.html" %}
+
+{% block media %}
+ {{ block.super }}
+
+{% endblock %}
+
+{% block cabecalho %}
+ 02. Identificação de Competências
+ Voltar
+{% endblock cabecalho %}
+
+{% block corpo %}
+
+
+
Aguarde carregando perguntas para essa categoria...
+
+
+{% endblock corpo %}
+
+{% block rodape %}
+ {{ block.super }}
+ Listar
+ Sair
+{% endblock rodape %}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categorias_form.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categorias_form.html
new file mode 100644
index 0000000..44109e1
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categorias_form.html
@@ -0,0 +1,46 @@
+{% extends "base_mobile.html" %}
+
+{% block media %}
+ {{ block.super }}
+
+{% endblock %}
+
+{% block cabecalho %}
+ {{ categoria.nome }}
+ Voltar
+{% endblock cabecalho %}
+
+{% block corpo %}
+ {% if form %}
+
+
+
Aguarde carregando perguntas para essa categoria...
+
+
+ {% else %}
+ Nenhuma existem perguntas para essa categoria.
+ {% endif %}
+{% endblock corpo %}
+
+{% block rodape %}
+ {{ block.super }}
+ Listar
+ Sair
+{% endblock rodape %}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categorias_list.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categorias_list.html
new file mode 100644
index 0000000..9def437
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_categorias_list.html
@@ -0,0 +1,63 @@
+{% extends "base_mobile.html" %}
+
+{% block cabecalho %}
+ Categorias
+ Voltar
+{% endblock cabecalho %}
+
+{% block media %}
+ {{ block.super }}
+
+{% endblock media %}
+
+{% block corpo %}
+ {% if categorias %}
+
+ {% else %}
+ Nenhuma categoria existente.
+ {% endif %}
+{% endblock corpo %}
+
+ {% block rodape %}
+ {{ block.super }}
+ Sair
+ {% endblock rodape %}
+
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_list.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_list.html
new file mode 100644
index 0000000..1744d82
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_list.html
@@ -0,0 +1,26 @@
+{% extends "base_mobile.html" %}
+
+{% block cabecalho %}
+ Diagnósticos
+ Sair
+{% endblock cabecalho %}
+
+{% block corpo %}
+ {% if diagnosticos %}
+
+ {% else %}
+ Nenhum diagnóstico aberto.
+ {% endif %}
+{% endblock corpo %}
+
+{% block rodape %}{% endblock rodape %}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_login.html b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_login.html
new file mode 100644
index 0000000..a035a35
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/diagnosticos_login.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+ SIGI - Login de Acesso
+
+
+
+
+
+
+
+
+
+ {% if form.errors %}
+
+
Erro ao logar
+
+ {% for field in form %}
+ {% if field.errors %}
+ {{ field.errors|striptags }}
+ {% endif %}
+ {% endfor %}
+
+
Verifique se seu login e senha foram preenchidos corretamente.
+
+ {% endif %}
+
+
+
+
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/email_diagnostico_atualizado.txt b/sigi/apps/diagnosticos/templates/diagnosticos/email_diagnostico_atualizado.txt
new file mode 100644
index 0000000..f917c67
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/email_diagnostico_atualizado.txt
@@ -0,0 +1,8 @@
+Foi atualizado um diagnóstico no SIGI. Os dados do diagnóstico são:
+
+Criador do Diagnóstico: {{ servidor }}
+Dados do Diagnóstico: {{ casa_legislativa }}
+Data do Diagnóstico: {{ data_diagnostico }}
+Data do Relatório do Diagnóstico: {{ data_relatorio_diagnostico }}
+
+O seu status está como {{ status }}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/email_diagnostico_publicado.txt b/sigi/apps/diagnosticos/templates/diagnosticos/email_diagnostico_publicado.txt
new file mode 100644
index 0000000..00cb012
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/email_diagnostico_publicado.txt
@@ -0,0 +1,10 @@
+Olá {{ responsavel }}
+
+Foi publicado um diagnóstico no SIGI.
+Os dados do diagnóstico são:
+
+Dados do Diagnóstico: {{ casa_legislativa }}
+Data do Diagnóstico: {{ data_diagnostico }}
+
+Para mais detalhes, acesse:
+http://{{ host }}{{ url_diagnostico }}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/graficos.html b/sigi/apps/diagnosticos/templates/diagnosticos/graficos.html
new file mode 100644
index 0000000..5483528
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/graficos.html
@@ -0,0 +1,61 @@
+{% extends "index.html" %}
+
+{% block content_title %}Graficos dos Diagnósticos {% endblock %}
+
+{% block extrahead %}
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ {% for pergunta in perguntas %}
+
+ {% if pergunta.datatype == 'many' or pergunta.datatype == 'one' %}
+ {{pergunta.title}}
+
+
+
+ {% else %}
+ {{pergunta.title}}
+ {% endif %}
+
+ {% endfor %}
+
+
+
+{% endblock %}
diff --git a/sigi/apps/diagnosticos/templates/diagnosticos/mapa.html b/sigi/apps/diagnosticos/templates/diagnosticos/mapa.html
new file mode 100644
index 0000000..565059b
--- /dev/null
+++ b/sigi/apps/diagnosticos/templates/diagnosticos/mapa.html
@@ -0,0 +1,54 @@
+{% extends "admin/index.html" %}
+
+{% block title %}SIGI{% endblock %}
+
+{% block extrahead %}
+ {{ block.super }}
+ {% load staticfiles %}
+
+
+
+
+
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/sigi/apps/diagnosticos/urls.py b/sigi/apps/diagnosticos/urls.py
index b58f95c..9e421de 100644
--- a/sigi/apps/diagnosticos/urls.py
+++ b/sigi/apps/diagnosticos/urls.py
@@ -1,35 +1,40 @@
# -*- coding: utf8 -*-
-from django.conf.urls.defaults import patterns, url
+from django.conf.urls import patterns, url
+from django.views.generic import TemplateView
-LOGIN_REDIRECT_URL = '/sigi/mobile/diagnosticos/login'
-urlpatterns = patterns('',
- # Lista de Diagnósticos
- url(r'^$', 'sigi.apps.diagnosticos.views.lista', name='lista_diagnosticos'),
-
- # Login do Diagnóstico
- url(r'^login/$', 'django.contrib.auth.views.login', {'template_name':
- 'diagnosticos/diagnosticos_login.html'}, name='login'),
+LOGIN_REDIRECT_URL = '/sigi/diagnosticos/mobile/login'
- # Logout do Diagnóstico
- url(r'^logout/$', 'django.contrib.auth.views.logout',
- {'next_page': LOGIN_REDIRECT_URL}, name='logout'),
+urlpatterns = patterns('sigi.apps.diagnosticos.views',
+ # Lista de Diagnósticos
+ url(r'^mobile/$', 'lista', name='lista_diagnosticos'),
# Lista de Categorias
- url(r'^(?P\d+)/categorias/$', 'sigi.apps.diagnosticos.views.categorias', name='lista_categorias'),
+ url(r'^mobile/(?P\d+)/categorias/$',
+ 'categorias', name='lista_categorias'),
# Detalhes da Categoria da Casa Legislativa
- url(r'^(?P\d+)/categorias/1/$',
- 'sigi.apps.diagnosticos.views.categoria_casa_legislativa',
- name='detalhes_categoria_casa_legislativa'),
+ url(r'^mobile/(?P\d+)/categorias/1/$',
+ 'categoria_casa_legislativa', name='detalhes_categoria_casa_legislativa'),
# Detalhes da Categoria de Contatos
- url(r'^(?P\d+)/categorias/2/$',
- 'sigi.apps.diagnosticos.views.categoria_contatos',
- name='detalhes_categoria_contatos'),
+ url(r'^mobile/(?P\d+)/categorias/2/$',
+ 'categoria_contatos', name='detalhes_categoria_contatos'),
# Detalhes de Categorias Dinamicas
- url(r'^(?P\d+)/categorias/(?P\d+)/$',
- 'sigi.apps.diagnosticos.views.categoria_detalhes',
- name='detalhes_categoria'),
+ url(r'^mobile/(?P\d+)/categorias/(?P\d+)/$',
+ 'categoria_detalhes', name='detalhes_categoria'),
+
+ url(r'^mapa/$', TemplateView.as_view(template_name="diagnosticos/mapa.html"), name='template-mapa'),
+ url(r'^mundiagjson/$', 'municipios_diagnosticados', name='municipios-diagnosticados')
+)
+
+urlpatterns += patterns('django.contrib.auth.views',
+ # Login do Diagnóstico
+ url(r'^mobile/login/$', 'login', {'template_name':
+ 'diagnosticos/diagnosticos_login.html'}, name='login'),
+
+ # Logout do Diagnóstico
+ url(r'^mobile/logout/$', 'logout',
+ {'next_page': LOGIN_REDIRECT_URL}, name='logout'),
)
diff --git a/sigi/apps/diagnosticos/views.py b/sigi/apps/diagnosticos/views.py
index ae89ce6..6f0d1cb 100644
--- a/sigi/apps/diagnosticos/views.py
+++ b/sigi/apps/diagnosticos/views.py
@@ -344,8 +344,8 @@ def municipios_diagnosticados(self):
for d in Diagnostico.objects.all():
m = d.casa_legislativa.municipio
- municipio = {'nome': d.casa_legislativa.nome + ', ' + m.uf.sigla, 'lat': str(m.latitude), 'lng': str(m.longitude), 'inicio': d.data_visita_inicio.strftime('%d/%m/%Y'),
- 'fim': d.data_visita_fim.strftime('%d/%m/%Y'), 'equipe': "" + " ".join([m.user.get_full_name() for m in d.membros]) + " ",}
+ municipio = {'nome': d.casa_legislativa.nome + ', ' + m.uf.sigla, 'lat': str(m.latitude), 'lng': str(m.longitude), 'inicio': d.data_visita_inicio,
+ 'fim': d.data_visita_fim, 'equipe': "" + " ".join([m.user.get_full_name() for m in d.membros]) + " ",}
municipios.append(municipio)
return HttpResponse(simplejson.dumps(municipios), mimetype="application/json")
\ No newline at end of file
diff --git a/sigi/apps/servicos/models.py b/sigi/apps/servicos/models.py
index 6ab2444..7ba71e9 100644
--- a/sigi/apps/servicos/models.py
+++ b/sigi/apps/servicos/models.py
@@ -183,8 +183,9 @@ class CasaManifesta(models.Model):
casa_legislativa = models.OneToOneField(CasaLegislativa)
data_manifestacao = models.DateTimeField(auto_now_add=True)
data_atualizacao = models.DateTimeField(auto_now=True)
- informante = models.CharField(u'Nome do informante', max_length=100)
- cargo = models.CharField(u'Cargo do informante', max_length=100)
+ informante = models.CharField(u'Nome do informante', max_length=100, blank=True)
+ cargo = models.CharField(u'Cargo do informante', max_length=100, blank=True)
+ email = models.EmailField(u'E-mail de contato', blank=True)
class ServicoManifesto(models.Model):
casa_manifesta = models.ForeignKey(CasaManifesta)
diff --git a/sigi/apps/servicos/views.py b/sigi/apps/servicos/views.py
index 0e61541..9ea4148 100644
--- a/sigi/apps/servicos/views.py
+++ b/sigi/apps/servicos/views.py
@@ -41,7 +41,8 @@ class CasaManifestaProtoForm(forms.Form):
fieldsets = None
informante = forms.CharField(max_length=100, required=False)
cargo = forms.CharField(max_length=100, required=False)
-
+ email = forms.EmailField(required=False)
+
def set_fieldsets(self, fieldsets):
result = []
for name, lines in fieldsets:
@@ -66,8 +67,8 @@ def casa_manifesta_view(request):
# Criar um formulário dinâmico
campos = {}
- fieldsets = ((None, ('informante', 'cargo'),),)
-
+ fieldsets = ((None, ('informante', 'cargo', 'email'),),)
+
for ts in TipoServico.objects.all():
campos['possui_%s' % ts.pk] = forms.BooleanField(label=u'Possui o serviço de %s' % ts.nome, required=False)
campos['url_%s' % ts.pk] = forms.URLField(label=u'Informe a URL', required=False)
@@ -83,9 +84,11 @@ def casa_manifesta_view(request):
cm, created = CasaManifesta.objects.get_or_create(casa_legislativa=casa)
cm.informante = cmf.cleaned_data['informante']
cm.cargo = cmf.cleaned_data['cargo']
+ cm.email = cmf.cleaned_data['email']
cm.save()
thanks.append((u'Informante', cmf.cleaned_data['informante']))
thanks.append((u'Cargo', cmf.cleaned_data['cargo']))
+ thanks.append((u'E-mail', cmf.cleaned_data['email']))
for ts in TipoServico.objects.all():
if cmf.cleaned_data['possui_%s' % ts.pk]:
sm, created = ServicoManifesto.objects.get_or_create(casa_manifesta=cm, servico=ts)
@@ -106,6 +109,7 @@ def casa_manifesta_view(request):
values = {
'informante': cm.informante,
'cargo': cm.cargo,
+ 'email': cm.email,
}
for sm in cm.servicomanifesto_set.all():
values['possui_%s' % sm.servico.pk] = True
diff --git a/sigi/settings.py b/sigi/settings.py
index eb2628c..62560d4 100644
--- a/sigi/settings.py
+++ b/sigi/settings.py
@@ -99,7 +99,7 @@ USE_TZ = True
STATIC_URL = '/static/'
-ADMIN_MEDIA_PREFIX = '/sigi/admin_media/'
+# ADMIN_MEDIA_PREFIX = '/sigi/admin_media/' # Deprecated!
DEFAULT_FROM_EMAIL = 'sesostris@interlegis.leg.br'
@@ -107,3 +107,14 @@ DEFAULT_FROM_EMAIL = 'sesostris@interlegis.leg.br'
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
+
+# STATIC_ROOT = os.path.join(BASE_DIR, 'static')
+
+# STATICFILES_DIRS = (
+# os.path.join(BASE_DIR, "sitestatic"),
+# )
+
+# STATICFILES_FINDERS = (
+# "django.contrib.staticfiles.finders.FileSystemFinder",
+# "django.contrib.staticfiles.finders.AppDirectoriesFinder"
+# )
\ No newline at end of file
diff --git a/sigi/shortcuts.py b/sigi/shortcuts.py
new file mode 100644
index 0000000..ddd7a15
--- /dev/null
+++ b/sigi/shortcuts.py
@@ -0,0 +1,25 @@
+import cStringIO as StringIO
+import ho.pisa as pisa
+from django.template.loader import get_template
+from django.template import Context
+from django.http import HttpResponse
+from django.conf import settings
+from cgi import escape
+import os
+
+
+def fetch_resources(uri, rel):
+ path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))
+ return path
+
+def render_to_pdf(template_src, context_dict):
+ template = get_template(template_src)
+ context = Context(context_dict)
+ html = template.render(context)
+ result = StringIO.StringIO()
+
+ pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('utf-8')), result, link_callback=fetch_resources)
+ if not pdf.err:
+ return HttpResponse(result.getvalue(), mimetype='application/pdf')
+ return HttpResponse('We had some errors%s ' % escape(html))
+
diff --git a/sigi/urls.py b/sigi/urls.py
index fee7542..50a74dd 100644
--- a/sigi/urls.py
+++ b/sigi/urls.py
@@ -1,3 +1,4 @@
+#-*- coding:utf-8 -*-
from django.conf.urls import patterns, include, url
from django.views.generic.base import RedirectView
@@ -11,6 +12,7 @@ urlpatterns = patterns('',
url(r'^sigi/parlamentares/parlamentar/', include('sigi.apps.parlamentares.urls')),
url(r'^sigi/casas/casalegislativa/', include('sigi.apps.casas.urls')),
url(r'^sigi/convenios/convenio/', include('sigi.apps.convenios.urls')),
+ url(r'^sigi/diagnosticos/', include('sigi.apps.diagnosticos.urls')),
url(r'^sigi/', include(admin.site.urls)),
)
diff --git a/templates/404.html b/templates/404.html
new file mode 100644
index 0000000..9bf4293
--- /dev/null
+++ b/templates/404.html
@@ -0,0 +1,12 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block title %}{% trans 'Page not found' %}{% endblock %}
+
+{% block content %}
+
+{% trans 'Page not found' %}
+
+{% trans "We're sorry, but the requested page could not be found." %}
+
+{% endblock %}
diff --git a/templates/500.html b/templates/500.html
new file mode 100644
index 0000000..b30e431
--- /dev/null
+++ b/templates/500.html
@@ -0,0 +1,12 @@
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block title %}{% trans 'Server error (500)' %}{% endblock %}
+
+{% block content %}
+{% trans 'Server Error (500) ' %}
+{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}
+
+{% endblock %}
diff --git a/templates/503.html b/templates/503.html
new file mode 100644
index 0000000..ed5fbe0
--- /dev/null
+++ b/templates/503.html
@@ -0,0 +1,19 @@
+{% extends "admin/base_site.html" %}
+
+{% block title %}Serviço em manutenção (503) | SIGI{% endblock %}
+
+{% block branding %}{% endblock %}
+{% block nav-global %}{% endblock %}
+{% block breadcrumbs %}{% endblock %}
+
+{% block content %}
+SIGI em manutenção
+
+Esta página está atualmente em manutenção! Por favor, tente
+ novamente mais tarde.
+
+Obrigado pela paciência,
+ Serviço de Pesquisa e Desenvolvimento Tecnológico (SPDT)
+{% endblock %}
+
+{% block footer %}{% endblock %}
diff --git a/templates/app_index.html b/templates/app_index.html
new file mode 100644
index 0000000..580e1be
--- /dev/null
+++ b/templates/app_index.html
@@ -0,0 +1,17 @@
+{% extends "admin/app_index.html" %}
+
+{% block extrastyle %}
+
+
+{% endblock %}
+
+{% block breadcrumbs %}{% endblock %}
+
+{% block sidebar %}
+
+ {% include "snippets/modules/user.html" %}
+ {% include "snippets/modules/actions.html" %}
+
+{% endblock %}
diff --git a/templates/base_mobile.html b/templates/base_mobile.html
new file mode 100644
index 0000000..c4fba4a
--- /dev/null
+++ b/templates/base_mobile.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+ {% block titulo %}
+ SIGI - Diagnósticos
+ {% endblock titulo %}
+ {% block media %}
+
+
+
+
+
+
+ {% endblock media %}
+
+
+
+
+
+ {% block cabecalho %}{% endblock cabecalho %}
+
+
+ {% block corpo %}{% endblock corpo %}
+
+
+
+
+ {% block rodape %}
+ Home
+ {% endblock rodape %}
+
+
+
+
+
+
+
+
+
Ops! Não foi possivel salvar os dados.
+
+
+ Algum erro ocorreu ao salvar os dados do diagnóstico,
+ verifique a sua conectividade e/ou entre em contato
+ com a equipe técnica o mais rápido possível.
+
+
+
+
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..7602de1
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,63 @@
+{% extends "admin/index.html" %}
+{% load adminmedia %}
+
+{% block title %}SIGI{% endblock %}
+{% block extrahead %}
+ {{ block.super }}
+
+
+
+
+
+{% endblock %}
+{% block content_title %}Dashboard {% endblock %}
+
+{% block content %}
+
+ {% include "snippets/modules/charts-convenios.html" %}
+
+{% endblock %}
+
+{% block sidebar %}
+
+ {% include "snippets/modules/user.html" %}
+ {% include "snippets/modules/actions.html" %}
+
+{% endblock %}
diff --git a/templates/login.html b/templates/login.html
new file mode 100644
index 0000000..0a3150e
--- /dev/null
+++ b/templates/login.html
@@ -0,0 +1,11 @@
+{% extends "admin/login.html" %}
+{% load i18n %}
+
+{% block container-top %}{% endblock %}
+
+{% block branding %}
+SIGI
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/templates/mobile/404.html b/templates/mobile/404.html
new file mode 100644
index 0000000..51a064a
--- /dev/null
+++ b/templates/mobile/404.html
@@ -0,0 +1,15 @@
+{% extends "base_mobile.html" %}
+
+{% block cabecalho %}
+ Ocorreu um erro
+{% endblock cabecalho %}
+{% block corpo %}
+ A página que está procurando não existe.
+ Verifique se o diagnóstico, categoria ou pergunta está cadastrado no sistema.
+ Voltar
+{% endblock corpo %}
+
+{% block rodape %}
+
+{% endblock rodape %}