Browse Source

Merge d3b1560dd2 into ac7e7e09be

pull/2169/merge
Leandro Roberto da Silva 7 years ago
committed by GitHub
parent
commit
4fd492cb13
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      sapl/api/apps.py
  2. 2
      sapl/api/forms.py
  3. 2
      sapl/api/views.py
  4. 2
      sapl/audiencia/apps.py
  5. 2
      sapl/audiencia/forms.py
  6. 2
      sapl/audiencia/models.py
  7. 2
      sapl/base/admin.py
  8. 2
      sapl/base/apps.py
  9. 2
      sapl/base/forms.py
  10. 34
      sapl/base/migrations/0021_auto_20180825_1713.py
  11. 25
      sapl/base/migrations/0022_auto_20180825_1716.py
  12. 40
      sapl/base/models.py
  13. 15
      sapl/base/templatetags/i18n_sapl.py
  14. 2
      sapl/base/templatetags/menus.py
  15. 2
      sapl/base/tests/test_form.py
  16. 2
      sapl/base/tests/test_view_base.py
  17. 14
      sapl/base/urls.py
  18. 36
      sapl/base/views.py
  19. 2
      sapl/comissoes/apps.py
  20. 2
      sapl/comissoes/forms.py
  21. 2
      sapl/comissoes/models.py
  22. 2
      sapl/compilacao/apps.py
  23. 2
      sapl/compilacao/forms.py
  24. 2
      sapl/compilacao/models.py
  25. 2
      sapl/compilacao/templatetags/compilacao_filters.py
  26. 2
      sapl/compilacao/views.py
  27. 5
      sapl/crispy_layout_mixin.py
  28. 6
      sapl/crud/base.py
  29. 2
      sapl/decorators.py
  30. 2
      sapl/lexml/apps.py
  31. 2
      sapl/lexml/models.py
  32. 2
      sapl/materia/apps.py
  33. 2
      sapl/materia/forms.py
  34. 2
      sapl/materia/models.py
  35. 2
      sapl/materia/views.py
  36. 2
      sapl/norma/apps.py
  37. 2
      sapl/norma/forms.py
  38. 30
      sapl/norma/migrations/0013_auto_20180824_2301.py
  39. 10
      sapl/norma/models.py
  40. 2
      sapl/norma/tests/test_norma.py
  41. 2
      sapl/norma/views.py
  42. 2
      sapl/painel/apps.py
  43. 2
      sapl/painel/models.py
  44. 2
      sapl/painel/views.py
  45. 2
      sapl/parlamentares/apps.py
  46. 2
      sapl/parlamentares/forms.py
  47. 2
      sapl/parlamentares/models.py
  48. 2
      sapl/parlamentares/tests/test_parlamentares.py
  49. 2
      sapl/parlamentares/views.py
  50. 2
      sapl/protocoloadm/apps.py
  51. 53
      sapl/protocoloadm/forms.py
  52. 2
      sapl/protocoloadm/models.py
  53. 5
      sapl/protocoloadm/tests/test_protocoloadm.py
  54. 2
      sapl/protocoloadm/views.py
  55. 2
      sapl/redireciona_urls/apps.py
  56. 2
      sapl/redireciona_urls/exceptions.py
  57. 2
      sapl/relatorios/apps.py
  58. 2
      sapl/relatorios/views.py
  59. 2
      sapl/rules/__init__.py
  60. 10
      sapl/rules/apps.py
  61. 45
      sapl/rules/map_rules.py
  62. 22
      sapl/rules/tests/test_rules.py
  63. 2
      sapl/sessao/apps.py
  64. 2
      sapl/sessao/forms.py
  65. 2
      sapl/sessao/models.py
  66. 2
      sapl/sessao/tests/test_sessao.py
  67. 2
      sapl/sessao/tests/test_sessao_view.py
  68. 2
      sapl/sessao/views.py
  69. 2
      sapl/templates/ajuda.html
  70. 2
      sapl/templates/ajuda/acessando_alimenta.html
  71. 2
      sapl/templates/ajuda/acomp_materia.html
  72. 2
      sapl/templates/ajuda/anexos.html
  73. 2
      sapl/templates/ajuda/autor.html
  74. 2
      sapl/templates/ajuda/cadastro_comissoes.html
  75. 2
      sapl/templates/ajuda/cadastro_materia.html
  76. 2
      sapl/templates/ajuda/cadastro_mesa_diretora.html
  77. 2
      sapl/templates/ajuda/cadastro_parlamentares.html
  78. 2
      sapl/templates/ajuda/cargo_comissao.html
  79. 2
      sapl/templates/ajuda/cargo_mesa.html
  80. 2
      sapl/templates/ajuda/casa_legislativa.html
  81. 2
      sapl/templates/ajuda/coligacao.html
  82. 2
      sapl/templates/ajuda/consultas.html
  83. 2
      sapl/templates/ajuda/dependentes.html
  84. 2
      sapl/templates/ajuda/despacho_autoria.html
  85. 2
      sapl/templates/ajuda/envio_proposicao.html
  86. 2
      sapl/templates/ajuda/filiacoes_partidarias.html
  87. 2
      sapl/templates/ajuda/fim_relatoria.html
  88. 2
      sapl/templates/ajuda/gerenciamento_usuarios.html
  89. 2
      sapl/templates/ajuda/glossario.html
  90. 2
      sapl/templates/ajuda/impressos.html
  91. 2
      sapl/templates/ajuda/legislacao_cita_matanexada.html
  92. 2
      sapl/templates/ajuda/legislatura.html
  93. 2
      sapl/templates/ajuda/lexml.html
  94. 2
      sapl/templates/ajuda/mandatos_parlamentar.html
  95. 2
      sapl/templates/ajuda/materia_anexada.html
  96. 2
      sapl/templates/ajuda/modulo_comissoes.html
  97. 2
      sapl/templates/ajuda/modulo_mesa_diretora.html
  98. 2
      sapl/templates/ajuda/modulo_norma_juridica.html
  99. 2
      sapl/templates/ajuda/modulo_parlamentares.html
  100. 2
      sapl/templates/ajuda/modulo_tramitacao_materias.html

2
sapl/api/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/api/forms.py

@ -2,7 +2,7 @@ from django.db.models import Q
from django.forms.fields import CharField, MultiValueField
from django.forms.widgets import MultiWidget, TextInput
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django_filters.filters import DateFilter, MethodFilter, ModelChoiceFilter
from rest_framework import serializers
from rest_framework.compat import django_filters

2
sapl/api/views.py

@ -1,7 +1,7 @@
from django.contrib.contenttypes.models import ContentType
from django.db.models import Q
from django.http import Http404
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from rest_framework.filters import DjangoFilterBackend
from rest_framework.generics import ListAPIView
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin

2
sapl/audiencia/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/audiencia/forms.py

@ -1,7 +1,7 @@
from django import forms
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import transaction
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.audiencia.models import AudienciaPublica, TipoAudienciaPublica
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa
from sapl.utils import timezone

2
sapl/audiencia/models.py

@ -1,6 +1,6 @@
import reversion
from django.db import models
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_utils import Choices
from sapl.materia.models import MateriaLegislativa
from sapl.parlamentares.models import (CargoMesa, Parlamentar)

2
sapl/base/admin.py

@ -1,7 +1,7 @@
from django.contrib import admin
from django.core.urlresolvers import reverse
from django.shortcuts import redirect
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from reversion.models import Revision
from sapl.utils import register_all_models_in_admin

2
sapl/base/apps.py

@ -1,6 +1,6 @@
import django
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(django.apps.AppConfig):

2
sapl/base/forms.py

@ -11,7 +11,7 @@ from django.contrib.auth.models import Group, User
from django.core.exceptions import ValidationError
from django.db import models, transaction
from django.forms import Form, ModelForm
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.utils.translation import string_concat
from sapl.base.models import Autor, TipoAutor

34
sapl/base/migrations/0021_auto_20180825_1713.py

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-08-25 20:13
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0020_auto_20180821_1421'),
]
operations = [
migrations.CreateModel(
name='ExpressaoTextual',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('bind', models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Expressão encontrada no SAPL')),
('value', models.CharField(max_length=10000, unique=True, verbose_name='Expressão Oficial')),
('custom', models.CharField(blank=True, default='', max_length=10000, verbose_name='Expressão Customizada')),
],
options={
'verbose_name': 'Expressão Textual do SAPL',
'verbose_name_plural': 'Expressões Textuais do SAPL',
'ordering': ('value',),
},
),
migrations.AlterField(
model_name='casalegislativa',
name='codigo',
field=models.CharField(blank=True, max_length=100, verbose_name='Código'),
),
]

25
sapl/base/migrations/0022_auto_20180825_1716.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-08-25 20:16
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0021_auto_20180825_1713'),
]
operations = [
migrations.AlterField(
model_name='expressaotextual',
name='custom',
field=models.TextField(blank=True, default='', verbose_name='Expressão Customizada'),
),
migrations.AlterField(
model_name='expressaotextual',
name='value',
field=models.TextField(unique=True, verbose_name='Expressão Oficial'),
),
]

40
sapl/base/models.py

@ -1,14 +1,17 @@
import reversion
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.db.models.signals import post_migrate
from django.db.utils import DEFAULT_DB_ALIAS
from django.utils.translation import ugettext_lazy as _
#from model_utils import Choices
import reversion
from sapl.translation import ugettext_lazy as _
from sapl.utils import (LISTA_DE_UFS, YES_NO_CHOICES,
get_settings_auth_user_model, models_with_gr_for_model)
TIPO_DOCUMENTO_ADMINISTRATIVO = (('O', _('Ostensiva')),
('R', _('Restritiva')))
@ -17,9 +20,9 @@ SEQUENCIA_NUMERACAO = (('A', _('Sequencial por ano')),
('U', _('Sequencial único')))
ESFERA_FEDERACAO_CHOICES = (('M', _('Municipal')),
('E', _('Estadual')),
('F', _('Federal')),
)
('E', _('Estadual')),
('F', _('Federal')),
)
@reversion.register()
@ -29,7 +32,7 @@ class CasaLegislativa(models.Model):
codigo = models.CharField(max_length=100,
blank=True,
verbose_name=_('Codigo'))
verbose_name=_('Código'))
nome = models.CharField(max_length=100, verbose_name=_('Nome'))
sigla = models.CharField(max_length=100, verbose_name=_('Sigla'))
endereco = models.CharField(max_length=100, verbose_name=_('Endereço'))
@ -64,6 +67,27 @@ class CasaLegislativa(models.Model):
'municipio': self.municipio}
class ExpressaoTextual(models.Model):
bind = models.BooleanField(
verbose_name=_('Expressão encontrada no SAPL'),
choices=YES_NO_CHOICES, default=False)
value = models.TextField(
unique=True,
verbose_name=_('Expressão Oficial'), blank=False, null=False)
custom = models.TextField(
verbose_name=_('Expressão Customizada'), blank=True, default='')
class Meta:
verbose_name = _('Expressão Textual do SAPL')
verbose_name_plural = _('Expressões Textuais do SAPL')
ordering = ('value',)
def __str__(self):
return self.value
@reversion.register()
class AppConfig(models.Model):
@ -86,7 +110,7 @@ class AppConfig(models.Model):
esfera_federacao = models.CharField(
max_length=1,
blank=True,
default = "",
default="",
verbose_name=_('Esfera Federação'),
choices=ESFERA_FEDERACAO_CHOICES)

15
sapl/base/templatetags/i18n_sapl.py

@ -0,0 +1,15 @@
from django.templatetags.i18n import *
from django.utils.encoding import force_text
from sapl.translation import sapl_expressions
@register.tag("trans")
def do_translate_sapl(parser, token):
trans = do_translate(parser, token)
return sapl_expressions.swap_translate(trans)
@register.tag("blocktrans")
def do_block_translate_sapl(parser, token):
block_trans = do_block_translate(parser, token)
return sapl_expressions.swap_block_translate(block_trans)

2
sapl/base/templatetags/menus.py

@ -1,7 +1,7 @@
import yaml
from django import template
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.utils import sapl_logger

2
sapl/base/tests/test_form.py

@ -1,5 +1,5 @@
import pytest
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.base.forms import CasaLegislativaForm

2
sapl/base/tests/test_view_base.py

@ -1,6 +1,6 @@
import pytest
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
@pytest.mark.django_db(transaction=False)

14
sapl/base/urls.py

@ -8,7 +8,8 @@ from django.contrib.auth.views import (password_reset, password_reset_complete,
password_reset_done)
from django.views.generic.base import RedirectView, TemplateView
from sapl.base.views import AutorCrud, ConfirmarEmailView, TipoAutorCrud
from sapl.base.views import AutorCrud, ConfirmarEmailView, TipoAutorCrud,\
ExpressaoTextualCrud
from sapl.settings import EMAIL_SEND_USER, MEDIA_URL
from .apps import AppConfig
@ -27,9 +28,12 @@ app_name = AppConfig.name
admin_user = [
url(r'^sistema/usuario/$', ListarUsuarioView.as_view(), name='user_list'),
url(r'^sistema/usuario/create$', CreateUsuarioView.as_view(), name='user_create'),
url(r'^sistema/usuario/(?P<pk>\d+)/edit$', EditUsuarioView.as_view(), name='user_edit'),
url(r'^sistema/usuario/(?P<pk>\d+)/delete$', DeleteUsuarioView.as_view(), name='user_delete')
url(r'^sistema/usuario/create$',
CreateUsuarioView.as_view(), name='user_create'),
url(r'^sistema/usuario/(?P<pk>\d+)/edit$',
EditUsuarioView.as_view(), name='user_edit'),
url(r'^sistema/usuario/(?P<pk>\d+)/delete$',
DeleteUsuarioView.as_view(), name='user_delete')
]
alterar_senha = [
@ -70,6 +74,8 @@ recuperar_senha = [
urlpatterns = [
url(r'^sistema/expressao-textual/', include(ExpressaoTextualCrud.get_urls())),
url(r'^sistema/autor/tipo/', include(TipoAutorCrud.get_urls())),
url(r'^sistema/autor/', include(AutorCrud.get_urls())),

36
sapl/base/views.py

@ -13,7 +13,6 @@ from django.template import TemplateDoesNotExist
from django.template.loader import get_template
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_decode, urlsafe_base64_encode
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import string_concat
from django.views.generic import (CreateView, DeleteView, FormView, ListView,
UpdateView)
@ -23,12 +22,14 @@ from haystack.views import SearchView
from sapl import settings
from sapl.base.forms import AutorForm, AutorFormForAdmin, TipoAutorForm
from sapl.base.models import Autor, TipoAutor
from sapl.crud.base import CrudAux, make_pagination
from sapl.base.models import Autor, TipoAutor, ExpressaoTextual
from sapl.crud.base import CrudAux, make_pagination, Crud, ListWithSearchForm
from sapl.materia.models import (Autoria, MateriaLegislativa,
TipoMateriaLegislativa)
from sapl.rules.apps import AppConfig as RulesAppConfig
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca)
from sapl.translation import ugettext_lazy as _, sapl_expressions
from sapl.utils import (parlamentares_ativos, sapl_logger,
show_results_filter_set)
@ -71,6 +72,35 @@ class ConfirmarEmailView(TemplateView):
return self.render_to_response(context)
class ExpressaoTextualCrud(Crud):
model = ExpressaoTextual
CreateView = None
DeleteView = None
class BaseMixin(Crud.BaseMixin):
list_field_names = ['value', 'custom']
create_url = ''
delete_url = ''
cancel_url = Crud.BaseMixin.list_url
class UpdateView(Crud.UpdateView):
def post(self, request, *args, **kwargs):
response = Crud.UpdateView.post(self, request, *args, **kwargs)
sapl_expressions.rebuild_expressao(self.object)
return response
class DetailView(Crud.DetailView):
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(
reverse('sapl.base:expressaotextual_update', kwargs=kwargs))
class ListView(Crud.ListView):
paginate_by = 30
form_search_class = ListWithSearchForm
lookup_search = 'value__icontains'
class TipoAutorCrud(CrudAux):
model = TipoAutor
help_topic = 'tipo-autor'

2
sapl/comissoes/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/comissoes/forms.py

@ -4,7 +4,7 @@ from django.core.exceptions import ValidationError
from django.db import transaction
from django.db.models import Q
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.base.models import Autor, TipoAutor
from sapl.comissoes.models import (Comissao, Composicao, DocumentoAcessorio,

2
sapl/comissoes/models.py

@ -1,6 +1,6 @@
import reversion
from django.db import models
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_utils import Choices
from sapl.base.models import Autor

2
sapl/compilacao/apps.py

@ -4,7 +4,7 @@ from django import apps
from django.conf import settings
from django.db import connection, models
from django.db.utils import DEFAULT_DB_ALIAS, IntegrityError
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.utils.translation import string_concat
from sapl.settings import BASE_DIR

2
sapl/compilacao/forms.py

@ -13,7 +13,7 @@ from django.forms import widgets
from django.forms.forms import Form
from django.forms.models import ModelForm
from django.template import defaultfilters
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl import utils
from sapl.compilacao.models import (NOTAS_PUBLICIDADE_CHOICES,

2
sapl/compilacao/models.py

@ -11,7 +11,7 @@ from django.template import defaultfilters
from django.utils import timezone
from django.utils.decorators import classonlymethod
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
import reversion
from sapl.compilacao.utils import (get_integrations_view_names, int_to_letter,

2
sapl/compilacao/templatetags/compilacao_filters.py

@ -3,7 +3,7 @@ from django import template
from django.core.signing import Signer
from django.db.models import Q
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.compilacao.models import Dispositivo

2
sapl/compilacao/views.py

@ -20,7 +20,7 @@ from django.shortcuts import get_object_or_404, redirect
from django.utils.dateparse import parse_date
from django.utils.encoding import force_text
from django.utils.translation import string_concat
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.views.generic.base import TemplateView
from django.views.generic.detail import DetailView
from django.views.generic.edit import (CreateView, DeleteView, FormView,

5
sapl/crispy_layout_mixin.py

@ -1,13 +1,14 @@
from math import ceil
import rtyaml
from crispy_forms.bootstrap import FormActions
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit
from django import template
from django.core.urlresolvers import reverse, reverse_lazy
from django.utils import formats
from django.utils.translation import ugettext as _
import rtyaml
from sapl.translation import ugettext_lazy as _
def heads_and_tails(list_of_lists):

6
sapl/crud/base.py

@ -17,7 +17,6 @@ from django.http.response import Http404
from django.shortcuts import redirect
from django.utils.decorators import classonlymethod
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import string_concat
from django.views.generic import (CreateView, DeleteView, DetailView, ListView,
UpdateView)
@ -28,8 +27,10 @@ from sapl.crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display
from sapl.rules.map_rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL,
RP_LIST)
from sapl.settings import BASE_DIR
from sapl.translation import ugettext_lazy as _
from sapl.utils import normalize
logger = logging.getLogger(BASE_DIR.name)
ACTION_LIST, ACTION_CREATE, ACTION_DETAIL, ACTION_UPDATE, ACTION_DELETE = \
@ -382,6 +383,7 @@ class CrudBaseMixin(CrispyLayoutFormMixin):
class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
permission_required = (RP_LIST, )
lookup_search = 'search__icontains'
@classmethod
def get_url_regex(cls):
@ -520,7 +522,7 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
for item in query:
if not item:
continue
q = q & models.Q(search__icontains=item)
q = q & models.Q(**{self.lookup_search: item})
if q:
queryset = queryset.filter(q)

2
sapl/decorators.py

@ -1,7 +1,7 @@
from functools import wraps
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
def vigencia_atual(decorated_method):

2
sapl/lexml/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/lexml/models.py

@ -1,6 +1,6 @@
import reversion
from django.db import models
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
@reversion.register()

2
sapl/materia/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/materia/forms.py

@ -21,7 +21,7 @@ from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
import sapl
from sapl.base.models import AppConfig, Autor, TipoAutor

2
sapl/materia/models.py

@ -7,7 +7,7 @@ from django.db import models
from django.db.models.functions import Concat
from django.template import defaultfilters
from django.utils import formats, timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_utils import Choices
import reversion

2
sapl/materia/views.py

@ -15,7 +15,7 @@ from django.http.response import Http404, HttpResponseRedirect
from django.shortcuts import get_object_or_404, redirect
from django.template import RequestContext, loader
from django.utils import formats, timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.views.generic import ListView, TemplateView, CreateView, UpdateView
from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView

2
sapl/norma/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/norma/forms.py

@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import models
from django.forms import ModelForm, widgets
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.crispy_layout_mixin import form_actions, to_row
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa

30
sapl/norma/migrations/0013_auto_20180824_2301.py

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-08-25 02:01
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('norma', '0012_anexonormajuridica'),
]
operations = [
migrations.AlterModelOptions(
name='anexonormajuridica',
options={'verbose_name': 'Anexo da Norma Jurídica', 'verbose_name_plural': 'Anexos da Norma Jurídica'},
),
migrations.AlterField(
model_name='anexonormajuridica',
name='norma',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='norma', to='norma.NormaJuridica', verbose_name='Norma Jurídica'),
),
migrations.AlterField(
model_name='normajuridica',
name='tipo',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='norma.TipoNormaJuridica', verbose_name='Tipo da Norma Jurídica'),
),
]

10
sapl/norma/models.py

@ -1,12 +1,12 @@
from django.contrib.contenttypes.fields import GenericRelation
from django.db import models
from django.template import defaultfilters
from django.utils.translation import ugettext_lazy as _
from model_utils import Choices
import reversion
from sapl.compilacao.models import TextoArticulado
from sapl.materia.models import MateriaLegislativa
from sapl.translation import ugettext_lazy as _
from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES,
restringe_tipos_de_arquivo_txt, texto_upload_path)
@ -82,7 +82,7 @@ class NormaJuridica(models.Model):
tipo = models.ForeignKey(
TipoNormaJuridica,
on_delete=models.PROTECT,
verbose_name=_('Tipo da Norma Juridica'))
verbose_name=_('Tipo da Norma Jurídica'))
materia = models.ForeignKey(
MateriaLegislativa, blank=True, null=True,
on_delete=models.PROTECT, verbose_name=_('Matéria'))
@ -272,7 +272,7 @@ class AnexoNormaJuridica(models.Model):
NormaJuridica,
related_name='norma',
on_delete=models.PROTECT,
verbose_name=_('Norma Juridica'))
verbose_name=_('Norma Jurídica'))
anexo_arquivo = models.FileField(
blank=True,
null=True,
@ -283,8 +283,8 @@ class AnexoNormaJuridica(models.Model):
choices=RANGE_ANOS)
class Meta:
verbose_name = _('Anexo da Norma Juridica')
verbose_name_plural = _('Anexos da Norma Juridica')
verbose_name = _('Anexo da Norma Jurídica')
verbose_name_plural = _('Anexos da Norma Jurídica')
def __str__(self):
return _('Anexo: %(anexo)s da norma %(norma)s') % {

2
sapl/norma/tests/test_norma.py

@ -1,6 +1,6 @@
import pytest
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_mommy import mommy
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa

2
sapl/norma/views.py

@ -7,7 +7,7 @@ from django.core.urlresolvers import reverse
from django.http import HttpResponse, JsonResponse
from django.template import RequestContext, loader
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.views.generic import TemplateView, UpdateView
from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView

2
sapl/painel/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/painel/models.py

@ -1,6 +1,6 @@
import reversion
from django.db import models
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
@reversion.register()

2
sapl/painel/views.py

@ -10,7 +10,7 @@ from django.http import HttpResponse, JsonResponse
from django.http.response import Http404, HttpResponseRedirect
from django.shortcuts import render
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.base.models import AppConfig as ConfiguracoesAplicacao
from sapl.base.models import CasaLegislativa

2
sapl/parlamentares/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/parlamentares/forms.py

@ -11,7 +11,7 @@ from django.db import transaction
from django.db.models import Q
from django.forms import ModelForm
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from floppyforms.widgets import ClearableFileInput
from image_cropping.widgets import CropWidget, ImageCropWidget

2
sapl/parlamentares/models.py

@ -2,7 +2,7 @@
import reversion
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from image_cropping.fields import ImageCropField, ImageRatioField
from model_utils import Choices

2
sapl/parlamentares/tests/test_parlamentares.py

@ -1,7 +1,7 @@
import pytest
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from model_mommy import mommy
import pytest
from sapl.parlamentares.forms import FrenteForm, LegislaturaForm, MandatoForm
from sapl.parlamentares.models import (Dependente, Filiacao, Legislatura,

2
sapl/parlamentares/views.py

@ -12,7 +12,7 @@ from django.http.response import HttpResponseRedirect
from django.templatetags.static import static
from django.utils import timezone
from django.utils.datastructures import MultiValueDictKeyError
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.views.decorators.clickjacking import xframe_options_exempt
from django.views.generic import FormView
from django.views.generic.edit import UpdateView

2
sapl/protocoloadm/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

53
sapl/protocoloadm/forms.py

@ -1,5 +1,4 @@
import django_filters
from crispy_forms.bootstrap import InlineRadios
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Fieldset, Layout
@ -10,12 +9,13 @@ from django.db import models
from django.db.models import Max
from django.forms import ModelForm
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
import django_filters
from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row
from sapl.materia.models import (MateriaLegislativa, TipoMateriaLegislativa,
UnidadeTramitacao)
from sapl.translation import ugettext_lazy as _
from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, AnoNumeroOrderingFilter,
RangeWidgetOverride, autor_label, autor_modal)
@ -23,8 +23,11 @@ from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo,
Protocolo, TipoDocumentoAdministrativo,
TramitacaoAdministrativo)
TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'), ('2', 'Interno'), ('', '---------')]
TIPOS_PROTOCOLO_CREATE = [('0', 'Recebido'), ('1', 'Enviado'), ('2', 'Interno')]
TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'),
('2', 'Interno'), ('', '---------')]
TIPOS_PROTOCOLO_CREATE = [
('0', 'Recebido'), ('1', 'Enviado'), ('2', 'Interno')]
NATUREZA_PROCESSO = [('', '---------'),
('0', 'Administrativo'),
@ -142,7 +145,7 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
choices=ANO_CHOICES)
tramitacao = django_filters.ChoiceFilter(required=False,
label='Em Tramitação?',
label=_('Em Tramitação?'),
choices=EM_TRAMITACAO)
assunto = django_filters.CharFilter(lookup_expr='icontains')
@ -197,16 +200,15 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
Fieldset(_('Pesquisar Documento'),
row1, row2,
row3, row4, row5,
form_actions(label='Pesquisar'))
form_actions(label=_('Pesquisar')))
)
class AnularProcoloAdmForm(ModelForm):
numero = forms.CharField(required=True,
label=Protocolo._meta.
get_field('numero').verbose_name
)
label=Protocolo._meta.get_field(
'numero').verbose_name)
ano = forms.ChoiceField(required=True,
label=Protocolo._meta.
get_field('ano').verbose_name,
@ -312,7 +314,8 @@ class ProtocoloDocumentForm(ModelForm):
observacao = forms.CharField(required=False,
widget=forms.Textarea, label='Observação')
numero = forms.IntegerField(required=False, label='Número de Protocolo (opcional)')
numero = forms.IntegerField(
required=False, label='Número de Protocolo (opcional)')
class Meta:
model = Protocolo
@ -399,7 +402,8 @@ class ProtocoloMateriaForm(ModelForm):
assunto_ementa = forms.CharField(required=True,
widget=forms.Textarea, label='Ementa')
numero = forms.IntegerField(required=False, label='Número de Protocolo (opcional)')
numero = forms.IntegerField(
required=False, label='Número de Protocolo (opcional)')
class Meta:
model = Protocolo
@ -445,7 +449,8 @@ class ProtocoloMateriaForm(ModelForm):
raise ValidationError(_('Matéria Legislativa informada já possui o protocolo {}/{} vinculado.'
.format(self.materia.numero_protocolo, self.materia.ano)))
except ObjectDoesNotExist:
raise ValidationError(_('Matéria Legislativa informada não existente.'))
raise ValidationError(
_('Matéria Legislativa informada não existente.'))
return data
@ -478,9 +483,9 @@ class ProtocoloMateriaForm(ModelForm):
),
Fieldset(_('Número do Protocolo (Apenas se quiser que a numeração comece'
' a partir do número a ser informado)'),
row5,
HTML("&nbsp;"),
form_actions(label=_('Protocolar Matéria')))
row5,
HTML("&nbsp;"),
form_actions(label=_('Protocolar Matéria')))
)
super(ProtocoloMateriaForm, self).__init__(
@ -674,8 +679,8 @@ class DocumentoAdministrativoForm(ModelForm):
# não permite atualizar para numero/ano/tipo existente
if self.instance.pk:
mudanca_doc = numero_documento != self.instance.numero \
or ano_documento != self.instance.ano \
or tipo_documento != self.instance.tipo.pk
or ano_documento != self.instance.ano \
or tipo_documento != self.instance.tipo.pk
if not self.instance.pk or mudanca_doc:
doc_exists = DocumentoAdministrativo.objects.filter(numero=numero_documento,
@ -705,12 +710,12 @@ class DocumentoAdministrativoForm(ModelForm):
if str(protocolo_antigo) != numero_protocolo:
exist_materia = MateriaLegislativa.objects.filter(
numero_protocolo=numero_protocolo,
ano=ano_protocolo).exists()
numero_protocolo=numero_protocolo,
ano=ano_protocolo).exists()
exist_doc = DocumentoAdministrativo.objects.filter(
protocolo__numero=numero_protocolo,
protocolo__ano=ano_protocolo).exists()
protocolo__numero=numero_protocolo,
protocolo__ano=ano_protocolo).exists()
if exist_materia or exist_doc:
raise ValidationError(_('Protocolo %s/%s já possui'
' documento vinculado'
@ -786,7 +791,8 @@ class DesvincularDocumentoForm(ModelForm):
tipo = cleaned_data['tipo']
try:
documento = DocumentoAdministrativo.objects.get(numero=numero, ano=ano, tipo=tipo)
documento = DocumentoAdministrativo.objects.get(
numero=numero, ano=ano, tipo=tipo)
if not documento.protocolo:
raise forms.ValidationError(
_("%s %s/%s não se encontra vinculado a nenhum protocolo" % (tipo, numero, ano)))
@ -848,7 +854,8 @@ class DesvincularMateriaForm(forms.Form):
tipo = cleaned_data['tipo']
try:
materia = MateriaLegislativa.objects.get(numero=numero, ano=ano, tipo=tipo)
materia = MateriaLegislativa.objects.get(
numero=numero, ano=ano, tipo=tipo)
if not materia.numero_protocolo:
raise forms.ValidationError(
_("%s %s/%s não se encontra vinculada a nenhum protocolo" % (tipo, numero, ano)))

2
sapl/protocoloadm/models.py

@ -1,7 +1,7 @@
import reversion
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_utils import Choices
from sapl.base.models import Autor

5
sapl/protocoloadm/tests/test_protocoloadm.py

@ -1,10 +1,11 @@
from datetime import date, timedelta
import pytest
from django.core.urlresolvers import reverse
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from model_mommy import mommy
import pytest
from sapl.materia.models import UnidadeTramitacao
from sapl.protocoloadm.forms import (AnularProcoloAdmForm,
@ -191,7 +192,7 @@ def test_create_tramitacao(admin_client):
'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk,
'documento': documento_adm.pk,
'status': status.pk,
'data_tramitacao': date.today() + timedelta(
'data_tramitacao': timezone.now().date() + timedelta(
days=1)},
follow=True)

2
sapl/protocoloadm/views.py

@ -11,7 +11,7 @@ from django.http import Http404, HttpResponse, JsonResponse
from django.http.response import HttpResponseRedirect
from django.shortcuts import redirect
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.views.generic import ListView, CreateView
from django.views.generic.base import RedirectView, TemplateView
from django.views.generic.edit import FormView

2
sapl/redireciona_urls/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/redireciona_urls/exceptions.py

@ -1,4 +1,4 @@
from django.utils.translation import ugettext as _
from sapl.translation import ugettext_lazy as _
class UnknownUrlNameError(Exception):

2
sapl/relatorios/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/relatorios/views.py

@ -5,7 +5,7 @@ from datetime import datetime as dt
from django.core.exceptions import ObjectDoesNotExist
from django.http import Http404, HttpResponse
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.base.models import Autor, CasaLegislativa
from sapl.comissoes.models import Comissao

2
sapl/rules/__init__.py

@ -1,4 +1,4 @@
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
default_app_config = 'sapl.rules.apps.AppConfig'

10
sapl/rules/apps.py

@ -1,23 +1,23 @@
from builtins import LookupError
import sys
import django
from django.apps import apps
from django import apps
from django.contrib.auth import get_user_model
from django.contrib.auth.management import _get_all_permissions
from django.core import exceptions
from django.db import models, router
from django.db.utils import DEFAULT_DB_ALIAS
from django.utils.translation import string_concat
from django.utils.translation import ugettext_lazy as _
import reversion
from sapl.rules import (SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_COMISSOES,
SAPL_GROUP_GERAL, SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA,
SAPL_GROUP_PAINEL, SAPL_GROUP_PROTOCOLO,
SAPL_GROUP_SESSAO)
from sapl.translation import ugettext_lazy as _
class AppConfig(django.apps.AppConfig):
class AppConfig(apps.AppConfig):
name = 'sapl.rules'
label = 'rules'
verbose_name = _('Regras de Acesso')
@ -32,7 +32,7 @@ def create_proxy_permissions(
# print(app_config)
try:
Permission = apps.get_model('auth', 'Permission')
Permission = apps.apps.get_model('auth', 'Permission')
except LookupError:
return

45
sapl/rules/map_rules.py

@ -1,23 +1,3 @@
from sapl.base import models as base
from sapl.comissoes import models as comissoes
from sapl.compilacao import models as compilacao
from sapl.lexml import models as lexml
from sapl.materia import models as materia
from sapl.norma import models as norma
from sapl.painel import models as painel
from sapl.parlamentares import models as parlamentares
from sapl.protocoloadm import models as protocoloadm
from sapl.audiencia import models as audiencia
from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST,
SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_ANONYMOUS,
SAPL_GROUP_AUTOR, SAPL_GROUP_COMISSOES,
SAPL_GROUP_GERAL, SAPL_GROUP_LOGIN_SOCIAL,
SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA,
SAPL_GROUP_PAINEL, SAPL_GROUP_PARLAMENTAR,
SAPL_GROUP_PROTOCOLO, SAPL_GROUP_SESSAO,
SAPL_GROUP_VOTANTE)
from sapl.sessao import models as sessao
"""
Todas as permissões do django framework seguem o padrão
@ -46,6 +26,26 @@ negócio trabalham com os cinco radiais de permissão
e com qualquer outro tipo de permissão customizada, nesta ordem de precedência.
"""
from sapl.audiencia import models as audiencia
from sapl.base import models as base
from sapl.comissoes import models as comissoes
from sapl.compilacao import models as compilacao
from sapl.lexml import models as lexml
from sapl.materia import models as materia
from sapl.norma import models as norma
from sapl.painel import models as painel
from sapl.parlamentares import models as parlamentares
from sapl.protocoloadm import models as protocoloadm
from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST,
SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_ANONYMOUS,
SAPL_GROUP_AUTOR, SAPL_GROUP_COMISSOES,
SAPL_GROUP_GERAL, SAPL_GROUP_LOGIN_SOCIAL,
SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA,
SAPL_GROUP_PAINEL, SAPL_GROUP_PARLAMENTAR,
SAPL_GROUP_PROTOCOLO, SAPL_GROUP_SESSAO,
SAPL_GROUP_VOTANTE)
from sapl.sessao import models as sessao
__base__ = [RP_LIST, RP_DETAIL, RP_ADD, RP_CHANGE, RP_DELETE]
__listdetailchange__ = [RP_LIST, RP_DETAIL, RP_CHANGE]
@ -211,6 +211,7 @@ rules_group_geral = {
(base.CasaLegislativa, __listdetailchange__ + [RP_ADD]),
(base.TipoAutor, __base__),
(base.Autor, __base__),
(base.ExpressaoTextual, []),
(protocoloadm.StatusTramitacaoAdministrativo, __base__),
(protocoloadm.TipoDocumentoAdministrativo, __base__),
@ -219,8 +220,8 @@ rules_group_geral = {
(comissoes.TipoComissao, __base__),
(comissoes.Periodo, __base__),
(materia.AssuntoMateria, __base__), # não há implementação
(materia.MateriaAssunto, __base__), # não há implementação
(materia.AssuntoMateria, __base__),
(materia.MateriaAssunto, __base__),
(materia.MateriaLegislativa, ['can_access_impressos']),
(materia.TipoProposicao, __base__),
(materia.TipoMateriaLegislativa, __base__),

22
sapl/rules/tests/test_rules.py

@ -1,22 +1,23 @@
import pytest
from django.apps import apps
from django.conf import settings
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from django.utils import six
from django.utils.translation import ugettext_lazy as _
import pytest
from sapl.base.models import CasaLegislativa
from sapl.base.models import CasaLegislativa, ExpressaoTextual
from sapl.compilacao.models import (PerfilEstruturalTextoArticulado,
TipoDispositivo,
TipoDispositivoRelationship)
from sapl.materia.models import AcompanhamentoMateria
from sapl.rules import SAPL_GROUPS, map_rules
from sapl.test_urls import create_perms_post_migrate
from sapl.translation import ugettext_lazy as _
from scripts.lista_permissions_in_decorators import \
lista_permissions_in_decorators
from scripts.lista_urls import lista_urls
sapl_appconfs = [apps.get_app_config(n[5:]) for n in settings.SAPL_APPS]
sapl_models = []
@ -58,27 +59,32 @@ __fp__in__test_permission_of_models_in_rules_patterns = {
map_rules.RP_ADD: [CasaLegislativa,
TipoDispositivo,
TipoDispositivoRelationship,
PerfilEstruturalTextoArticulado],
PerfilEstruturalTextoArticulado,
ExpressaoTextual],
map_rules.RP_CHANGE: [AcompanhamentoMateria,
TipoDispositivo,
TipoDispositivoRelationship,
PerfilEstruturalTextoArticulado],
PerfilEstruturalTextoArticulado,
ExpressaoTextual],
map_rules.RP_DELETE: [CasaLegislativa,
TipoDispositivo,
TipoDispositivoRelationship,
PerfilEstruturalTextoArticulado],
PerfilEstruturalTextoArticulado,
ExpressaoTextual],
map_rules.RP_LIST: [AcompanhamentoMateria,
TipoDispositivo,
TipoDispositivoRelationship,
PerfilEstruturalTextoArticulado],
PerfilEstruturalTextoArticulado,
ExpressaoTextual],
map_rules.RP_DETAIL: [AcompanhamentoMateria,
TipoDispositivo,
TipoDispositivoRelationship,
PerfilEstruturalTextoArticulado]
PerfilEstruturalTextoArticulado,
ExpressaoTextual]
}

2
sapl/sessao/apps.py

@ -1,5 +1,5 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):

2
sapl/sessao/forms.py

@ -8,7 +8,7 @@ from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import transaction
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import form_actions, to_row

2
sapl/sessao/models.py

@ -3,7 +3,7 @@ from operator import xor
import reversion
from django.core.exceptions import ValidationError
from django.db import models
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_utils import Choices
from sapl.base.models import Autor

2
sapl/sessao/tests/test_sessao.py

@ -1,7 +1,7 @@
import pytest
from datetime import datetime
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_mommy import mommy
from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa

2
sapl/sessao/tests/test_sessao_view.py

@ -1,6 +1,6 @@
import pytest
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from model_mommy import mommy
from sapl.parlamentares.models import Legislatura, SessaoLegislativa

2
sapl/sessao/views.py

@ -14,7 +14,7 @@ from django.utils import timezone
from django.utils.datastructures import MultiValueDictKeyError
from django.utils.decorators import method_decorator
from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _
from sapl.translation import ugettext_lazy as _
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import FormView, ListView, TemplateView, CreateView, UpdateView
from django.views.generic.base import RedirectView

2
sapl/templates/ajuda.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n crispy_forms_tags %}
{% load i18n_sapl crispy_forms_tags %}
{% block base_content %}
<div class="conteudo">

2
sapl/templates/ajuda/acessando_alimenta.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/acomp_materia.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/anexos.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n crispy_forms_tags %}
{% load i18n_sapl crispy_forms_tags %}
{% block base_content %}

2
sapl/templates/ajuda/autor.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/cadastro_comissoes.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/cadastro_materia.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/cadastro_mesa_diretora.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/cadastro_parlamentares.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/cargo_comissao.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/cargo_mesa.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/casa_legislativa.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/coligacao.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/consultas.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/dependentes.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/despacho_autoria.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/envio_proposicao.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/filiacoes_partidarias.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/fim_relatoria.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/gerenciamento_usuarios.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/glossario.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/impressos.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/legislacao_cita_matanexada.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/legislatura.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/lexml.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/mandatos_parlamentar.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/materia_anexada.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/modulo_comissoes.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/modulo_mesa_diretora.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/modulo_norma_juridica.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/modulo_parlamentares.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

2
sapl/templates/ajuda/modulo_tramitacao_materias.html

@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n_sapl %}
{% block base_content %}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save