Browse Source

create initial template page for anonymous user

pull/6/head
LeandroRoberto 9 years ago
parent
commit
d8a500ffc7
  1. 2
      compilacao/models.py
  2. 0
      compilacao/templatetags/__init__.py
  3. 13
      compilacao/templatetags/compilacao_filters.py
  4. 8
      compilacao/urls.py
  5. 28
      compilacao/views.py
  6. 4
      norma/models.py
  7. 2
      sapl/urls.py
  8. 7
      static/styles/compilacao.scss
  9. 1
      templates/base.html
  10. 46
      templates/compilacao/index.html

2
compilacao/models.py

@ -292,7 +292,7 @@ class Dispositivo(models.Model):
dispositivo_pai = models.ForeignKey(
'self',
blank=True, null=True, default=None,
related_name='+',
related_name='filhos',
verbose_name=_('Dispositivo Pai'))
dispositivo_vigencia = models.ForeignKey(
'self',

0
compilacao/templatetags/__init__.py

13
compilacao/templatetags/compilacao_filters.py

@ -0,0 +1,13 @@
from django import template
from django.db.models import Q
from compilacao.models import Dispositivo
register = template.Library()
@register.filter
def get_bloco(pk):
return Dispositivo.objects.order_by('ordem_bloco_atualizador').filter(
Q(dispositivo_pai_id=pk) |
Q(dispositivo_atualizador=pk)).select_related()

8
compilacao/urls.py

@ -0,0 +1,8 @@
from django.conf.urls import url
from compilacao import views
urlpatterns = [
url(r'^norma/(?P<norma_id>\d+)/compilacao/',
views.CompilacaoView.as_view(), name='compilacao'),
]

28
compilacao/views.py

@ -1 +1,27 @@
# Create your views here.
from django.views.generic.list import ListView
from compilacao.models import Dispositivo
from norma.models import NormaJuridica
class CompilacaoView(ListView):
model = Dispositivo
template_name = 'compilacao/index.html'
flag_alteradora = None
def get_queryset(self):
return Dispositivo.objects.filter(
ordem__gt=0,
norma_id=self.kwargs['norma_id']).select_related()
def get_norma(self):
return NormaJuridica.objects.get(
pk=self.kwargs['norma_id'])
def is_norma_alteradora(self):
if self.flag_alteradora is None:
self.flag_alteradora = NormaJuridica.objects.get(
pk=self.kwargs['norma_id']
).dispositivos_alterados_set.count() > 1
return self.flag_alteradora

4
norma/models.py

@ -98,10 +98,10 @@ class NormaJuridica(models.Model):
verbose_name_plural = _('Normas Jurídicas')
def __str__(self):
return _('%(tipo)s%(numero)s - %(materia)s - %(ano)s') % {
return _('%(tipo)s%(numero)s - %(data)s - %(ano)s') % {
'tipo': self.tipo,
'numero': self.numero,
'materia': self.materia,
'data': self.data,
'ano': self.ano}

2
sapl/urls.py

@ -29,6 +29,8 @@ urlpatterns = [
url(r'', include('lexml.urls')),
url(r'', include('painel.urls')),
url(r'', include('compilacao.urls')),
# must come at the end
# so that base /sistema/ url doesn't capture its children
url(r'', include('base.urls')),

7
static/styles/compilacao.scss

@ -0,0 +1,7 @@
.articulacao {
background-color: rgba(100,100,100,0.3);
margin: 1em;
}

1
templates/base.html

@ -20,6 +20,7 @@
<link rel="stylesheet" href="{% static 'components-font-awesome/css/font-awesome.css' %}">
<link rel="stylesheet" href="{% static 'foundation-icon-fonts/foundation-icons.css' %}">
<link rel="stylesheet" href="{% sass_src 'styles/app.scss' %}" type="text/css">
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{# Scripts #}
{# modernizr must be in head (see http://modernizr.com/docs/#installing) #}

46
templates/compilacao/index.html

@ -0,0 +1,46 @@
{% extends "base.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% block title%}
<h1>{{ view.get_norma }}</h1>
{% endblock %}
{% block base_content %}
{% for dispositivo in view.get_queryset %}
{% if dispositivo.tipo_dispositivo.class_css == 'articulacao'%}
{%if not forloop.first%}
</div>
{% endif%}
<div class="articulacao">
{% else %}
<div class="{{ dispositivo.tipo_dispositivo.class_css }}">
<b>{{ dispositivo.tipo_dispositivo.class_css }}</b> - {{ dispositivo.rotulo }} - {{ dispositivo.texto|safe }}
<br>
{% if view.is_norma_alteradora %}
{% if dispositivo.tipo_dispositivo.class_css == 'bloco_alteracao'%}
{% for alterado in dispositivo.id|get_bloco %}
<div class="{{ alterado.tipo_dispositivo.class_css }}">
<b>{{ alterado.tipo_dispositivo.class_css }}</b> - {{ alterado.rotulo }} - {{ alterado.texto }}
<br>
</div>
{% endfor %}
{% endif%}
{% endif%}
</div>
{% endif%}
{%if forloop.last %}
</div>
{% endif%}
{% endfor %}
{% endblock base_content %}
Loading…
Cancel
Save