Browse Source

Iniciando a implementacao da lista de diagnosticos. Agora falta ligar o diagnostico ao servidor, para terminar a implementação da mesma.

diagnosticos
Gilson Filho 13 years ago
parent
commit
fbc9d89375
  1. 19
      sigi/apps/diagnosticos/models.py
  2. 15
      sigi/apps/diagnosticos/tests.py
  3. 6
      sigi/apps/diagnosticos/urls.py
  4. 19
      sigi/apps/diagnosticos/views.py
  5. 8
      sigi/settings.py
  6. 36
      sigi/templates/base_mobile.html
  7. 32
      sigi/templates/diagnosticos/diagnosticos_list.html
  8. 0
      sigi/templates/diagnosticos/diagnosticos_login.html
  9. 5
      sigi/urls.py

19
sigi/apps/diagnosticos/models.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
from datetime import datetime
from django.db import models
from django.utils.translation import ugettext_lazy as _
from sigi.apps.utils import SearchField
from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
class Diagnostico(BaseEntity):
""" Modelo para representar unm diagnostico realizado
em uma Casa Legislativa
@ -39,6 +39,7 @@ class Diagnostico(BaseEntity):
blank=True,
help_text='Equipamentos recebidos.'
)
class Meta:
verbose_name, verbose_name_plural = u'diagnóstico', u'diagnósticos'
@ -49,13 +50,17 @@ class Diagnostico(BaseEntity):
def __unicode__(self):
return str(self.casa_legislativa)
class Categoria(models.Model):
""" Modelo para representar a categoria de uma pergunta
e sua ordem na hora de exibir no formulário
"""
nome= models.CharField(max_length=255)
nome = models.CharField(max_length=255)
def __unicode__(self):
return self.nome
return self.nome
class Pergunta(BaseSchema):
""" Modelo que representa uma pergunta no questionário
@ -64,28 +69,34 @@ class Pergunta(BaseSchema):
Uma pergunta tem o nome e o tipo da resposta
"""
categoria = models.ForeignKey(Categoria)
class Meta:
ordering = ('title',)
verbose_name, verbose_name_plural = 'pergunta', 'perguntas'
class Escolha(BaseChoice):
""" Perguntas de multiplas escolhas tem as opções
cadastradas neste modelo
"""
schema = models.ForeignKey(Pergunta, related_name='choices', verbose_name='pergunta')
schema_to_open = models.ForeignKey(Pergunta, related_name='', verbose_name='pergunta para abrir', blank=True, null=True)
class Meta:
verbose_name, verbose_name_plural = 'escolha', 'escolhas'
class Resposta(BaseAttribute):
""" Modelo para guardar as respostas das perguntas
de um diagnosico
"""
schema = models.ForeignKey(Pergunta, related_name='attrs', verbose_name='pergunta')
choice = models.ForeignKey(Escolha, verbose_name='escolha', blank=True, null=True)
class Meta:
verbose_name, verbose_name_plural = 'resposta', 'respostas'
class Equipe(models.Model):
""" Modelo que representa a equipe de um diagnóstico
"""
@ -97,6 +108,7 @@ class Equipe(models.Model):
def __unicode__(self):
return str(self.id)
class Anexo(models.Model):
""" Modelo para representar os documentos levantados
no processo de diagnóstico. Podem ser fotos, contratos, etc.
@ -114,4 +126,3 @@ class Anexo(models.Model):
def __unicode__(self):
return unicode(self.arquivo.name)

15
sigi/apps/diagnosticos/tests.py

@ -0,0 +1,15 @@
# -*- coding: utf8 -*-
from django.test import TestCase
class DiagnosticosViewsTest(TestCase):
"""Testes feitos para verificar o funcionamento
do view de diagnósticos.
"""
def test_diagnostico_list_success(self):
response = self.client.get('/mobile/diagnosticos')
self.assertEquals(200, response.status_code)
self.assertTemplateUsed(response, 'diagnosticos/diagnosticos_list.html')

6
sigi/apps/diagnosticos/urls.py

@ -0,0 +1,6 @@
# -*- coding: utf8 -*-
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('',
url(r'^$', 'sigi.apps.diagnosticos.views.lista', name='lista_diagnosticos'),
)

19
sigi/apps/diagnosticos/views.py

@ -0,0 +1,19 @@
# -*- coding: utf8 -*-
from django.shortcuts import render_to_response
from django.template import RequestContext
from sigi.apps.diagnosticos.models import Diagnostico
def lista(request):
"""Consulta os diagnosticos do servidor logado,
que contenham o status de não publicado.
"""
# TODO Implementar pesquisa de diagnosticos, em que esses registros
# devem ser criado pelo servidor logado.
diagnosticos = Diagnostico.objects.all()
context = RequestContext(request, {'diagnosticos': diagnosticos})
return render_to_response('diagnosticos/diagnosticos_list.html', context)

8
sigi/settings.py

@ -96,10 +96,10 @@ AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
CACHE_BACKEND = 'dummy:///'
CACHE_MIDDLEWARE_SECONDS = 60
CACHE_MIDDLEWARE_KEY_PREFIX = 'sigi'
CACHE_MIDDLEWARE_ANONYMOUS_ONLY = False
#CACHE_BACKEND = 'dummy:///'
#CACHE_MIDDLEWARE_SECONDS = 60
#CACHE_MIDDLEWARE_KEY_PREFIX = 'sigi'
#CACHE_MIDDLEWARE_ANONYMOUS_ONLY = False
# Used to provide a seed in secret-key hashing algorithms. Set this to
# a random string in your local_settings.py - the longer, the better.

36
sigi/templates/base_mobile.html

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
{% block titulo %}
<title>SIGI - Diagnósticos</title>
{% endblock titulo %}
{% block media %}
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
{% endblock media %}
</head>
<body>
<div data-role="page" class="type-interior">
<div data-role="header">
{% block cabecalho %}{% endblock cabecalho %}
</div> <!-- header -->
<div data-role="content" class="content-primary">
{% block corpo %}{% endblock corpo %}
</div><!-- content -->
{% block rodape %}
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="#" data-icon="grid" class="ui-state-persist">Listar</a></li>
<li><a href="#" data-icon="home">Home</a></li>
<li><a href="#" data-icon="plus">Anexar Arquivos</a></li>
</ul>
</div>
</div> <!-- footer -->
{% endblock rodape %}
</div> <!-- page -->
</body>
</html>

32
sigi/templates/diagnosticos/diagnosticos_list.html

@ -0,0 +1,32 @@
{% extends "base_mobile.html" %}
{% block cabecalho %}
<h1>Diagnósticos</h1>
<a href="#" data-icon="delete" data-theme="e" class="ui-btn-right">Sair</a>
{% endblock cabecalho %}
{% block corpo %}
<ul data-role="listview">
{% for diagnostico in diagnosticos %}
<li>
<a href="#">
<h3>{{ diagnostico.casa_legislativa.nome }}</h3>
<p><strong>Data:</strong> {{ diagnostico.data_questionario|date:"d/m/Y" }}</p>
<p><strong>Responsável:</strong> Nenhum Ainda</p>
</a>
</li>
{% endfor %}
</ul>
{% endblock corpo %}
{% block rodape %}
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="#" data-icon="grid" class="ui-state-persist">Listar</a></li>
<li><a href="#" data-icon="home" class="ui-btn-active">Home</a></li>
<li><a href="#" data-icon="plus">Anexar Arquivos</a></li>
</ul>
</div>
</div> <!-- footer -->
{% endblock rodape %}

0
sigi/templates/diagnosticos/diagnosticos_login.html

5
sigi/urls.py

@ -1,6 +1,6 @@
#-*- coding:utf-8 -*-
from django.conf import settings
from django.conf.urls.defaults import *
from django.conf.urls.defaults import patterns, include, url
import sites
# register admin filters
@ -9,6 +9,9 @@ import admin.filterspecs
urlpatterns = patterns(
'',
# Diagnosticos
url(r'mobile/diagnosticos/', include('sigi.apps.diagnosticos.urls')),
# Informacoes de uma casa legislativa
(r'^casas/casalegislativa/(?P<id>\w+)/report_complete/',
'sigi.apps.casas.views.report_complete'),

Loading…
Cancel
Save