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 -*- # -*- coding: utf-8 -*-
from datetime import datetime from datetime import datetime
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _
from sigi.apps.utils import SearchField from sigi.apps.utils import SearchField
from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
class Diagnostico(BaseEntity): class Diagnostico(BaseEntity):
""" Modelo para representar unm diagnostico realizado """ Modelo para representar unm diagnostico realizado
em uma Casa Legislativa em uma Casa Legislativa
@ -39,6 +39,7 @@ class Diagnostico(BaseEntity):
blank=True, blank=True,
help_text='Equipamentos recebidos.' help_text='Equipamentos recebidos.'
) )
class Meta: class Meta:
verbose_name, verbose_name_plural = u'diagnóstico', u'diagnósticos' verbose_name, verbose_name_plural = u'diagnóstico', u'diagnósticos'
@ -49,13 +50,17 @@ class Diagnostico(BaseEntity):
def __unicode__(self): def __unicode__(self):
return str(self.casa_legislativa) return str(self.casa_legislativa)
class Categoria(models.Model): class Categoria(models.Model):
""" Modelo para representar a categoria de uma pergunta """ Modelo para representar a categoria de uma pergunta
e sua ordem na hora de exibir no formulário 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): def __unicode__(self):
return self.nome return self.nome
class Pergunta(BaseSchema): class Pergunta(BaseSchema):
""" Modelo que representa uma pergunta no questionário """ 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 Uma pergunta tem o nome e o tipo da resposta
""" """
categoria = models.ForeignKey(Categoria) categoria = models.ForeignKey(Categoria)
class Meta: class Meta:
ordering = ('title',) ordering = ('title',)
verbose_name, verbose_name_plural = 'pergunta', 'perguntas' verbose_name, verbose_name_plural = 'pergunta', 'perguntas'
class Escolha(BaseChoice): class Escolha(BaseChoice):
""" Perguntas de multiplas escolhas tem as opções """ Perguntas de multiplas escolhas tem as opções
cadastradas neste modelo cadastradas neste modelo
""" """
schema = models.ForeignKey(Pergunta, related_name='choices', verbose_name='pergunta') 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) schema_to_open = models.ForeignKey(Pergunta, related_name='', verbose_name='pergunta para abrir', blank=True, null=True)
class Meta: class Meta:
verbose_name, verbose_name_plural = 'escolha', 'escolhas' verbose_name, verbose_name_plural = 'escolha', 'escolhas'
class Resposta(BaseAttribute): class Resposta(BaseAttribute):
""" Modelo para guardar as respostas das perguntas """ Modelo para guardar as respostas das perguntas
de um diagnosico de um diagnosico
""" """
schema = models.ForeignKey(Pergunta, related_name='attrs', verbose_name='pergunta') schema = models.ForeignKey(Pergunta, related_name='attrs', verbose_name='pergunta')
choice = models.ForeignKey(Escolha, verbose_name='escolha', blank=True, null=True) choice = models.ForeignKey(Escolha, verbose_name='escolha', blank=True, null=True)
class Meta: class Meta:
verbose_name, verbose_name_plural = 'resposta', 'respostas' verbose_name, verbose_name_plural = 'resposta', 'respostas'
class Equipe(models.Model): class Equipe(models.Model):
""" Modelo que representa a equipe de um diagnóstico """ Modelo que representa a equipe de um diagnóstico
""" """
@ -97,6 +108,7 @@ class Equipe(models.Model):
def __unicode__(self): def __unicode__(self):
return str(self.id) return str(self.id)
class Anexo(models.Model): class Anexo(models.Model):
""" Modelo para representar os documentos levantados """ Modelo para representar os documentos levantados
no processo de diagnóstico. Podem ser fotos, contratos, etc. no processo de diagnóstico. Podem ser fotos, contratos, etc.
@ -114,4 +126,3 @@ class Anexo(models.Model):
def __unicode__(self): def __unicode__(self):
return unicode(self.arquivo.name) 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', 'django.contrib.auth.backends.ModelBackend',
) )
CACHE_BACKEND = 'dummy:///' #CACHE_BACKEND = 'dummy:///'
CACHE_MIDDLEWARE_SECONDS = 60 #CACHE_MIDDLEWARE_SECONDS = 60
CACHE_MIDDLEWARE_KEY_PREFIX = 'sigi' #CACHE_MIDDLEWARE_KEY_PREFIX = 'sigi'
CACHE_MIDDLEWARE_ANONYMOUS_ONLY = False #CACHE_MIDDLEWARE_ANONYMOUS_ONLY = False
# Used to provide a seed in secret-key hashing algorithms. Set this to # 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. # 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 -*- #-*- coding:utf-8 -*-
from django.conf import settings from django.conf import settings
from django.conf.urls.defaults import * from django.conf.urls.defaults import patterns, include, url
import sites import sites
# register admin filters # register admin filters
@ -9,6 +9,9 @@ import admin.filterspecs
urlpatterns = patterns( urlpatterns = patterns(
'', '',
# Diagnosticos
url(r'mobile/diagnosticos/', include('sigi.apps.diagnosticos.urls')),
# Informacoes de uma casa legislativa # Informacoes de uma casa legislativa
(r'^casas/casalegislativa/(?P<id>\w+)/report_complete/', (r'^casas/casalegislativa/(?P<id>\w+)/report_complete/',
'sigi.apps.casas.views.report_complete'), 'sigi.apps.casas.views.report_complete'),

Loading…
Cancel
Save