Browse Source

Merge branch '256-2a-tentativa-um-namespace-por-app'

pull/278/head
Marcio Mazza 9 years ago
parent
commit
90af7d45a1
  1. 4
      .gitignore
  2. 2
      base/__init__.py
  3. 4
      base/apps.py
  4. 14
      base/templatetags/menus.py
  5. 3
      base/urls.py
  6. 2
      base/views.py
  7. 2
      comissoes/__init__.py
  8. 4
      comissoes/apps.py
  9. 8
      comissoes/test_comissoes.py
  10. 10
      comissoes/urls.py
  11. 6
      comissoes/views.py
  12. 4
      compilacao/apps.py
  13. 4
      compilacao/urls.py
  14. 55
      crud/base.py
  15. 2
      crud/tests/stub_app/urls.py
  16. 11
      crud/tests/test_base.py
  17. 5
      crud/urls.py
  18. 2
      lexml/__init__.py
  19. 4
      lexml/apps.py
  20. 4
      lexml/urls.py
  21. 2
      materia/__init__.py
  22. 4
      materia/apps.py
  23. 34
      materia/test_materia.py
  24. 23
      materia/test_materia_urls.py
  25. 5
      materia/urls.py
  26. 64
      materia/views.py
  27. 2
      norma/__init__.py
  28. 4
      norma/apps.py
  29. 4
      norma/test_norma.py
  30. 10
      norma/urls.py
  31. 12
      norma/views.py
  32. 1
      painel/__init__.py
  33. 7
      painel/apps.py
  34. 3
      painel/urls.py
  35. 2
      parlamentares/__init__.py
  36. 4
      parlamentares/apps.py
  37. 21
      parlamentares/test_parlamentares.py
  38. 6
      parlamentares/test_parlamentares_urls.py
  39. 4
      parlamentares/urls.py
  40. 28
      parlamentares/views.py
  41. 2
      protocoloadm/__init__.py
  42. 4
      protocoloadm/apps.py
  43. 4
      protocoloadm/test_protocoloadm.py
  44. 4
      protocoloadm/urls.py
  45. 28
      protocoloadm/views.py
  46. 1
      relatorios/__init__.py
  47. 7
      relatorios/apps.py
  48. 3
      relatorios/urls.py
  49. 2
      sessao/__init__.py
  50. 4
      sessao/apps.py
  51. 8
      sessao/urls.py
  52. 46
      sessao/views.py
  53. 22
      templates/base.html
  54. 4
      templates/comissoes/comissao_list.html
  55. 4
      templates/comissoes/composicao.html
  56. 2
      templates/comissoes/materias_em_tramitacao.html
  57. 6
      templates/comissoes/subnav.yaml
  58. 2
      templates/materia/autoria.html
  59. 2
      templates/materia/despacho_inicial.html
  60. 2
      templates/materia/documento_acessorio.html
  61. 2
      templates/materia/legislacao_citada.html
  62. 2
      templates/materia/materia_anexada.html
  63. 4
      templates/materia/materialegislativa_list.html
  64. 2
      templates/materia/numeracao.html
  65. 2
      templates/materia/pesquisa_materia_list.html
  66. 6
      templates/materia/proposicao/proposicao_list.html
  67. 2
      templates/materia/relatoria.html
  68. 2
      templates/materia/subnav.yaml
  69. 2
      templates/materia/tramitacao.html
  70. 4
      templates/norma/list_pesquisa.html
  71. 6
      templates/norma/normajuridica_detail.html
  72. 4
      templates/norma/normajuridica_list.html
  73. 2
      templates/painel/index.html
  74. 2
      templates/painel/mensagem.html
  75. 2
      templates/painel/parlamentares.html
  76. 2
      templates/painel/votacao.html
  77. 2
      templates/parlamentares/parlamentares_dependentes.html
  78. 2
      templates/parlamentares/parlamentares_detail.html
  79. 2
      templates/parlamentares/parlamentares_filiacao.html
  80. 2
      templates/parlamentares/parlamentares_list.html
  81. 2
      templates/parlamentares/parlamentares_mandato.html
  82. 6
      templates/protocoloadm/detail_doc_detail.html
  83. 2
      templates/protocoloadm/documento_acessorio_administrativo.html
  84. 2
      templates/protocoloadm/pesquisa_doc_adm.html
  85. 8
      templates/protocoloadm/proposicoes_detail.html
  86. 2
      templates/protocoloadm/proposicoes_incorporadas.html
  87. 2
      templates/protocoloadm/proposicoes_naoincorporadas.html
  88. 2
      templates/protocoloadm/proposicoes_naorecebidas.html
  89. 4
      templates/protocoloadm/protocolo_list.html
  90. 4
      templates/protocoloadm/protocolo_mostrar.html
  91. 8
      templates/protocoloadm/protocoloadm_detail.html
  92. 6
      templates/protocoloadm/tramitacao.html
  93. 20
      templates/sessao/expediente_ordemdia_list.html
  94. 4
      templates/sessao/explicacao.html
  95. 20
      templates/sessao/materia_ordemdia_list.html
  96. 4
      templates/sessao/orador_expediente.html
  97. 12
      templates/sessao/painel.html
  98. 2
      templates/sessao/pauta/expediente.html
  99. 2
      templates/sessao/pauta/ordem.html
  100. 6
      templates/sessao/pauta_sessao_detail.html

4
.gitignore

@ -88,3 +88,7 @@ collected_static
bower bower
bower_components bower_components
media media
# Merge garbage
.orig

2
base/__init__.py

@ -1 +1 @@
default_app_config = 'base.apps.BaseAppConfig' default_app_config = 'base.apps.AppConfig'

4
base/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class BaseAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'base' name = 'base'
verbose_name = _('Dados Básicos') verbose_name = _('Dados Básicos')

14
base/templatetags/menus.py

@ -21,20 +21,22 @@ def subnav(context, path=None):
menu = None menu = None
if 'object' in context: if 'object' in context:
obj = context['object'] obj = context['object']
default_path = '%s/subnav.yaml' % obj.__class__._meta.app_label app = obj.__class__._meta.app_label
default_path = '%s/subnav.yaml' % app
path = os.path.join(TEMPLATES_DIR, path or default_path) path = os.path.join(TEMPLATES_DIR, path or default_path)
if os.path.exists(path): if os.path.exists(path):
menu = yaml.load(open(path, 'r')) menu = yaml.load(open(path, 'r'))
resolve_urls_inplace(menu, obj.pk) resolve_urls_inplace(menu, obj.pk, app)
return dict(menu=menu) return dict(menu=menu)
def resolve_urls_inplace(menu, pk): def resolve_urls_inplace(menu, pk, app):
if isinstance(menu, list): if isinstance(menu, list):
for item in menu: for item in menu:
resolve_urls_inplace(item, pk) resolve_urls_inplace(item, pk, app)
else: else:
if 'url' in menu: if 'url' in menu:
menu['url'] = reverse(menu['url'], kwargs={'pk': pk}) menu['url'] = reverse('%s:%s' % (app, menu['url']),
kwargs={'pk': pk})
if 'children' in menu: if 'children' in menu:
resolve_urls_inplace(menu['children'], pk) resolve_urls_inplace(menu['children'], pk, app)

3
base/urls.py

@ -2,8 +2,11 @@ from django.conf.urls import url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from .apps import AppConfig
from .views import CasaLegislativaTableAuxView, HelpView from .views import CasaLegislativaTableAuxView, HelpView
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^sistema/', TemplateView.as_view(template_name='sistema.html')), url(r'^sistema/', TemplateView.as_view(template_name='sistema.html')),
url(r'^ajuda/(?P<topic>\w+)$', HelpView.as_view(), name='help_topic'), url(r'^ajuda/(?P<topic>\w+)$', HelpView.as_view(), name='help_topic'),

2
base/views.py

@ -64,4 +64,4 @@ class CasaLegislativaTableAuxView(FormView):
return self.render_to_response({'form': form}) return self.render_to_response({'form': form})
def get_success_url(self): def get_success_url(self):
return reverse('casa_legislativa') return reverse('base:casa_legislativa')

2
comissoes/__init__.py

@ -1 +1 @@
default_app_config = 'comissoes.apps.ComissoesAppConfig' default_app_config = 'comissoes.apps.AppConfig'

4
comissoes/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class ComissoesAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'comissoes' name = 'comissoes'
verbose_name = _('Comissões') verbose_name = _('Comissões')

8
comissoes/test_comissoes.py

@ -54,7 +54,7 @@ def test_incluir_parlamentar_submit(client):
nome='Cargo', nome='Cargo',
unico=True) unico=True)
response = client.post(reverse('comissao:comissao_parlamentar', response = client.post(reverse('comissoes:comissao_parlamentar',
kwargs={'pk': comissao.pk, kwargs={'pk': comissao.pk,
'id': composicao.pk}), 'id': composicao.pk}),
{'parlamentar_id': filiacao.pk, {'parlamentar_id': filiacao.pk,
@ -76,7 +76,7 @@ def test_incluir_parlamentar_errors(client):
comissao = make_comissao() comissao = make_comissao()
composicao = make_composicao(comissao) composicao = make_composicao(comissao)
response = client.post(reverse('comissao:comissao_parlamentar', response = client.post(reverse('comissoes:comissao_parlamentar',
kwargs={'pk': comissao.pk, kwargs={'pk': comissao.pk,
'id': composicao.pk}), 'id': composicao.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
@ -96,7 +96,7 @@ def test_incluir_comissao_submit(client):
sigla='T', sigla='T',
nome='Teste') nome='Teste')
response = client.post(reverse('comissao:cadastrar_comissao'), response = client.post(reverse('comissoes:cadastrar_comissao'),
{'tipo': tipo.pk, {'tipo': tipo.pk,
'nome': 'Comissão Teste', 'nome': 'Comissão Teste',
'sigla': 'CT', 'sigla': 'CT',
@ -113,7 +113,7 @@ def test_incluir_comissao_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_incluir_comissao_errors(client): def test_incluir_comissao_errors(client):
response = client.post(reverse('comissao:cadastrar_comissao'), response = client.post(reverse('comissoes:cadastrar_comissao'),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)

10
comissoes/urls.py

@ -7,9 +7,11 @@ from comissoes.views import (CadastrarComissaoView, CargoCrud, ComissaoCrud,
PeriodoComposicaoCrud, ReunioesView, PeriodoComposicaoCrud, ReunioesView,
TipoComissaoCrud) TipoComissaoCrud)
comissao_url_patterns, namespace = ComissaoCrud.get_urls() from .apps import AppConfig
comissao_url_patterns = comissao_url_patterns + [ app_name = AppConfig.name
comissao_url_patterns = ComissaoCrud.get_urls() + [
url(r'^(?P<pk>\d+)/composicao$', url(r'^(?P<pk>\d+)/composicao$',
ComposicaoView.as_view(), name='composicao'), ComposicaoView.as_view(), name='composicao'),
url(r'^(?P<pk>\d+)/materias-em-tramitacao$', url(r'^(?P<pk>\d+)/materias-em-tramitacao$',
@ -28,8 +30,10 @@ comissao_url_patterns = comissao_url_patterns + [
CadastrarComissaoView.as_view(), name='cadastrar_comissao'), CadastrarComissaoView.as_view(), name='cadastrar_comissao'),
] ]
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^comissoes/', include(comissao_url_patterns, namespace)), url(r'^comissoes/', include(comissao_url_patterns)),
url(r'^sistema/comissoes/cargo/', include(CargoCrud.get_urls())), url(r'^sistema/comissoes/cargo/', include(CargoCrud.get_urls())),
url(r'^sistema/comissoes/periodo-composicao/', url(r'^sistema/comissoes/periodo-composicao/',

6
comissoes/views.py

@ -21,7 +21,7 @@ ComissaoCrud = Crud.build(Comissao, 'modulo_comissoes')
class CadastrarComissaoView(CreateView): class CadastrarComissaoView(CreateView):
template_name = "comissoes/cadastrar_comissao.html" template_name = "comissoes/cadastrar_comissao.html"
form_class = CadastrarComissaoForm form_class = CadastrarComissaoForm
success_url = reverse_lazy('comissao:list') success_url = reverse_lazy('comissoes:comissao_list')
class ComposicaoView(FormView): class ComposicaoView(FormView):
@ -124,7 +124,7 @@ class ComissaoParlamentarIncluirView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('comissao:composicao', kwargs={'pk': pk}) return reverse('comissoes:composicao', kwargs={'pk': pk})
class ComissaoParlamentarEditView(FormView): class ComissaoParlamentarEditView(FormView):
@ -166,7 +166,7 @@ class ComissaoParlamentarEditView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('comissao:composicao', kwargs={'pk': pk}) return reverse('comissoes:composicao', kwargs={'pk': pk})
class MateriasTramitacaoListView(ListView): class MateriasTramitacaoListView(ListView):

4
compilacao/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class CompilacaoAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'compilacao' name = 'compilacao'
verbose_name = _('Compilação') verbose_name = _('Compilação')

4
compilacao/urls.py

@ -4,6 +4,10 @@ from compilacao import views
from compilacao.views import (TipoNotaCrud, TipoPublicacaoCrud, TipoVideCrud, from compilacao.views import (TipoNotaCrud, TipoPublicacaoCrud, TipoVideCrud,
VeiculoPublicacaoCrud) VeiculoPublicacaoCrud)
from .apps import AppConfig
app_name = AppConfig.name
urlpatterns_compilacao = [ urlpatterns_compilacao = [
url(r'^$', views.TaListView.as_view(), name='ta_list'), url(r'^$', views.TaListView.as_view(), name='ta_list'),
url(r'^create$', views.TaCreateView.as_view(), name='ta_create'), url(r'^create$', views.TaCreateView.as_view(), name='ta_create'),

55
crud/base.py

@ -8,15 +8,18 @@ from django.views.generic import (CreateView, DeleteView, DetailView, ListView,
from crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display from crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display
LIST, CREATE, DETAIL, UPDATE, DELETE = \
'list', 'create', 'detail', 'update', 'delete'
def _form_invalid_message(msg): def _form_invalid_message(msg):
return '%s %s' % (_('Formulário inválido.'), msg) return '%s %s' % (_('Formulário inválido.'), msg)
FORM_MESSAGES = {'create': (_('Registro criado com sucesso!'), FORM_MESSAGES = {CREATE: (_('Registro criado com sucesso!'),
_('O registro não foi criado.')), _('O registro não foi criado.')),
'update': (_('Registro alterado com sucesso!'), UPDATE: (_('Registro alterado com sucesso!'),
_('Suas alterações não foram salvas.')), _('Suas alterações não foram salvas.')),
'delete': (_('Registro excluído com sucesso!'), DELETE: (_('Registro excluído com sucesso!'),
_('O registro não foi excluído.'))} _('O registro não foi excluído.'))}
FORM_MESSAGES = {k: (a, _form_invalid_message(b)) FORM_MESSAGES = {k: (a, _form_invalid_message(b))
for k, (a, b) in FORM_MESSAGES.items()} for k, (a, b) in FORM_MESSAGES.items()}
@ -55,32 +58,34 @@ def make_pagination(index, num_pages):
class BaseMixin(CrispyLayoutFormMixin): class BaseMixin(CrispyLayoutFormMixin):
@property @classmethod
def namespace(self): def url_name(cls, suffix):
return self.model._meta.model_name return '%s_%s' % (cls.model._meta.model_name, suffix)
def resolve_url(self, url_name, args=None): def resolve_url(self, suffix, args=None):
return reverse('%s:%s' % (self.namespace, url_name), args=args) namespace = self.model._meta.app_label
return reverse('%s:%s' % (namespace, self.url_name(suffix)),
args=args)
@property @property
def list_url(self): def list_url(self):
return self.resolve_url('list') return self.resolve_url(LIST)
@property @property
def create_url(self): def create_url(self):
return self.resolve_url('create') return self.resolve_url(CREATE)
@property @property
def detail_url(self): def detail_url(self):
return self.resolve_url('detail', args=(self.object.id,)) return self.resolve_url(DETAIL, args=(self.object.id,))
@property @property
def update_url(self): def update_url(self):
return self.resolve_url('update', args=(self.object.id,)) return self.resolve_url(UPDATE, args=(self.object.id,))
@property @property
def delete_url(self): def delete_url(self):
return self.resolve_url('delete', args=(self.object.id,)) return self.resolve_url(DELETE, args=(self.object.id,))
def get_template_names(self): def get_template_names(self):
names = super(BaseMixin, self).get_template_names() names = super(BaseMixin, self).get_template_names()
@ -131,7 +136,7 @@ class CrudListView(ListView):
class CrudCreateView(FormMessagesMixin, CreateView): class CrudCreateView(FormMessagesMixin, CreateView):
form_valid_message, form_invalid_message = FORM_MESSAGES['create'] form_valid_message, form_invalid_message = FORM_MESSAGES[CREATE]
@property @property
def cancel_url(self): def cancel_url(self):
@ -148,7 +153,7 @@ class CrudCreateView(FormMessagesMixin, CreateView):
class CrudUpdateView(FormMessagesMixin, UpdateView): class CrudUpdateView(FormMessagesMixin, UpdateView):
form_valid_message, form_invalid_message = FORM_MESSAGES['update'] form_valid_message, form_invalid_message = FORM_MESSAGES[UPDATE]
@property @property
def cancel_url(self): def cancel_url(self):
@ -160,7 +165,7 @@ class CrudUpdateView(FormMessagesMixin, UpdateView):
class CrudDeleteView(FormMessagesMixin, DeleteView): class CrudDeleteView(FormMessagesMixin, DeleteView):
form_valid_message, form_invalid_message = FORM_MESSAGES['delete'] form_valid_message, form_invalid_message = FORM_MESSAGES[DELETE]
@property @property
def cancel_url(self): def cancel_url(self):
@ -195,17 +200,13 @@ class Crud:
CrudUpdateView = _add_base(cls.UpdateView) CrudUpdateView = _add_base(cls.UpdateView)
CrudDeleteView = _add_base(cls.DeleteView) CrudDeleteView = _add_base(cls.DeleteView)
urlpatterns = [ return [url(regex, view.as_view(), name=view.url_name(suffix))
url(r'^$', CrudListView.as_view(), name='list'), for regex, view, suffix in [
url(r'^create$', CrudCreateView.as_view(), name='create'), (r'^$', CrudListView, LIST),
url(r'^(?P<pk>\d+)$', CrudDetailView.as_view(), name='detail'), (r'^create$', CrudCreateView, CREATE),
url(r'^(?P<pk>\d+)/edit$', (r'^(?P<pk>\d+)$', CrudDetailView, DETAIL),
CrudUpdateView.as_view(), name='update'), (r'^(?P<pk>\d+)/edit$', CrudUpdateView, UPDATE),
url(r'^(?P<pk>\d+)/delete$', (r'^(?P<pk>\d+)/delete$', CrudDeleteView, DELETE), ]]
CrudDeleteView.as_view(), name='delete'),
]
return urlpatterns, _add_base(object)().namespace
@classonlymethod @classonlymethod
def build(cls, _model, _help_path): def build(cls, _model, _help_path):

2
crud/tests/stub_app/urls.py

@ -3,5 +3,5 @@ from django.conf.urls import include, url
from .views import CountryCrud from .views import CountryCrud
urlpatterns = [ urlpatterns = [
url(r'^countries/', include(CountryCrud.get_urls())), url(r'^countries/', include(CountryCrud.get_urls(), 'stub_app')),
] ]

11
crud/tests/test_base.py

@ -140,11 +140,12 @@ def test_layout_detail_fieldsets(monkeypatch):
def test_reverse(): def test_reverse():
assert '/countries/' == reverse('country:list') assert '/countries/' == reverse('stub_app:country_list')
assert '/countries/create' == reverse('country:create') assert '/countries/create' == reverse('stub_app:country_create')
assert '/countries/2' == reverse('country:detail', args=(2,)) assert '/countries/2' == reverse('stub_app:country_detail', args=(2,))
assert '/countries/2/edit' == reverse('country:update', args=(2,)) assert '/countries/2/edit' == reverse('stub_app:country_update', args=(2,))
assert '/countries/2/delete' == reverse('country:delete', args=(2,)) assert '/countries/2/delete' == reverse(
'stub_app:country_delete', args=(2,))
def assert_h1(res, title): def assert_h1(res, title):

5
crud/urls.py

@ -0,0 +1,5 @@
from django.conf.urls import include, url
urlpatterns = [
url(r'', include('stub_app.urls')),
]

2
lexml/__init__.py

@ -1 +1 @@
default_app_config = 'lexml.apps.LexmlAppConfig' default_app_config = 'lexml.apps.AppConfig'

4
lexml/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class LexmlAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'lexml' name = 'lexml'
verbose_name = _('LexML') verbose_name = _('LexML')

4
lexml/urls.py

@ -2,6 +2,10 @@ from django.conf.urls import include, url
from lexml.views import LexmlProvedorCrud, LexmlPublicadorCrud from lexml.views import LexmlProvedorCrud, LexmlPublicadorCrud
from .apps import AppConfig
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^sistema/lexml/provedor/', url(r'^sistema/lexml/provedor/',
include(LexmlProvedorCrud.get_urls())), include(LexmlProvedorCrud.get_urls())),

2
materia/__init__.py

@ -1 +1 @@
default_app_config = 'materia.apps.MateriaAppConfig' default_app_config = 'materia.apps.AppConfig'

4
materia/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class MateriaAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'materia' name = 'materia'
verbose_name = _('Matéria') verbose_name = _('Matéria')

34
materia/test_materia.py

@ -98,7 +98,7 @@ def test_materia_anexada_submit(client):
materia_anexada = MateriaLegislativa.objects.get(numero=32, ano=2004) materia_anexada = MateriaLegislativa.objects.get(numero=32, ano=2004)
# Testa POST # Testa POST
response = client.post(reverse('materia_anexada', response = client.post(reverse('materia:materia_anexada',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'tipo': materia_anexada.tipo.pk, {'tipo': materia_anexada.tipo.pk,
'numero': materia_anexada.numero, 'numero': materia_anexada.numero,
@ -125,7 +125,7 @@ def test_autoria_submit(client):
autor = mommy.make(Autor, tipo=tipo_autor, nome='Autor Teste') autor = mommy.make(Autor, tipo=tipo_autor, nome='Autor Teste')
# Testa POST # Testa POST
response = client.post(reverse('autoria', response = client.post(reverse('materia:autoria',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'autor': autor.pk, {'autor': autor.pk,
'primeiro_autor': True, 'primeiro_autor': True,
@ -155,7 +155,7 @@ def test_despacho_inicial_submit(client):
data_criacao='2016-03-18') data_criacao='2016-03-18')
# Testa POST # Testa POST
response = client.post(reverse('despacho_inicial', response = client.post(reverse('materia:despacho_inicial',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'comissao': comissao.pk, {'comissao': comissao.pk,
'salvar': 'salvar'}, 'salvar': 'salvar'},
@ -177,7 +177,7 @@ def test_numeracao_submit(client):
sigla='T2', sigla='T2',
descricao='Teste_2') descricao='Teste_2')
# Testa POST # Testa POST
response = client.post(reverse('numeracao', response = client.post(reverse('materia:numeracao',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'tipo_materia': tipo.pk, {'tipo_materia': tipo.pk,
'numero_materia': '341', 'numero_materia': '341',
@ -209,7 +209,7 @@ def test_documento_acessorio_submit(client):
descricao='Teste') descricao='Teste')
# Testa POST # Testa POST
response = client.post(reverse('documento_acessorio', response = client.post(reverse('materia:documento_acessorio',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'tipo': tipo.pk, {'tipo': tipo.pk,
'nome': 'teste_nome', 'nome': 'teste_nome',
@ -234,7 +234,7 @@ def test_legislacao_citada_submit(client):
norma = make_norma() norma = make_norma()
# Testa POST # Testa POST
response = client.post(reverse('legislacao_citada', response = client.post(reverse('materia:legislacao_citada',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'tipo': norma.tipo.pk, {'tipo': norma.tipo.pk,
'numero': norma.numero, 'numero': norma.numero,
@ -260,7 +260,7 @@ def test_tramitacao_submit(client):
descricao='Status_Teste') descricao='Status_Teste')
# Testa POST # Testa POST
response = client.post( response = client.post(
reverse('tramitacao_materia', reverse('materia:tramitacao_materia',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'unidade_tramitacao_local': make_unidade_tramitacao( {'unidade_tramitacao_local': make_unidade_tramitacao(
'Unidade Local').pk, 'Unidade Local').pk,
@ -287,7 +287,7 @@ def test_tramitacao_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_form_errors_anexada(client): def test_form_errors_anexada(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('materia_anexada', response = client.post(reverse('materia:materia_anexada',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -306,7 +306,7 @@ def test_form_errors_anexada(client):
def test_form_errors_autoria(client): def test_form_errors_autoria(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('autoria', response = client.post(reverse('materia:autoria',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'materia_id': materia_principal.pk, {'materia_id': materia_principal.pk,
'partido': '', 'partido': '',
@ -324,7 +324,7 @@ def test_form_errors_autoria(client):
def test_form_errors_despacho_inicial(client): def test_form_errors_despacho_inicial(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('despacho_inicial', response = client.post(reverse('materia:despacho_inicial',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -337,7 +337,7 @@ def test_form_errors_despacho_inicial(client):
def test_form_errors_documento_acessorio(client): def test_form_errors_documento_acessorio(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('documento_acessorio', response = client.post(reverse('materia:documento_acessorio',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -352,7 +352,7 @@ def test_form_errors_documento_acessorio(client):
def test_form_errors_legislacao_citada(client): def test_form_errors_legislacao_citada(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('legislacao_citada', response = client.post(reverse('materia:legislacao_citada',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -369,7 +369,7 @@ def test_form_errors_legislacao_citada(client):
def test_form_errors_numeracao(client): def test_form_errors_numeracao(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('numeracao', response = client.post(reverse('materia:numeracao',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -388,7 +388,7 @@ def test_form_errors_numeracao(client):
def test_form_errors_tramitacao(client): def test_form_errors_tramitacao(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('tramitacao_materia', response = client.post(reverse('materia:tramitacao_materia',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -409,7 +409,7 @@ def test_form_errors_tramitacao(client):
def test_form_errors_relatoria(client): def test_form_errors_relatoria(client):
materia_principal = make_materia_principal() materia_principal = make_materia_principal()
response = client.post(reverse('relatoria', response = client.post(reverse('materia:relatoria',
kwargs={'pk': materia_principal.pk}), kwargs={'pk': materia_principal.pk}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -422,7 +422,7 @@ def test_form_errors_relatoria(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_proposicao_submit(client): def test_proposicao_submit(client):
response = client.post(reverse('adicionar_proposicao'), response = client.post(reverse('materia:adicionar_proposicao'),
{'tipo': mommy.make(TipoProposicao, pk=3).pk, {'tipo': mommy.make(TipoProposicao, pk=3).pk,
'descricao': 'Teste proposição', 'descricao': 'Teste proposição',
'salvar': 'salvar'}, 'salvar': 'salvar'},
@ -438,7 +438,7 @@ def test_proposicao_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_form_errors_proposicao(client): def test_form_errors_proposicao(client):
response = client.post(reverse('adicionar_proposicao'), response = client.post(reverse('materia:adicionar_proposicao'),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)

23
materia/test_materia_urls.py

@ -0,0 +1,23 @@
import pytest
from django.core.urlresolvers import reverse
import pytest
@pytest.mark.parametrize("test_input,kwargs,expected", [
('materia:pesquisar_materia_list',
{},
'/materia/pesquisar-materia-list'),
('materia:relatoria_edit',
{'pk': '11', 'id': '99'},
'/materia/11/relatoria/99/edit'),
('materia:tramitacao_edit',
{'pk': '3', 'id': '8'},
'/materia/3/tramitacao/8/edit'),
('materia:adicionar_proposicao', {}, '/materia/proposicao'),
('materia:editar_proposicao',
{'pk': '3'},
'/materia/proposicao/3/edit'),
('materia:list_proposicao', {}, '/materia/proposicao_list'),
])
def test_reverse(test_input, kwargs, expected):
assert reverse(test_input, kwargs=kwargs) == expected

5
materia/urls.py

@ -22,11 +22,12 @@ from materia.views import (AcompanhamentoConfirmarView,
TramitacaoEditView, TramitacaoView, TramitacaoEditView, TramitacaoView,
UnidadeTramitacaoCrud) UnidadeTramitacaoCrud)
materia_legislativa_patterns, namespace = MateriaLegislativaCrud.get_urls() from .apps import AppConfig
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^materia/', include(materia_legislativa_patterns, namespace)), url(r'^materia/', include(MateriaLegislativaCrud.get_urls())),
url(r'^materia/(?P<pk>[0-9]+)/ta$', url(r'^materia/(?P<pk>[0-9]+)/ta$',

64
materia/views.py

@ -59,13 +59,13 @@ TramitacaoCrud = Crud.build(Tramitacao, '')
class FormularioSimplificadoView(CreateView): class FormularioSimplificadoView(CreateView):
template_name = "materia/formulario_simplificado.html" template_name = "materia/formulario_simplificado.html"
form_class = FormularioSimplificadoForm form_class = FormularioSimplificadoForm
success_url = reverse_lazy('materialegislativa:list') success_url = reverse_lazy('materia:materialegislativa_list')
class FormularioCadastroView(CreateView): class FormularioCadastroView(CreateView):
template_name = "materia/formulario_cadastro.html" template_name = "materia/formulario_cadastro.html"
form_class = FormularioCadastroForm form_class = FormularioCadastroForm
success_url = reverse_lazy('formulario_cadastro') success_url = reverse_lazy('materia:formulario_cadastro')
class MateriaAnexadaView(FormView): class MateriaAnexadaView(FormView):
@ -141,7 +141,7 @@ class MateriaAnexadaView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('materia_anexada', kwargs={'pk': pk}) return reverse('materia:materia_anexada', kwargs={'pk': pk})
class MateriaAnexadaEditView(FormView): class MateriaAnexadaEditView(FormView):
@ -220,11 +220,11 @@ class MateriaAnexadaEditView(FormView):
else: else:
return self.render_to_response( return self.render_to_response(
{'form': form, {'form': form,
'materialegislativa': mat_principal}) 'materia': mat_principal})
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('materia_anexada', kwargs={'pk': pk}) return reverse('materia:materia_anexada', kwargs={'pk': pk})
class DespachoInicialView(CreateView): class DespachoInicialView(CreateView):
@ -259,7 +259,7 @@ class DespachoInicialView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('despacho_inicial', kwargs={'pk': pk}) return reverse('materia:despacho_inicial', kwargs={'pk': pk})
class DespachoInicialEditView(CreateView): class DespachoInicialEditView(CreateView):
@ -295,7 +295,7 @@ class DespachoInicialEditView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('despacho_inicial', kwargs={'pk': pk}) return reverse('materia:despacho_inicial', kwargs={'pk': pk})
class LegislacaoCitadaView(FormView): class LegislacaoCitadaView(FormView):
@ -356,7 +356,7 @@ class LegislacaoCitadaView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('legislacao_citada', kwargs={'pk': pk}) return reverse('materia:legislacao_citada', kwargs={'pk': pk})
class LegislacaoCitadaEditView(FormView): class LegislacaoCitadaEditView(FormView):
@ -365,7 +365,7 @@ class LegislacaoCitadaEditView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('legislacao_citada', kwargs={'pk': pk}) return reverse('materia:legislacao_citada', kwargs={'pk': pk})
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
materia = MateriaLegislativa.objects.get(id=kwargs['pk']) materia = MateriaLegislativa.objects.get(id=kwargs['pk'])
@ -455,7 +455,7 @@ class NumeracaoView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('numeracao', kwargs={'pk': pk}) return reverse('materia:numeracao', kwargs={'pk': pk})
class NumeracaoEditView(CreateView): class NumeracaoEditView(CreateView):
@ -495,7 +495,7 @@ class NumeracaoEditView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('numeracao', kwargs={'pk': pk}) return reverse('materia:numeracao', kwargs={'pk': pk})
class DocumentoAcessorioView(CreateView): class DocumentoAcessorioView(CreateView):
@ -531,13 +531,13 @@ class DocumentoAcessorioView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('documento_acessorio', kwargs={'pk': pk}) return reverse('materia:documento_acessorio', kwargs={'pk': pk})
class AcompanhamentoConfirmarView(TemplateView): class AcompanhamentoConfirmarView(TemplateView):
def get_redirect_url(self): def get_redirect_url(self):
return reverse("sessaoplenaria:list_pauta_sessao") return reverse("sessao:list_pauta_sessao")
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
materia_id = kwargs['pk'] materia_id = kwargs['pk']
@ -554,7 +554,7 @@ class AcompanhamentoConfirmarView(TemplateView):
class AcompanhamentoExcluirView(TemplateView): class AcompanhamentoExcluirView(TemplateView):
def get_redirect_url(self): def get_redirect_url(self):
return reverse("sessaoplenaria:list_pauta_sessao") return reverse("sessao:list_pauta_sessao")
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
materia_id = kwargs['pk'] materia_id = kwargs['pk']
@ -602,7 +602,7 @@ class DocumentoAcessorioEditView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('documento_acessorio', kwargs={'pk': pk}) return reverse('materia:documento_acessorio', kwargs={'pk': pk})
class RelatoriaEditView(FormView): class RelatoriaEditView(FormView):
@ -611,7 +611,7 @@ class RelatoriaEditView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('relatoria', kwargs={'pk': pk}) return reverse('materia:relatoria', kwargs={'pk': pk})
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
form = RelatoriaForm() form = RelatoriaForm()
@ -668,7 +668,7 @@ class RelatoriaView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('relatoria', kwargs={'pk': pk}) return reverse('materia:relatoria', kwargs={'pk': pk})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
form = RelatoriaForm(request.POST) form = RelatoriaForm(request.POST)
@ -808,8 +808,9 @@ def criar_email_confirmacao(request, casa_legislativa, materia, hash_txt=''):
casa_legislativa.uf) casa_legislativa.uf)
base_url = get_base_url(request) base_url = get_base_url(request)
materia_url = reverse('acompanhar_materia', kwargs={'pk': materia.id}) materia_url = reverse('materia:acompanhar_materia',
confirmacao_url = reverse('acompanhar_confirmar', kwargs={'pk': materia.id})
confirmacao_url = reverse('materia:acompanhar_confirmar',
kwargs={'pk': materia.id}) kwargs={'pk': materia.id})
autores = [] autores = []
@ -844,8 +845,10 @@ def criar_email_tramitacao(request, casa_legislativa, materia, hash_txt=''):
casa_legislativa.uf) casa_legislativa.uf)
base_url = get_base_url(request) base_url = get_base_url(request)
url_materia = reverse('acompanhar_materia', kwargs={'pk': materia.id}) url_materia = reverse('materia:acompanhar_materia',
url_excluir = reverse('acompanhar_excluir', kwargs={'pk': materia.id}) kwargs={'pk': materia.id})
url_excluir = reverse('materia:acompanhar_excluir',
kwargs={'pk': materia.id})
autores = [] autores = []
for autoria in materia.autoria_set.all(): for autoria in materia.autoria_set.all():
@ -1028,7 +1031,7 @@ class TramitacaoView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('tramitacao_materia', kwargs={'pk': pk}) return reverse('materia:tramitacao_materia', kwargs={'pk': pk})
class TramitacaoEditView(CreateView): class TramitacaoEditView(CreateView):
@ -1083,7 +1086,7 @@ class TramitacaoEditView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('tramitacao_materia', kwargs={'pk': pk}) return reverse('materia:tramitacao_materia', kwargs={'pk': pk})
class AutoriaView(CreateView): class AutoriaView(CreateView):
@ -1125,7 +1128,7 @@ class AutoriaView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('autoria', kwargs={'pk': pk}) return reverse('materia:autoria', kwargs={'pk': pk})
class AutoriaEditView(CreateView): class AutoriaEditView(CreateView):
@ -1164,7 +1167,7 @@ class AutoriaEditView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('autoria', kwargs={'pk': pk}) return reverse('materia:autoria', kwargs={'pk': pk})
class ProposicaoListView(ListView): class ProposicaoListView(ListView):
@ -1192,7 +1195,7 @@ class MateriaLegislativaPesquisaView(FormView):
template_name = 'materia/pesquisa_materia.html' template_name = 'materia/pesquisa_materia.html'
def get_success_url(self): def get_success_url(self):
return reverse('pesquisar_materia') return reverse('materia:pesquisar_materia')
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
form = MateriaLegislativaPesquisaForm() form = MateriaLegislativaPesquisaForm()
@ -1240,7 +1243,8 @@ class MateriaLegislativaPesquisaView(FormView):
kwargs['situacao'] = form.data['situacao'] kwargs['situacao'] = form.data['situacao']
request.session['kwargs'] = kwargs request.session['kwargs'] = kwargs
return redirect('pesquisar_materia_list')
return redirect('materia:pesquisar_materia_list')
class PesquisaMateriaListView(ListView): class PesquisaMateriaListView(ListView):
@ -1306,7 +1310,7 @@ class ProposicaoView(CreateView):
form_class = ProposicaoForm form_class = ProposicaoForm
def get_success_url(self): def get_success_url(self):
return reverse('list_proposicao') return reverse('materia:list_proposicao')
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return self.render_to_response({'form': self.get_form()}) return self.render_to_response({'form': self.get_form()})
@ -1341,7 +1345,7 @@ class ProposicaoEditView(CreateView):
form_class = ProposicaoForm form_class = ProposicaoForm
def get_success_url(self): def get_success_url(self):
return reverse('list_proposicao') return reverse('materia:list_proposicao')
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
proposicao = Proposicao.objects.get(id=kwargs['pk']) proposicao = Proposicao.objects.get(id=kwargs['pk'])
@ -1459,4 +1463,4 @@ class AcompanhamentoMateriaView(MateriaLegislativaCrud.CrudDetailView):
'materia': materia}) 'materia': materia})
def get_success_url(self): def get_success_url(self):
return reverse('sessaoplenaria:list_pauta_sessao') return reverse('sessao:list_pauta_sessao')

2
norma/__init__.py

@ -1 +1 @@
default_app_config = 'norma.apps.NormaAppConfig' default_app_config = 'norma.apps.AppConfig'

4
norma/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class NormaAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'norma' name = 'norma'
verbose_name = _('Norma Jurídica') verbose_name = _('Norma Jurídica')

4
norma/test_norma.py

@ -13,7 +13,7 @@ def test_incluir_norma_submit(client):
descricao='Teste') descricao='Teste')
# Testa POST # Testa POST
response = client.post(reverse('norma_incluir'), response = client.post(reverse('norma:norma_incluir'),
{'tipo': tipo.pk, {'tipo': tipo.pk,
'numero': '1', 'numero': '1',
'ano': '2016', 'ano': '2016',
@ -33,7 +33,7 @@ def test_incluir_norma_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_incluir_norma_errors(client): def test_incluir_norma_errors(client):
response = client.post(reverse('norma_incluir'), response = client.post(reverse('norma:norma_incluir'),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)

10
norma/urls.py

@ -4,6 +4,10 @@ from norma.views import (AssuntoNormaCrud, NormaEditView, NormaIncluirView,
NormaPesquisaView, NormaTaView, NormaTemporarioCrud, NormaPesquisaView, NormaTaView, NormaTemporarioCrud,
PesquisaNormaListView, TipoNormaCrud) PesquisaNormaListView, TipoNormaCrud)
from .apps import AppConfig
app_name = AppConfig.name
# @LeandroRoberto comentou em # @LeandroRoberto comentou em
# https://github.com/interlegis/sapl/pull/255#discussion_r55894269 # https://github.com/interlegis/sapl/pull/255#discussion_r55894269
# #
@ -14,15 +18,13 @@ from norma.views import (AssuntoNormaCrud, NormaEditView, NormaIncluirView,
# o código abaixo: # o código abaixo:
# url(r'^norma/(?P<pk>[0-9]+)/ta$', NormaTaView.as_view(), name='ta') # url(r'^norma/(?P<pk>[0-9]+)/ta$', NormaTaView.as_view(), name='ta')
# bem como a classe NormaTaView que está em norma.views # bem como a classe NormaTaView que está em norma.views
norma_url_patterns, namespace = NormaTemporarioCrud.get_urls() norma_url_patterns = NormaTemporarioCrud.get_urls() + [
norma_url_patterns += [
url(r'^norma/(?P<pk>[0-9]+)/ta$', url(r'^norma/(?P<pk>[0-9]+)/ta$',
NormaTaView.as_view(), name='ta') NormaTaView.as_view(), name='ta')
] ]
urlpatterns = [ urlpatterns = [
url(r'^norma/', include(norma_url_patterns, namespace)), url(r'^norma/', include(norma_url_patterns)),
url(r'^sistema/norma/tipo/', include(TipoNormaCrud.get_urls())), url(r'^sistema/norma/tipo/', include(TipoNormaCrud.get_urls())),
url(r'^sistema/norma/assunto/', include(AssuntoNormaCrud.get_urls())), url(r'^sistema/norma/assunto/', include(AssuntoNormaCrud.get_urls())),

12
norma/views.py

@ -16,13 +16,13 @@ from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica,
AssuntoNormaCrud = Crud.build(AssuntoNorma, 'assunto_norma_juridica') AssuntoNormaCrud = Crud.build(AssuntoNorma, 'assunto_norma_juridica')
TipoNormaCrud = Crud.build(TipoNormaJuridica, 'tipo_norma_juridica') TipoNormaCrud = Crud.build(TipoNormaJuridica, 'tipo_norma_juridica')
NormaCrud = Crud.build(NormaJuridica, '') NormaCrud = Crud.build(NormaJuridica, '')
NormaTemporarioCrud = Crud.build(NormaJuridica, 'normajuridica') NormaTemporarioCrud = Crud.build(NormaJuridica, 'norma')
LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '') LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '')
class NormaPesquisaView(FormView): class NormaPesquisaView(FormView):
template_name = "norma/pesquisa.html" template_name = "norma/pesquisa.html"
success_url = "normajuridica:norma_pesquisa" success_url = "norma:norma_pesquisa"
form_class = NormaJuridicaPesquisaForm form_class = NormaJuridicaPesquisaForm
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
@ -42,7 +42,7 @@ class NormaPesquisaView(FormView):
kwargs['publicacao_final'] = form.data['publicacao_final'] kwargs['publicacao_final'] = form.data['publicacao_final']
request.session['kwargs'] = kwargs request.session['kwargs'] = kwargs
return redirect('list_pesquisa_norma') return redirect('norma:list_pesquisa_norma')
class PesquisaNormaListView(ListView): class PesquisaNormaListView(ListView):
@ -113,10 +113,10 @@ class PesquisaNormaListView(ListView):
class NormaIncluirView(CreateView): class NormaIncluirView(CreateView):
template_name = "norma/normajuridica_incluir.html" template_name = "norma/normajuridica_incluir.html"
form_class = NormaJuridicaForm form_class = NormaJuridicaForm
success_url = reverse_lazy('normajuridica:list') success_url = reverse_lazy('norma:normajuridica_list')
def get_success_url(self): def get_success_url(self):
return reverse_lazy('normajuridica:list') return reverse_lazy('norma:norma_pesquisa')
def form_valid(self, form): def form_valid(self, form):
norma = form.save(commit=False) norma = form.save(commit=False)
@ -135,7 +135,7 @@ class NormaEditView(UpdateView):
template_name = "norma/normajuridica_incluir.html" template_name = "norma/normajuridica_incluir.html"
form_class = NormaJuridicaForm form_class = NormaJuridicaForm
model = NormaJuridica model = NormaJuridica
success_url = reverse_lazy('normajuridica:list') success_url = reverse_lazy('norma:pesquisa_norma')
def get_initial(self): def get_initial(self):
data = super(NormaEditView, self).get_initial() data = super(NormaEditView, self).get_initial()

1
painel/__init__.py

@ -0,0 +1 @@
default_app_config = 'painel.apps.AppConfig'

7
painel/apps.py

@ -0,0 +1,7 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):
name = 'painel'
verbose_name = _('Painel Eletrônico')

3
painel/urls.py

@ -1,10 +1,13 @@
from django.conf.urls import url from django.conf.urls import url
from .apps import AppConfig
from .views import controlador_painel # CronometroPainelCrud, from .views import controlador_painel # CronometroPainelCrud,
from .views import (cronometro_painel, get_dados_painel, painel_mensagem_view, from .views import (cronometro_painel, get_dados_painel, painel_mensagem_view,
painel_parlamentares_view, painel_view, painel_parlamentares_view, painel_view,
painel_votacao_view) painel_votacao_view)
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^(?P<pk>\d+)/painel$', painel_view, name="painel_principal"), url(r'^(?P<pk>\d+)/painel$', painel_view, name="painel_principal"),
url(r'^painel/(?P<pk>\d+)/dados$', get_dados_painel, name='dados_painel'), url(r'^painel/(?P<pk>\d+)/dados$', get_dados_painel, name='dados_painel'),

2
parlamentares/__init__.py

@ -1 +1 @@
default_app_config = 'parlamentares.apps.ParlamentaresAppConfig' default_app_config = 'parlamentares.apps.AppConfig'

4
parlamentares/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class ParlamentaresAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'parlamentares' name = 'parlamentares'
verbose_name = _('Parlamentares') verbose_name = _('Parlamentares')

21
parlamentares/test_parlamentares.py

@ -11,9 +11,12 @@ from .models import (Dependente, Filiacao, Legislatura, Mandato, Parlamentar,
def TODO_DESLIGADO_RELIGAR_test_cadastro_parlamentar(client): def TODO_DESLIGADO_RELIGAR_test_cadastro_parlamentar(client):
mommy.make(Legislatura, pk=5) mommy.make(Legislatura, pk=5)
response = client.get(reverse('parlamentares_cadastro', kwargs={'pk': 5})) response = client.get(reverse('parlamentares:parlamentares_cadastro',
kwargs={'pk': 5}))
assert response.status_code == 200 assert response.status_code == 200
response = client.post(reverse('parlamentares_cadastro', kwargs={'pk': 5}),
response = client.post(reverse('parlamentares:parlamentares_cadastro',
kwargs={'pk': 5}),
{'nome_completo': 'Teresa Barbosa', {'nome_completo': 'Teresa Barbosa',
'nome_parlamentar': 'Terezinha', 'nome_parlamentar': 'Terezinha',
'sexo': 'F', 'sexo': 'F',
@ -30,7 +33,7 @@ def test_filiacao_submit(client):
mommy.make(Parlamentar, pk=14) mommy.make(Parlamentar, pk=14)
mommy.make(Partido, pk=32) mommy.make(Partido, pk=32)
client.post(reverse('parlamentares_filiacao', client.post(reverse('parlamentares:parlamentares_filiacao',
kwargs={'pk': 14}), kwargs={'pk': 14}),
{'partido': 32, {'partido': 32,
'data': '2016-03-22', 'data': '2016-03-22',
@ -47,7 +50,7 @@ def test_dependente_submit(client):
mommy.make(Partido, pk=32) mommy.make(Partido, pk=32)
mommy.make(TipoDependente, pk=3) mommy.make(TipoDependente, pk=3)
client.post(reverse('parlamentares_dependentes', client.post(reverse('parlamentares:parlamentares_dependentes',
kwargs={'pk': 14}), kwargs={'pk': 14}),
{'nome': 'Eduardo', {'nome': 'Eduardo',
'tipo': 3, 'tipo': 3,
@ -63,7 +66,7 @@ def test_dependente_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_form_errors_dependente(client): def test_form_errors_dependente(client):
mommy.make(Parlamentar, pk=14) mommy.make(Parlamentar, pk=14)
response = client.post(reverse('parlamentares_dependentes', response = client.post(reverse('parlamentares:parlamentares_dependentes',
kwargs={'pk': 14}), kwargs={'pk': 14}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)
@ -80,7 +83,7 @@ def test_form_errors_dependente(client):
def test_form_errors_filiacao(client): def test_form_errors_filiacao(client):
mommy.make(Parlamentar, pk=14) mommy.make(Parlamentar, pk=14)
response = client.post(reverse('parlamentares_filiacao', response = client.post(reverse('parlamentares:parlamentares_filiacao',
kwargs={'pk': 14}), kwargs={'pk': 14}),
{'partido': '', {'partido': '',
'salvar': 'salvar'}, 'salvar': 'salvar'},
@ -97,7 +100,7 @@ def test_mandato_submit(client):
mommy.make(Parlamentar, pk=14) mommy.make(Parlamentar, pk=14)
mommy.make(Legislatura, pk=5) mommy.make(Legislatura, pk=5)
client.post(reverse('parlamentares_mandato', client.post(reverse('parlamentares:parlamentares_mandato',
kwargs={'pk': 14}), kwargs={'pk': 14}),
{'legislatura': 5, {'legislatura': 5,
'data_fim_mandato': '2016-01-01', 'data_fim_mandato': '2016-01-01',
@ -113,7 +116,7 @@ def test_mandato_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_form_errors_mandato(client): def test_form_errors_mandato(client):
mommy.make(Parlamentar, pk=14) mommy.make(Parlamentar, pk=14)
response = client.post(reverse('parlamentares_mandato', response = client.post(reverse('parlamentares:parlamentares_mandato',
kwargs={'pk': 14}), kwargs={'pk': 14}),
{'legislatura': '', {'legislatura': '',
'salvar': 'salvar'}, 'salvar': 'salvar'},
@ -131,7 +134,7 @@ def test_form_errors_mandato(client):
def test_incluir_parlamentar_errors(client): def test_incluir_parlamentar_errors(client):
mommy.make(Legislatura, pk=5) mommy.make(Legislatura, pk=5)
response = client.post(reverse('parlamentares_cadastro', response = client.post(reverse('parlamentares:parlamentares_cadastro',
kwargs={'pk': 5}), kwargs={'pk': 5}),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)

6
parlamentares/test_parlamentares_urls.py

@ -0,0 +1,6 @@
from django.core.urlresolvers import reverse
def test_urls_materia():
st = reverse('materia:pesquisar_materia_list')
assert st == '/materia/pesquisar-materia-list'

4
parlamentares/urls.py

@ -12,6 +12,10 @@ from parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
TipoAfastamentoCrud, TipoDependenteCrud, TipoAfastamentoCrud, TipoDependenteCrud,
TipoMilitarCrud) TipoMilitarCrud)
from .apps import AppConfig
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^sistema/parlamentares/legislatura/', url(r'^sistema/parlamentares/legislatura/',
include(LegislaturaCrud.get_urls())), include(LegislaturaCrud.get_urls())),

28
parlamentares/views.py

@ -175,7 +175,7 @@ class ParlamentaresCadastroView(CreateView):
model = Parlamentar model = Parlamentar
def get_success_url(self): def get_success_url(self):
return reverse('parlamentares') return reverse('parlamentares:parlamentares')
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ParlamentaresCadastroView, self).get_context_data( context = super(ParlamentaresCadastroView, self).get_context_data(
@ -193,7 +193,7 @@ class ParlamentaresEditarView(UpdateView):
template_name = "parlamentares/parlamentares_cadastro.html" template_name = "parlamentares/parlamentares_cadastro.html"
form_class = ParlamentaresEditForm form_class = ParlamentaresEditForm
model = Parlamentar model = Parlamentar
success_url = reverse_lazy('parlamentares') success_url = reverse_lazy('parlamentares:parlamentares')
def form_valid(self, form): def form_valid(self, form):
parlamentar = form.instance parlamentar = form.instance
@ -219,7 +219,8 @@ class ParlamentaresDependentesView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_dependentes', kwargs={'pk': pk}) return reverse('parlamentares:parlamentares_dependentes',
kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ParlamentaresDependentesView, self).\ context = super(ParlamentaresDependentesView, self).\
@ -257,7 +258,8 @@ class ParlamentaresDependentesEditView(UpdateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_dependentes', kwargs={'pk': pk}) return reverse('parlamentares:parlamentares_dependentes',
kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ParlamentaresDependentesEditView, self).\ context = super(ParlamentaresDependentesEditView, self).\
@ -280,7 +282,7 @@ class ParlamentaresDependentesEditView(UpdateView):
class MesaDiretoraView(FormView): class MesaDiretoraView(FormView):
template_name = "mesa_diretora/mesa_diretora.html" template_name = "mesa_diretora/mesa_diretora.html"
success_url = reverse_lazy('mesa_diretora') success_url = reverse_lazy('parlamentares:mesa_diretora')
# Essa função avisa quando se pode compor uma Mesa Legislativa) # Essa função avisa quando se pode compor uma Mesa Legislativa)
def validation(self, request): def validation(self, request):
@ -345,7 +347,7 @@ class MesaDiretoraView(FormView):
id=int(request.POST['cargo'])) id=int(request.POST['cargo']))
composicao.save() composicao.save()
return self.form_valid(form=None) return redirect('parlamentares:mesa_diretora')
elif 'Excluir' in request.POST: elif 'Excluir' in request.POST:
@ -361,7 +363,7 @@ class MesaDiretoraView(FormView):
cargo_id=int(ids[1]) cargo_id=int(ids[1])
) )
composicao.delete() composicao.delete()
return self.form_valid(form=None) return redirect('parlamentares:mesa_diretora')
else: else:
mesa = ComposicaoMesa.objects.filter( mesa = ComposicaoMesa.objects.filter(
sessao_legislativa=request.POST['sessao']) sessao_legislativa=request.POST['sessao'])
@ -399,7 +401,8 @@ class FiliacaoView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_filiacao', kwargs={'pk': pk}) return reverse('parlamentares:parlamentares_filiacao',
kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(FiliacaoView, self).get_context_data(**kwargs) context = super(FiliacaoView, self).get_context_data(**kwargs)
@ -439,7 +442,8 @@ class FiliacaoEditView(UpdateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_filiacao', kwargs={'pk': pk}) return reverse('parlamentares:parlamentares_filiacao',
kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(FiliacaoEditView, self).get_context_data(**kwargs) context = super(FiliacaoEditView, self).get_context_data(**kwargs)
@ -472,7 +476,8 @@ class MandatoView(CreateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_mandato', kwargs={'pk': pk}) return reverse('parlamentares:parlamentares_mandato',
kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(MandatoView, self).get_context_data(**kwargs) context = super(MandatoView, self).get_context_data(**kwargs)
@ -510,7 +515,8 @@ class MandatoEditView(UpdateView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_mandato', kwargs={'pk': pk}) return reverse('parlamentares:parlamentares_mandato',
kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(MandatoEditView, self).get_context_data(**kwargs) context = super(MandatoEditView, self).get_context_data(**kwargs)

2
protocoloadm/__init__.py

@ -1 +1 @@
default_app_config = 'protocoloadm.apps.ProtocoloadmAppConfig' default_app_config = 'protocoloadm.apps.AppConfig'

4
protocoloadm/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class ProtocoloadmAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'protocoloadm' name = 'protocoloadm'
verbose_name = _('Protocolo Administrativo') verbose_name = _('Protocolo Administrativo')

4
protocoloadm/test_protocoloadm.py

@ -9,7 +9,7 @@ from .models import Protocolo
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_anular_protocolo_acessivel(client): def test_anular_protocolo_acessivel(client):
response = client.get(reverse('anular_protocolo')) response = client.get(reverse('protocoloadm:anular_protocolo'))
assert response.status_code == 200 assert response.status_code == 200
@ -18,7 +18,7 @@ def test_anular_protocolo_submit(client):
mommy.make(Protocolo, numero='76', ano='2016', anulado=False) mommy.make(Protocolo, numero='76', ano='2016', anulado=False)
# TODO: setar usuario e IP # TODO: setar usuario e IP
response = client.post(reverse('anular_protocolo'), response = client.post(reverse('protocoloadm:anular_protocolo'),
{'numero': '76', {'numero': '76',
'ano': '2016', 'ano': '2016',
'justificativa_anulacao': 'TESTE', 'justificativa_anulacao': 'TESTE',

4
protocoloadm/urls.py

@ -24,6 +24,10 @@ from protocoloadm.views import (AnularProtocoloAdmView,
TramitacaoAdministrativoCrud, TramitacaoAdministrativoCrud,
TramitacaoAdmView, pesquisa_autores) TramitacaoAdmView, pesquisa_autores)
from .apps import AppConfig
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^protocoloadm/docadm/', url(r'^protocoloadm/docadm/',
include(DocumentoAdministrativoCrud.get_urls())), include(DocumentoAdministrativoCrud.get_urls())),

28
protocoloadm/views.py

@ -41,7 +41,7 @@ class ProtocoloPesquisaView(FormView):
template_name = 'protocoloadm/protocolo_pesquisa.html' template_name = 'protocoloadm/protocolo_pesquisa.html'
form_class = ProtocoloForm form_class = ProtocoloForm
context_object_name = 'protocolos' context_object_name = 'protocolos'
success_url = reverse_lazy('protocolo') success_url = reverse_lazy('protocoloadm:protocolo')
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
form = ProtocoloForm(request.POST or None) form = ProtocoloForm(request.POST or None)
@ -85,7 +85,7 @@ class ProtocoloPesquisaView(FormView):
kwargs['assunto_ementa__icontains'] = request.POST['assunto'] kwargs['assunto_ementa__icontains'] = request.POST['assunto']
request.session['kwargs'] = kwargs request.session['kwargs'] = kwargs
return redirect('protocolo_list') return redirect('protocoloadm:protocolo_list')
else: else:
return self.form_invalid(form) return self.form_invalid(form)
@ -119,7 +119,7 @@ class AnularProtocoloAdmView(CreateView):
form_valid_message = _('Protocolo anulado com sucesso!') form_valid_message = _('Protocolo anulado com sucesso!')
def get_success_url(self): def get_success_url(self):
return reverse('protocolo') return reverse('protocoloadm:protocolo')
def get_initial(self): def get_initial(self):
initial_data = {} initial_data = {}
@ -145,7 +145,7 @@ class ProtocoloDocumentoView(FormValidMessageMixin, CreateView):
form_valid_message = _('Protocolo cadastrado com sucesso!') form_valid_message = _('Protocolo cadastrado com sucesso!')
def get_success_url(self): def get_success_url(self):
return reverse('protocolo') return reverse('protocoloadm:protocolo')
def form_valid(self, form): def form_valid(self, form):
f = form.save(commit=False) f = form.save(commit=False)
@ -182,7 +182,8 @@ class CriarDocumentoProtocolo(CreateView):
return self.criar_documento(protocolo) return self.criar_documento(protocolo)
def get_success_url(self): def get_success_url(self):
return reverse('protocolo_mostrar', kwargs={'pk': self.kwargs['pk'], return reverse('protocoloadm:protocolo_mostrar',
kwargs={'pk': self.kwargs['pk'],
'ano': self.kwargs['ano']}) 'ano': self.kwargs['ano']})
def criar_documento(self, protocolo): def criar_documento(self, protocolo):
@ -254,7 +255,7 @@ class ProtocoloMateriaView(CreateView):
form_valid_message = _('Matéria cadastrada com sucesso!') form_valid_message = _('Matéria cadastrada com sucesso!')
def get_success_url(self): def get_success_url(self):
return reverse('protocolo') return reverse('protocoloadm:protocolo')
def form_valid(self, form): def form_valid(self, form):
if self.request.POST['numeracao'] == '1': if self.request.POST['numeracao'] == '1':
@ -446,10 +447,10 @@ class DetailDocumentoAdministrativo(DetailView):
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())
def get_success_delete(self): def get_success_delete(self):
return reverse('pesq_doc_adm') return reverse('protocoloadm:pesq_doc_adm')
def get_success_url(self): def get_success_url(self):
return reverse('detail_doc_adm', kwargs={ return reverse('protocoloadm:detail_doc_adm', kwargs={
'pk': self.kwargs['pk']}) 'pk': self.kwargs['pk']})
@ -497,7 +498,7 @@ class DocumentoAcessorioAdministrativoEditView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('doc_ace_adm', kwargs={'pk': pk}) return reverse('protocoloadm:doc_ace_adm', kwargs={'pk': pk})
class DocumentoAcessorioAdministrativoView(FormView): class DocumentoAcessorioAdministrativoView(FormView):
@ -536,7 +537,7 @@ class DocumentoAcessorioAdministrativoView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('doc_ace_adm', kwargs={'pk': pk}) return reverse('protocoloadm:doc_ace_adm', kwargs={'pk': pk})
class TramitacaoAdmView(FormView): class TramitacaoAdmView(FormView):
@ -572,8 +573,8 @@ class TramitacaoAdmIncluirView(FormView):
tramitacao = form.save(commit=False) tramitacao = form.save(commit=False)
tramitacao.ultima = False tramitacao.ultima = False
tramitacao.save() tramitacao.save()
return HttpResponseRedirect( return HttpResponseRedirect(reverse(
reverse('tramitacao', kwargs={'pk': pk})) 'protocoloadm:tramitacao_adm', kwargs={'pk': pk}))
else: else:
return self.form_invalid(form) return self.form_invalid(form)
@ -600,7 +601,8 @@ class TramitacaoAdmEditView(FormView):
tramitacao.ultima = False tramitacao.ultima = False
tramitacao.save() tramitacao.save()
return HttpResponseRedirect( return HttpResponseRedirect(
reverse('tramitacao', kwargs={'pk': tramitacao.documento.id})) reverse('protocoloadm:tramitacao_adm',
kwargs={'pk': tramitacao.documento.id}))
else: else:
return self.form_invalid(form) return self.form_invalid(form)

1
relatorios/__init__.py

@ -0,0 +1 @@
default_app_config = 'relatorios.apps.AppConfig'

7
relatorios/apps.py

@ -0,0 +1,7 @@
from django import apps
from django.utils.translation import ugettext_lazy as _
class AppConfig(apps.AppConfig):
name = 'relatorios'
verbose_name = _('Relatórios')

3
relatorios/urls.py

@ -1,11 +1,14 @@
from django.conf.urls import url from django.conf.urls import url
from .apps import AppConfig
from .views import (relatorio_capa_processo, from .views import (relatorio_capa_processo,
relatorio_documento_administrativo, relatorio_espelho, relatorio_documento_administrativo, relatorio_espelho,
relatorio_etiqueta_protocolo, relatorio_materia, relatorio_etiqueta_protocolo, relatorio_materia,
relatorio_ordem_dia, relatorio_pauta_sessao, relatorio_ordem_dia, relatorio_pauta_sessao,
relatorio_protocolo, relatorio_sessao_plenaria) relatorio_protocolo, relatorio_sessao_plenaria)
app_name = AppConfig.name
urlpatterns = [ urlpatterns = [
url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'), url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'),
url(r'^relatorios/capa_processo$', url(r'^relatorios/capa_processo$',

2
sessao/__init__.py

@ -1 +1 @@
default_app_config = 'sessao.apps.SessaoAppConfig' default_app_config = 'sessao.apps.AppConfig'

4
sessao/apps.py

@ -1,7 +1,7 @@
from django.apps import AppConfig from django import apps
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
class SessaoAppConfig(AppConfig): class AppConfig(apps.AppConfig):
name = 'sessao' name = 'sessao'
verbose_name = _('Sessão Plenária') verbose_name = _('Sessão Plenária')

8
sessao/urls.py

@ -21,9 +21,11 @@ from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
VotacaoNominalExpedienteView, VotacaoNominalView, VotacaoNominalExpedienteView, VotacaoNominalView,
VotacaoView) VotacaoView)
urlpatterns_sessao, namespace = SessaoCrud.get_urls() from .apps import AppConfig
urlpatterns_sessao = urlpatterns_sessao + [ app_name = AppConfig.name
urlpatterns_sessao = SessaoCrud.get_urls() + [
url(r'^(?P<pk>\d+)/expediente$', url(r'^(?P<pk>\d+)/expediente$',
ExpedienteView.as_view(), name='expediente'), ExpedienteView.as_view(), name='expediente'),
url(r'^(?P<pk>\d+)/presenca$', url(r'^(?P<pk>\d+)/presenca$',
@ -105,7 +107,7 @@ sessao_rest = [
] ]
urlpatterns = [ urlpatterns = [
url(r'^sessao/', include(urlpatterns_sessao, namespace)), url(r'^sessao/', include(urlpatterns_sessao)),
url(r'^media/(?P<path>.*)$', serve, url(r'^media/(?P<path>.*)$', serve,
{'document_root': settings.MEDIA_ROOT}), {'document_root': settings.MEDIA_ROOT}),
url(r'^rest/', include(sessao_rest)), url(r'^rest/', include(sessao_rest)),

46
sessao/views.py

@ -93,7 +93,7 @@ class PresencaView(FormMixin, PresencaMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:presenca', kwargs={'pk': pk}) return reverse('sessao:presenca', kwargs={'pk': pk})
class PainelView(SessaoCrud.CrudDetailView): class PainelView(SessaoCrud.CrudDetailView):
@ -142,7 +142,7 @@ class PresencaOrdemDiaView(FormMixin,
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:presencaordemdia', kwargs={'pk': pk}) return reverse('sessao:presencaordemdia', kwargs={'pk': pk})
class ListMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView): class ListMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
@ -409,7 +409,7 @@ class MateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -520,7 +520,7 @@ class EditMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -586,7 +586,7 @@ class ExpedienteOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -669,7 +669,7 @@ class EditExpedienteOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -695,7 +695,7 @@ class OradorExpedienteDelete(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk}) return reverse('sessao:oradorexpediente', kwargs={'pk': pk})
class OradorExpedienteEdit(FormMixin, SessaoCrud.CrudDetailView): class OradorExpedienteEdit(FormMixin, SessaoCrud.CrudDetailView):
@ -755,7 +755,7 @@ class OradorExpedienteEdit(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk}) return reverse('sessao:oradorexpediente', kwargs={'pk': pk})
class OradorExpedienteView(FormMixin, SessaoCrud.CrudDetailView): class OradorExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
@ -825,7 +825,7 @@ class OradorExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk}) return reverse('sessao:oradorexpediente', kwargs={'pk': pk})
class MesaView(FormMixin, SessaoCrud.CrudDetailView): class MesaView(FormMixin, SessaoCrud.CrudDetailView):
@ -919,7 +919,7 @@ class MesaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:mesa', kwargs={'pk': pk}) return reverse('sessao:mesa', kwargs={'pk': pk})
class ResumoView(SessaoCrud.CrudDetailView): class ResumoView(SessaoCrud.CrudDetailView):
@ -1159,7 +1159,7 @@ class ExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expediente', kwargs={'pk': pk}) return reverse('sessao:expediente', kwargs={'pk': pk})
class ExplicacaoView(FormMixin, SessaoCrud.CrudDetailView): class ExplicacaoView(FormMixin, SessaoCrud.CrudDetailView):
@ -1229,7 +1229,7 @@ class ExplicacaoView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk}) return reverse('sessao:explicacao', kwargs={'pk': pk})
class ExplicacaoDelete(FormMixin, SessaoCrud.CrudDetailView): class ExplicacaoDelete(FormMixin, SessaoCrud.CrudDetailView):
@ -1252,7 +1252,7 @@ class ExplicacaoDelete(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk}) return reverse('sessao:explicacao', kwargs={'pk': pk})
class ExplicacaoEdit(FormMixin, SessaoCrud.CrudDetailView): class ExplicacaoEdit(FormMixin, SessaoCrud.CrudDetailView):
@ -1312,7 +1312,7 @@ class ExplicacaoEdit(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk}) return reverse('sessao:explicacao', kwargs={'pk': pk})
class VotacaoEditView(FormMixin, SessaoCrud.CrudDetailView): class VotacaoEditView(FormMixin, SessaoCrud.CrudDetailView):
@ -1384,7 +1384,7 @@ class VotacaoEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -1503,7 +1503,7 @@ class VotacaoView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -1630,7 +1630,7 @@ class VotacaoNominalView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -1707,7 +1707,7 @@ class VotacaoNominalEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -1832,7 +1832,7 @@ class VotacaoNominalExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -1909,7 +1909,7 @@ class VotacaoNominalExpedienteEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -2030,7 +2030,7 @@ class VotacaoExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
@ -2045,7 +2045,7 @@ class VotacaoExpedienteEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
def get_tipos_votacao(self): def get_tipos_votacao(self):
@ -2241,7 +2241,7 @@ class PautaSessaoDetailView(SessaoCrud.CrudDetailView):
class SessaoCadastroView(CreateView): class SessaoCadastroView(CreateView):
template_name = "sessao/sessao_cadastro.html" template_name = "sessao/sessao_cadastro.html"
form_class = SessaoForm form_class = SessaoForm
success_url = reverse_lazy('sessaoplenaria:list_sessao') success_url = reverse_lazy('sessao:list_sessao')
class SessaoPlenariaView(generics.ListAPIView): class SessaoPlenariaView(generics.ListAPIView):

22
templates/base.html

@ -46,30 +46,30 @@
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Institucional <span class="caret"></span></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Institucional <span class="caret"></span></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'mesa_diretora' %}">Mesa Diretora</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'parlamentares:mesa_diretora' %}">Mesa Diretora</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'comissao:list' %}">Comissões</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'comissoes:comissao_list' %}">Comissões</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Bancadas</a></li> --> <!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Bancadas</a></li> -->
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'parlamentares' %}">Parlamentares</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'parlamentares:parlamentares' %}">Parlamentares</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Protocolo <span class="caret"></span></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Protocolo <span class="caret"></span></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'protocolo' %}">Pesquisar</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'protocoloadm:protocolo' %}">Pesquisar</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="/materia">Protocolo Legislativo</a></li> --> <!-- <li class="nav__sub-item"><a class="nav__sub-link" href="/materia">Protocolo Legislativo</a></li> -->
{# <li class="nav__sub-item"><a class="nav__sub-link" href="">Protocolo Geral</a></li> #} {# <li class="nav__sub-item"><a class="nav__sub-link" href="">Protocolo Geral</a></li> #}
{# <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'proposicao' %}">Proposições</a></li> #} {# <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'protocoloadm:proposicao' %}">Proposições</a></li> #}
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Atividade Legislativa <span class="caret"></span></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Atividade Legislativa <span class="caret"></span></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'list_proposicao' %}">Proposições</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'materia:list_proposicao' %}">Proposições</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'materialegislativa:list' %}">Matérias Legislativas</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'materia:materialegislativa_list' %}">Matérias Legislativas</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sessaoplenaria:list_sessao' %}">Sessões Plenárias</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sessao:list_sessao' %}">Sessões Plenárias</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sessaoplenaria:list_pauta_sessao' %}">Pautas das Sessões</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sessao:list_pauta_sessao' %}">Pautas das Sessões</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Atas das Sessões</a></li> <!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Atas das Sessões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Reuniões das Comissões</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="#">Reuniões das Comissões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Tramitação em Lote</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="#">Tramitação em Lote</a></li>
@ -81,7 +81,7 @@
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans 'Legislação'%} <span class="caret"></span></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans 'Legislação'%} <span class="caret"></span></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'norma_pesquisa'%}">{% trans 'Pesquisar Normas Jurídicas'%}</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'norma:norma_pesquisa'%}">{% trans 'Pesquisar Normas Jurídicas'%}</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Índice de Assuntos</a></li> --> <!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Índice de Assuntos</a></li> -->
</ul> </ul>
</li> </li>
@ -153,7 +153,7 @@
{% block help %} {% block help %}
{% if view.help_path %} {% if view.help_path %}
<a class="contextual-help right" href="{% url 'help_base' %}{{ view.help_path }}">{% trans 'Ajuda' %}</a> <a class="contextual-help right" href="{% url 'base:help_base' %}{{ view.help_path }}">{% trans 'Ajuda' %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

4
templates/comissoes/comissao_list.html

@ -4,7 +4,7 @@
{% block base_content %} {% block base_content %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'comissao:cadastrar_comissao' %}" class="btn btn-default"> <a href="{% url 'comissoes:cadastrar_comissao' %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Comissão {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Comissão {% endblocktrans %}
</a> </a>
</div> </div>
@ -22,7 +22,7 @@
{% for comissao in page_obj %} {% for comissao in page_obj %}
<tr> <tr>
<td> <td>
<a href="{% url 'comissao:detail' comissao.id %}">{{comissao}}</a> <a href="{% url 'comissoes:comissao_detail' comissao.id %}">{{comissao}}</a>
</td> </td>
<td>{{comissao.sigla}}</td> <td>{{comissao.sigla}}</td>
<td>{{comissao.tipo}}</td> <td>{{comissao.tipo}}</td>

4
templates/comissoes/composicao.html

@ -33,7 +33,7 @@
{% for participacao in participacoes %} {% for participacao in participacoes %}
{% if participacao.composicao_id == composicao_id %} {% if participacao.composicao_id == composicao_id %}
<tr> <tr>
<td><a href="{% url 'comissao:comissao_parlamentar_edit' pk composicao_id participacao.id %}">{{participacao.parlamentar.nome_parlamentar}}</a></td> <td><a href="{% url 'comissoes:comissao_parlamentar_edit' pk composicao_id participacao.id %}">{{participacao.parlamentar.nome_parlamentar}}</a></td>
<td>{{participacao.cargo}}</td> <td>{{participacao.cargo}}</td>
<td>{{participacao.titular|yesno:"Sim,Não"}}</td> <td>{{participacao.titular|yesno:"Sim,Não"}}</td>
<td>{{participacao.data_designacao|date:"d/m/Y"}}</td> <td>{{participacao.data_designacao|date:"d/m/Y"}}</td>
@ -46,7 +46,7 @@
</table> </table>
<a href="{% url 'comissao:comissao_parlamentar' pk composicao_id %}" class="btn btn-primary">Incluir Parlamentar</a> <a href="{% url 'comissoes:comissao_parlamentar' pk composicao_id %}" class="btn btn-primary">Incluir Parlamentar</a>
{% endif %} {% endif %}
{% endblock detail_content %} {% endblock detail_content %}

2
templates/comissoes/materias_em_tramitacao.html

@ -10,7 +10,7 @@
<b>Há {{page_obj|length}} matéria(s) em tramitação nesta unidade.</b> <br><br> <b>Há {{page_obj|length}} matéria(s) em tramitação nesta unidade.</b> <br><br>
{% for tramitacao in page_obj %} {% for tramitacao in page_obj %}
<b><a href="{% url 'materialegislativa:detail' tramitacao.materia.id %}"> <b><a href="{% url 'materia:materialegislativa_detail' tramitacao.materia.id %}">
{{tramitacao.materia.tipo.sigla}} {{tramitacao.materia.numero}} {{tramitacao.materia.ano}} - {{tramitacao.materia.tipo}} {{tramitacao.materia.tipo.sigla}} {{tramitacao.materia.numero}} {{tramitacao.materia.ano}} - {{tramitacao.materia.tipo}}
</b></a><br> </b></a><br>
{{tramitacao.materia}}<br> {{tramitacao.materia}}<br>

6
templates/comissoes/subnav.yaml

@ -1,6 +1,6 @@
- title: Início - title: Início
url: comissao:detail url: comissao_detail
- title: Composição - title: Composição
url: comissao:composicao url: composicao
- title: Matérias em Tramitação - title: Matérias em Tramitação
url: comissao:materias_em_tramitacao url: materias_em_tramitacao

2
templates/materia/autoria.html

@ -20,7 +20,7 @@
</thead> </thead>
{% for a in autorias %} {% for a in autorias %}
<tr> <tr>
<td><a href="{% url 'autoria_edit' object.id a.id %}">{{a.autor}}</a></td> <td><a href="{% url 'materia:autoria_edit' object.id a.id %}">{{a.autor}}</a></td>
<td>{{a.autor.tipo.descricao}}</td> <td>{{a.autor.tipo.descricao}}</td>
<td>{{a.primeiro_autor|yesno:"Sim,Não"}}</td> <td>{{a.primeiro_autor|yesno:"Sim,Não"}}</td>
<td>{{a.partido.sigla|default_if_none:"Não Informado"}}</td> <td>{{a.partido.sigla|default_if_none:"Não Informado"}}</td>

2
templates/materia/despacho_inicial.html

@ -18,7 +18,7 @@
</thead> </thead>
{% for d in despachos %} {% for d in despachos %}
<tr> <tr>
<td><a href="{% url 'despacho_inicial_edit' object.id d.id %}">{{d.comissao.nome}}</a></td> <td><a href="{% url 'materia:despacho_inicial_edit' object.id d.id %}">{{d.comissao.nome}}</a></td>
<td>{{d.comissao.sigla}}</td> <td>{{d.comissao.sigla}}</td>
</tr> </tr>
{% endfor %} {% endfor %}

2
templates/materia/documento_acessorio.html

@ -20,7 +20,7 @@
</thead> </thead>
{% for d in docs %} {% for d in docs %}
<tr> <tr>
<td><a href="{% url 'documento_acessorio_edit' object.id d.id %}">{{d.nome}}</a></td> <td><a href="{% url 'materia:documento_acessorio_edit' object.id d.id %}">{{d.nome}}</a></td>
<td>{{d.tipo.descricao}}</td> <td>{{d.tipo.descricao}}</td>
<td>{{d.data|date:'d/m/Y'}}</td> <td>{{d.data|date:'d/m/Y'}}</td>
<td>{{d.autor}}</td> <td>{{d.autor}}</td>

2
templates/materia/legislacao_citada.html

@ -20,7 +20,7 @@
</thead> </thead>
{% for l in legislacao %} {% for l in legislacao %}
<tr> <tr>
<td><a href="{% url 'legislacao_citada_edit' object.id l.id %}">{{l.norma.tipo.descricao}}</a></td> <td><a href="{% url 'materia:legislacao_citada_edit' object.id l.id %}">{{l.norma.tipo.descricao}}</a></td>
<td>{{l.norma.numero}}</td> <td>{{l.norma.numero}}</td>
<td>{{l.norma.ano}}</td> <td>{{l.norma.ano}}</td>
<td>{{l.disposicoes}}</td> <td>{{l.disposicoes}}</td>

2
templates/materia/materia_anexada.html

@ -20,7 +20,7 @@
</thead> </thead>
{% for a in anexadas %} {% for a in anexadas %}
<tr> <tr>
<td><a href="{% url 'materia_anexada_edit' object.id a.id %}">{{a.materia_anexada.tipo.sigla}} {{a.materia_anexada.numero}}/{{a.materia_anexada.ano}}</a></td> <td><a href="{% url 'materia:materia_anexada_edit' object.id a.id %}">{{a.materia_anexada.tipo.sigla}} {{a.materia_anexada.numero}}/{{a.materia_anexada.ano}}</a></td>
<td>{{a.data_anexacao|date:"d/m/Y"}}</td> <td>{{a.data_anexacao|date:"d/m/Y"}}</td>
<td>{{a.data_desanexacao|date:"d/m/Y"}}</td> <td>{{a.data_desanexacao|date:"d/m/Y"}}</td>
</tr> </tr>

4
templates/materia/materialegislativa_list.html

@ -2,11 +2,11 @@
{% load i18n %} {% load i18n %}
{% block more_buttons %} {% block more_buttons %}
<a href="{% url 'formulario_simplificado' %}" class="btn btn-default"> <a href="{% url 'materia:formulario_simplificado' %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Formulário Simplificado {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Formulário Simplificado {% endblocktrans %}
</a> </a>
<a href="{% url 'pesquisar_materia' %}" class="btn btn-default"> <a href="{% url 'materia:pesquisar_materia' %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Pesquisar Matéria {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Pesquisar Matéria {% endblocktrans %}
</a> </a>
{% endblock more_buttons %} {% endblock more_buttons %}

2
templates/materia/numeracao.html

@ -21,7 +21,7 @@
</thead> </thead>
{% for n in numeracao %} {% for n in numeracao %}
<tr> <tr>
<td><a href="{% url 'numeracao_edit' object.id n.id %}">{{n.tipo_materia.sigla}}</a></td> <td><a href="{% url 'materia:numeracao_edit' object.id n.id %}">{{n.tipo_materia.sigla}}</a></td>
<td>{{n.tipo_materia.descricao}}</td> <td>{{n.tipo_materia.descricao}}</td>
<td>{{n.numero_materia}}</td> <td>{{n.numero_materia}}</td>
<td>{{n.ano_materia}}</td> <td>{{n.ano_materia}}</td>

2
templates/materia/pesquisa_materia_list.html

@ -12,7 +12,7 @@
{% for m in materias %} {% for m in materias %}
<tr> <tr>
<td> <td>
<strong><a href="{% url 'materialegislativa:detail' m.id %}">{{m.tipo.sigla}} {{m.numero}}/{{m.ano}} - {{m.tipo}}</strong></a></br> <strong><a href="{% url 'materia:materialegislativa_detail' m.id %}">{{m.tipo.sigla}} {{m.numero}}/{{m.ano}} - {{m.tipo}}</strong></a></br>
{{ m.ementa|safe }}</br> {{ m.ementa|safe }}</br>
<strong>Localização Atual:</strong> {{m.tramitacao_set.last.unidade_tramitacao_destino|default_if_none:"Não Informada"}}</br> <strong>Localização Atual:</strong> {{m.tramitacao_set.last.unidade_tramitacao_destino|default_if_none:"Não Informada"}}</br>
<p></p> <p></p>

6
templates/materia/proposicao/proposicao_list.html

@ -10,7 +10,7 @@
{% block detail_content %} {% block detail_content %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'adicionar_proposicao' %}" class="btn btn-default">Nova Proposição</a> <a href="{% url 'materia:adicionar_proposicao' %}" class="btn btn-default">Nova Proposição</a>
</div> </div>
<h2><b>Proposições</b></h2> <h2><b>Proposições</b></h2>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
@ -26,9 +26,9 @@
{% for proposicao in page_obj %} {% for proposicao in page_obj %}
<tr> <tr>
{% if proposicao.data_envio %} {% if proposicao.data_envio %}
<td><a href="{% url 'editar_proposicao' proposicao.id %}"><b>{{ proposicao.data_envio|date:'d/m/Y H:i' }}</b></a></td> <td><a href="{% url 'materia:editar_proposicao' proposicao.id %}"><b>{{ proposicao.data_envio|date:'d/m/Y H:i' }}</b></a></td>
{% else %} {% else %}
<td><a href="{% url 'editar_proposicao' proposicao.id %}"><b>Em elaboração...</b></a></td> <td><a href="{% url 'materia:editar_proposicao' proposicao.id %}"><b>Em elaboração...</b></a></td>
{% endif %} {% endif %}
<td>{{ proposicao.tipo }}</td> <td>{{ proposicao.tipo }}</td>
<td>{{ proposicao.descricao|safe }}</td> <td>{{ proposicao.descricao|safe }}</td>

2
templates/materia/relatoria.html

@ -19,7 +19,7 @@
</thead> </thead>
{% for r in relatorias %} {% for r in relatorias %}
<tr> <tr>
<td><a href="{% url 'relatoria_edit' object.id r.id %}">{{r.data_designacao_relator|date:'d/m/Y'}}</a></td> <td><a href="{% url 'materia:relatoria_edit' object.id r.id %}">{{r.data_designacao_relator|date:'d/m/Y'}}</a></td>
<td>{{r.comissao}}</td> <td>{{r.comissao}}</td>
<td>{{r.parlamentar}}</td> <td>{{r.parlamentar}}</td>
</tr> </tr>

2
templates/materia/subnav.yaml

@ -1,5 +1,5 @@
- title: Início - title: Início
url: materialegislativa:detail url: materialegislativa_detail
- title: Anexada - title: Anexada
url: materia_anexada url: materia_anexada
- title: Autoria - title: Autoria

2
templates/materia/tramitacao.html

@ -20,7 +20,7 @@
</thead> </thead>
{% for t in tramitacoes %} {% for t in tramitacoes %}
<tr> <tr>
<td><a href="{% url 'tramitacao_edit' object.id t.id %}">{{t.data_tramitacao|date:'d/m/Y'}}</a></td> <td><a href="{% url 'materia:tramitacao_edit' object.id t.id %}">{{t.data_tramitacao|date:'d/m/Y'}}</a></td>
<td>{{t.unidade_tramitacao_local}}</td> <td>{{t.unidade_tramitacao_local}}</td>
<td>{{t.unidade_tramitacao_destino}}</td> <td>{{t.unidade_tramitacao_destino}}</td>
<td>{{t.status.descricao}}</td> <td>{{t.status.descricao}}</td>

4
templates/norma/list_pesquisa.html

@ -4,7 +4,7 @@
{% block actions %}{% endblock %} {% block actions %}{% endblock %}
{% block detail_content %} {% block detail_content %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'norma_incluir' %}" class="btn btn-default">Adicionar Norma Jurídica</a> <a href="{% url 'norma:norma_incluir' %}" class="btn btn-default">Adicionar Norma Jurídica</a>
</div> </div>
<br /><br /><br /> <br /><br /><br />
{% if object_list %} {% if object_list %}
@ -20,7 +20,7 @@
</thead> </thead>
{% for obj in object_list %} {% for obj in object_list %}
<tr> <tr>
<td><a href="{% url 'normajuridica:detail' obj.id %}">{{obj.tipo}}</a></td> <td><a href="{% url 'norma:normajuridica_detail' obj.id %}">{{obj.tipo}}</a></td>
<td>{{obj.numero}}</td> <td>{{obj.numero}}</td>
<td>{{obj.ano}}</td> <td>{{obj.ano}}</td>
<td>{{obj.data}}</td> <td>{{obj.data}}</td>

6
templates/norma/normajuridica_detail.html

@ -4,7 +4,7 @@
<ul class="nav nav-pills navbar-right"> <ul class="nav nav-pills navbar-right">
<li> <li>
<a href="{% url 'normajuridica:detail' object.pk %}">{% trans 'Início' %}</a> <a href="{% url 'norma:normajuridica_detail' object.pk %}">{% trans 'Início' %}</a>
</li> </li>
{% comment %} {% comment %}
@ -13,7 +13,7 @@
e a view NormaTa(IntegracaoTaView) em views.py e a view NormaTa(IntegracaoTaView) em views.py
Em nada mais a integração interfere em Norma Jurídica Em nada mais a integração interfere em Norma Jurídica
{% endcomment %} {% endcomment %}
<li><a href="{% url 'normajuridica:ta' object.pk %}">{% trans 'Texto da Norma' %}</a></li> <li><a href="{% url 'norma:ta' object.pk %}">{% trans 'Texto da Norma' %}</a></li>
</ul> </ul>
{% endblock sections_nav %} {% endblock sections_nav %}
@ -21,7 +21,7 @@
<div class="clearfix"> <div class="clearfix">
{% block actions %} {% block actions %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'norma_editar' object.id %}" class="btn btn-default">{% trans 'Editar' %}</a> <a href="{% url 'norma:norma_editar' object.id %}" class="btn btn-default">{% trans 'Editar' %}</a>
<a href="{{ view.delete_url }}" class="btn btn-default">{% trans 'Excluir' %}</a> <a href="{{ view.delete_url }}" class="btn btn-default">{% trans 'Excluir' %}</a>
</div> </div>
{% endblock actions %} {% endblock actions %}

4
templates/norma/normajuridica_list.html

@ -3,7 +3,7 @@
{% load crispy_forms_tags %} {% load crispy_forms_tags %}
{% block base_content %} {% block base_content %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'norma_incluir' %}" class="btn btn-default"> <a href="{% url 'norma:norma_incluir' %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar {{ verbose_name }} {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar {{ verbose_name }} {% endblocktrans %}
</a> </a>
</div> </div>
@ -21,7 +21,7 @@
</thead> </thead>
{% for obj in object_list %} {% for obj in object_list %}
<tr> <tr>
<td><a href="{% url 'normajuridica:detail' obj.id %}">{{obj.tipo}}</a></td> <td><a href="{% url 'norma:normajuridica_detail' obj.id %}">{{obj.tipo}}</a></td>
<td>{{obj.numero}}</td> <td>{{obj.numero}}</td>
<td>{{obj.ano}}</td> <td>{{obj.ano}}</td>
<td>{{obj.data}}</td> <td>{{obj.data}}</td>

2
templates/painel/index.html

@ -168,7 +168,7 @@
</head> </head>
<body> <body>
<h1 id="title"></h1> <h1 id="title"></h1>
<input id="json_url" type="hidden" value="{% url 'dados_painel' sessao_id %}"> <input id="json_url" type="hidden" value="{% url 'painel:dados_painel' sessao_id %}">
<h3> <h3>
<span id="sessao_plenaria"></span><br/><br/> <span id="sessao_plenaria"></span><br/><br/>
<span id="sessao_plenaria_data"></span><br/><br/> <span id="sessao_plenaria_data"></span><br/><br/>

2
templates/painel/mensagem.html

@ -94,7 +94,7 @@
</head> </head>
<body> <body>
<h1>{{ context.title }}</h1> <h1>{{ context.title }}</h1>
<input id="json_url" type="hidden" value="{% url 'dados_painel' %}"> <input id="json_url" type="hidden" value="{% url 'painel:dados_painel' %}">
<h2>Ajax refresh counter: <span id="counter"></span></h2> <h2>Ajax refresh counter: <span id="counter"></span></h2>
<h3> <h3>
<span id="sessao_plenaria"></span><br/><br/> <span id="sessao_plenaria"></span><br/><br/>

2
templates/painel/parlamentares.html

@ -95,7 +95,7 @@
</head> </head>
<body> <body>
<h1>{{ context.title }}</h1> <h1>{{ context.title }}</h1>
<input id="json_url" type="hidden" value="{% url 'dados_painel' %}"> <input id="json_url" type="hidden" value="{% url 'painel:dados_painel' %}">
<h3> <h3>
<span id="sessao_plenaria"></span><br/><br/> <span id="sessao_plenaria"></span><br/><br/>
<span id="sessao_plenaria_data"></span><br/><br/> <span id="sessao_plenaria_data"></span><br/><br/>

2
templates/painel/votacao.html

@ -94,7 +94,7 @@
</head> </head>
<body> <body>
<h1>{{ context.title }}</h1> <h1>{{ context.title }}</h1>
<input id="json_url" type="hidden" value="{% url 'dados_painel' %}"> <input id="json_url" type="hidden" value="{% url 'painel:dados_painel' %}">
<h3> <h3>
<span id="sessao_plenaria"></span><br/><br/> <span id="sessao_plenaria"></span><br/><br/>
<span id="sessao_plenaria_data"></span><br/><br/> <span id="sessao_plenaria_data"></span><br/><br/>

2
templates/parlamentares/parlamentares_dependentes.html

@ -19,7 +19,7 @@
</thead> </thead>
{% for d in dependentes %} {% for d in dependentes %}
<tr> <tr>
<td><a href="{% url 'parlamentares_dependentes_edit' object.id d.id %}">{{d.nome}}</a></td> <td><a href="{% url 'parlamentares:parlamentares_dependentes_edit' object.id d.id %}">{{d.nome}}</a></td>
<td>{{d.tipo }}</td> <td>{{d.tipo }}</td>
<td>{{d.data_nascimento|default_if_none:""}}</td> <td>{{d.data_nascimento|default_if_none:""}}</td>
</tr> </tr>

2
templates/parlamentares/parlamentares_detail.html

@ -3,7 +3,7 @@
{% block actions %} {% block actions %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
{% if legislatura_id != 0 %} {% if legislatura_id != 0 %}
<a href="{% url 'parlamentares_cadastro' legislatura_id %}" id="incluir-parlamentar" class="btn btn-default">{% trans 'Incluir Parlamentar' %}</a> <a href="{% url 'parlamentares:parlamentares_cadastro' legislatura_id %}" id="incluir-parlamentar" class="btn btn-default">{% trans 'Incluir Parlamentar' %}</a>
{% endif %} {% endif %}
</div> </div>
{% endblock actions %} {% endblock actions %}

2
templates/parlamentares/parlamentares_filiacao.html

@ -19,7 +19,7 @@
</thead> </thead>
{% for f in filiacoes %} {% for f in filiacoes %}
<tr> <tr>
<td><a href="{% url 'parlamentares_filiacao_edit' object.id f.id %}">{{f.partido.sigla}}</a></td> <td><a href="{% url 'parlamentares:parlamentares_filiacao_edit' object.id f.id %}">{{f.partido.sigla}}</a></td>
<td>{{f.data}}</td> <td>{{f.data}}</td>
<td>{{f.data_desfiliacao|default_if_none:""}}</td> <td>{{f.data_desfiliacao|default_if_none:""}}</td>
</tr> </tr>

2
templates/parlamentares/parlamentares_list.html

@ -30,7 +30,7 @@
{% for p in parlamentares %} {% for p in parlamentares %}
<tr> <tr>
<td> <td>
<a href="{% url 'parlamentares_editar' p.id %}"> {{p.nome}}</a> <a href="{% url 'parlamentares:parlamentares_editar' p.id %}"> {{p.nome}}</a>
</td> </td>
<td>{{p.partido}}</td> <td>{{p.partido}}</td>
<td>{{p.ativo|yesno:"Sim,Não"}}</td> <td>{{p.ativo|yesno:"Sim,Não"}}</td>

2
templates/parlamentares/parlamentares_mandato.html

@ -22,7 +22,7 @@
</thead> </thead>
{% for m in mandatos %} {% for m in mandatos %}
<tr> <tr>
<td><a href="{% url 'parlamentares_mandato_edit' object.id m.id %}">{{m.legislatura}}</a></td> <td><a href="{% url 'parlamentares:parlamentares_mandato_edit' object.id m.id %}">{{m.legislatura}}</a></td>
<td>{{m.coligacao|default_if_none:""}}</td> <td>{{m.coligacao|default_if_none:""}}</td>
<td>{{m.data_fim_mandato|default_if_none:""}}</td> <td>{{m.data_fim_mandato|default_if_none:""}}</td>
<td>{{m.data_expedicao_diploma|default_if_none:""}}</td> <td>{{m.data_expedicao_diploma|default_if_none:""}}</td>

6
templates/protocoloadm/detail_doc_detail.html

@ -3,8 +3,8 @@
{% block actions %} {% endblock %} {% block actions %} {% endblock %}
{% block sections_nav %} {% block sections_nav %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'detail_doc_adm' pk %}" class="btn btn-default">{% trans 'Inicio' %}</a> <a href="{% url 'protocoloadm:detail_doc_adm' pk %}" class="btn btn-default">{% trans 'Inicio' %}</a>
<a href="{% url 'doc_ace_adm' pk %}" class="btn btn-default">{% trans 'Documento Acessório' %}</a> <a href="{% url 'protocoloadm:doc_ace_adm' pk %}" class="btn btn-default">{% trans 'Documento Acessório' %}</a>
<a href="{% url 'tramitacao_adm' pk %}" class="btn btn-default">{% trans 'Tramitação' %}</a> <a href="{% url 'protocoloadm:tramitacao_adm' pk %}" class="btn btn-default">{% trans 'Tramitação' %}</a>
</div> </div>
{% endblock sections_nav %} {% endblock sections_nav %}

2
templates/protocoloadm/documento_acessorio_administrativo.html

@ -26,7 +26,7 @@
{% for d in doc_ace %} {% for d in doc_ace %}
<tr> <tr>
<td>{{d.arquivo}}</td> <td>{{d.arquivo}}</td>
<td><a href="{% url 'doc_ace_adm_edit' doc.id d.id %}">{{d.nome}}</a></td> <td><a href="{% url 'protocoloadm:doc_ace_adm_edit' doc.id d.id %}">{{d.nome}}</a></td>
<td>{{d.tipo.descricao}}</td> <td>{{d.tipo.descricao}}</td>
<td>{{d.data|date:"d/m/Y"}}</td> <td>{{d.data|date:"d/m/Y"}}</td>
<td>{{d.autor}}</td> <td>{{d.autor}}</td>

2
templates/protocoloadm/pesquisa_doc_adm.html

@ -12,7 +12,7 @@
{% for d in documentos %} {% for d in documentos %}
<tr> <tr>
<td> <td>
<a href="{% url 'detail_doc_adm' d.id %}"><b>{{ d.tipo.sigla }} {{ d.numero }}/{{ d.ano }} - {{ d.tipo }}</b></a> <br /> <a href="{% url 'protocoloadm:detail_doc_adm' d.id %}"><b>{{ d.tipo.sigla }} {{ d.numero }}/{{ d.ano }} - {{ d.tipo }}</b></a> <br />
{{ d.assunto }} <br /> {{ d.assunto }} <br />
<b>Interessado:</b> {{ d.interessado }} <b>Interessado:</b> {{ d.interessado }}
</td> </td>

8
templates/protocoloadm/proposicoes_detail.html

@ -3,9 +3,9 @@
{% block sections_nav %} {% block sections_nav %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'proposicao_receber' %}" class="btn btn-default">{% trans 'Incorporar Proposições' %}</a> <a href="{% url 'protocoloadm:proposicao_receber' %}" class="btn btn-default">{% trans 'Incorporar Proposições' %}</a>
<a href="{% url 'proposicoes_naorecebidas' %}" class="btn btn-default">{% trans 'Proposições Não Recebidas' %}</a> <a href="{% url 'protocoloadm:proposicoes_naorecebidas' %}" class="btn btn-default">{% trans 'Proposições Não Recebidas' %}</a>
<a href="{% url 'proposicoes_naoincorporadas' %}" class="btn btn-default">{% trans 'Proposições Não Incorporadas' %}</a> <a href="{% url 'protocoloadm:proposicoes_naoincorporadas' %}" class="btn btn-default">{% trans 'Proposições Não Incorporadas' %}</a>
<a href="{% url 'proposicoes_incorporadas' %}" class="btn btn-default">{% trans 'Proposições Incorporadas' %}</a> <a href="{% url 'protocoloadm:proposicoes_incorporadas' %}" class="btn btn-default">{% trans 'Proposições Incorporadas' %}</a>
</div> </div>
{% endblock sections_nav %} {% endblock sections_nav %}

2
templates/protocoloadm/proposicoes_incorporadas.html

@ -8,7 +8,7 @@
{% for p in object_list %} {% for p in object_list %}
<tr> <tr>
<td> <td>
<a href="{% url 'proposicao_view' p.id %}"> <a href="{% url 'protocoloadm:proposicao_view' p.id %}">
{{ p.data_envio|date:"d/m/Y" }} {{ p.data_envio|date:"d/m/Y" }}
</a> </a>
</td> </td>

2
templates/protocoloadm/proposicoes_naoincorporadas.html

@ -8,7 +8,7 @@
{% for p in object_list %} {% for p in object_list %}
<tr> <tr>
<td> <td>
<a href="{% url 'proposicao_view' p.id %}"> <a href="{% url 'protocoloadm:proposicao_view' p.id %}">
{{ p.data_envio|date:"d/m/Y" }} {{ p.data_envio|date:"d/m/Y" }}
</a> </a>
</td> </td>

2
templates/protocoloadm/proposicoes_naorecebidas.html

@ -8,7 +8,7 @@
{% for p in object_list %} {% for p in object_list %}
<tr> <tr>
<td> <td>
<a href="{% url 'proposicao_view' p.id %}"> <a href="{% url 'protocoloadm:proposicao_view' p.id %}">
{{ p.data_envio|date:"d/m/Y" }} {{ p.data_envio|date:"d/m/Y" }}
</a> </a>
</td> </td>

4
templates/protocoloadm/protocolo_list.html

@ -12,11 +12,11 @@
<tr> <tr>
<td> <td>
<strong>Protocolo:</strong> <strong>Protocolo:</strong>
<a href="{% url 'protocolo_mostrar' p.numero p.ano %}"> <a href="{% url 'protocoloadm:protocolo_mostrar' p.numero p.ano %}">
{{ p.numero|stringformat:'06d' }}/{{ p.ano }} {{ p.numero|stringformat:'06d' }}/{{ p.ano }}
</a> </a>
&nbsp;&nbsp;-&nbsp;&nbsp; &nbsp;&nbsp;-&nbsp;&nbsp;
<a href="{% url 'relatorio_etiqueta_protocolo' p.numero p.ano %}"> <a href="{% url 'relatorios:relatorio_etiqueta_protocolo' p.numero p.ano %}">
<img src="{% static 'img/etiqueta.png' %}" alt="Etiqueta Individual"> <img src="{% static 'img/etiqueta.png' %}" alt="Etiqueta Individual">
</a></br> </a></br>
<strong>Assunto:</strong> {{ p.assunto_ementa }}</br> <strong>Assunto:</strong> {{ p.assunto_ementa }}</br>

4
templates/protocoloadm/protocolo_mostrar.html

@ -16,8 +16,8 @@
<br /> <br />
<strong>Documento Vinculado:</strong></br> <strong>Documento Vinculado:</strong></br>
<a href="{% url 'criar_documento' protocolo.numero protocolo.ano %}" class="btn btn-primary">Criar Documento</a> <a href="{% url 'protocoloadm:criar_documento' protocolo.numero protocolo.ano %}" class="btn btn-primary">Criar Documento</a>
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<a href="{% url 'comprovante_protocolo' protocolo.numero protocolo.ano %}" target="popup" class="btn btn-primary" onclick="window.open('{% url 'comprovante_protocolo' protocolo.numero protocolo.ano %}','Comprovante','width=800, height=600')">Comprovante <a href="{% url 'protocoloadm:comprovante_protocolo' protocolo.numero protocolo.ano %}" target="popup" class="btn btn-primary" onclick="window.open('{% url 'protocoloadm:comprovante_protocolo' protocolo.numero protocolo.ano %}','Comprovante','width=800, height=600')">Comprovante
</a> </a>
{% endblock detail_content %} {% endblock detail_content %}

8
templates/protocoloadm/protocoloadm_detail.html

@ -2,9 +2,9 @@
{% load i18n %} {% load i18n %}
{% block actions %} {% block actions %}
<div class="actions btn-group pull-right" role="group"> <div class="actions btn-group pull-right" role="group">
<a href="{% url 'protocolo' %}" class="btn btn-default">{% trans 'Pesquisa Protocolo' %}</a> <a href="{% url 'protocoloadm:protocolo' %}" class="btn btn-default">{% trans 'Pesquisa Protocolo' %}</a>
<a href="{% url 'protocolar_doc' %}" class="btn btn-default">{% trans 'Protocolar Documento' %}</a> <a href="{% url 'protocoloadm:protocolar_doc' %}" class="btn btn-default">{% trans 'Protocolar Documento' %}</a>
<a href="{% url 'protocolar_mat' %}" class="btn btn-default">{% trans 'Protocolar Matéria' %}</a> <a href="{% url 'protocoloadm:protocolar_mat' %}" class="btn btn-default">{% trans 'Protocolar Matéria' %}</a>
<a href="{% url 'anular_protocolo' %}" class="btn btn-default">{% trans 'Anular Protocolo' %}</a> <a href="{% url 'protocoloadm:anular_protocolo' %}" class="btn btn-default">{% trans 'Anular Protocolo' %}</a>
</div> </div>
{% endblock actions %} {% endblock actions %}

6
templates/protocoloadm/tramitacao.html

@ -22,11 +22,11 @@
</tr> </tr>
{% for t in tramitacoes %} {% for t in tramitacoes %}
<tr> <tr>
<td><a href="{% url 'tramitacao_edit' t.id %}">{{t.data_encaminhamento|date:"d/m/Y"}}</a></td> <td><a href="{% url 'protocoloadm:tramitacao_edit' t.id %}">{{t.data_encaminhamento|date:"d/m/Y"}}</a></td>
<td>{{t.unidade_tramitacao_local}}</td> <td>{{t.unidade_tramitacao_local}}</td>
<td>{{t.unidade_tramitacao_destino}}</td> <td>{{t.unidade_tramitacao_destino}}</td>
<td>{{t.status.sigla}}</td> <td>{{t.status.sigla}}</td>
<td><a href="{% url 'tramitacao_delete' documento.id t.id %}">Excluir</ad></td> <td><a href="{% url 'protocoloadm:tramitacao_delete' documento.id t.id %}">Excluir</ad></td>
</tr> </tr>
{% endfor %} {% endfor %}
@ -35,6 +35,6 @@
<strong>Nenhuma tramitação cadastrada para este documento.</strong> <strong>Nenhuma tramitação cadastrada para este documento.</strong>
{% endif %} {% endif %}
</br> </br>
<a href="{% url 'tramitacao_incluir' documento.id %}" class="button primary">Incluir Tramitação</a> <a href="{% url 'protocoloadm:tramitacao_incluir' documento.id %}" class="button primary">Incluir Tramitação</a>
</fieldset> </fieldset>
{% endblock detail_content %} {% endblock detail_content %}

20
templates/sessao/expediente_ordemdia_list.html

@ -30,7 +30,7 @@ Matérias do Expediente
{% for m in materias_ordem %} {% for m in materias_ordem %}
<tr> <tr>
<td> <td>
{{m.numero}} - <a href="{% url 'sessaoplenaria:expedienteordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a> {{m.numero}} - <a href="{% url 'sessao:expedienteordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a>
&nbsp; &nbsp;
</br> </br>
<strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}} <strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}}
@ -41,24 +41,24 @@ Matérias do Expediente
<td> <td>
{% if m.resultado %} {% if m.resultado %}
{% if m.tipo_votacao == 1 %} {% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolicaexpedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessao:votacaosimbolicaexpedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% elif m.tipo_votacao == 2 %} {% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominalexpedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessao:votacaonominalexpedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% elif m.tipo_votacao == 3%} {% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecretaexpedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessao:votacaosecretaexpedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% endif %} {% endif %}
{% else %} {% else %}
Matéria não votada <br /> Matéria não votada <br />
{% if m.votacao_aberta %} {% if m.votacao_aberta %}
{% if m.tipo_votacao == 1 %} {% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolicaexp' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <b><a href="{% url 'sessao:votacaosimbolicaexp' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 2 %} {% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominalexp' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <b><a href="{% url 'sessao:votacaonominalexp' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 3%} {% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecretaexp' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <b><a href="{% url 'sessao:votacaosecretaexp' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% endif %} {% endif %}
{% else %} {% else %}
<form method="POST" action="{% url 'sessaoplenaria:expedienteordemdia_list' object.pk %}"> <form method="POST" action="{% url 'sessao:expedienteordemdia_list' object.pk %}">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="error_message" id="error_message" /> <input type="hidden" name="error_message" id="error_message" />
<input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}"> <input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}">
@ -71,10 +71,10 @@ Matérias do Expediente
{% endfor %} {% endfor %}
</table> </table>
</br> </br>
<form method="POST" action="{% url 'sessaoplenaria:expedienteordemdia_list' object.pk %}"> <form method="POST" action="{% url 'sessao:expedienteordemdia_list' object.pk %}">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="error_message" id="error_message" /> <input type="hidden" name="error_message" id="error_message" />
<a href="{% url 'sessaoplenaria:expedienteordemdia_create' object.pk %}" class="btn btn-primary">{% trans 'Adicionar Matérias' %}</a> <a href="{% url 'sessao:expedienteordemdia_create' object.pk %}" class="btn btn-primary">{% trans 'Adicionar Matérias' %}</a>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<input type="submit" id="expediente_reorder" name="expediente_reorder" value="Reordenar Matérias do Expediente" class="btn btn-primary" /> <input type="submit" id="expediente_reorder" name="expediente_reorder" value="Reordenar Matérias do Expediente" class="btn btn-primary" />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;

4
templates/sessao/explicacao.html

@ -21,8 +21,8 @@
<td>{{parlamentar.nome_parlamentar }}</td> <td>{{parlamentar.nome_parlamentar }}</td>
<td>{% if not url_discurso %}Orador sem discurso cadastrado{% else %}{{url_discurso}}{% endif %}</td> <td>{% if not url_discurso %}Orador sem discurso cadastrado{% else %}{{url_discurso}}{% endif %}</td>
<td> <td>
<a id="editar-orador" href="{% url 'sessaoplenaria:explicacaoeditar' object.pk parlamentar.id %}" class="btn btn-primary btn-sm active">Editar</a> <a id="editar-orador" href="{% url 'sessao:explicacaoeditar' object.pk parlamentar.id %}" class="btn btn-primary btn-sm active">Editar</a>
<a id="excluir-orador" href="{% url 'sessaoplenaria:explicacaoexcluir' object.pk parlamentar.id %}" class="btn btn-danger btn-sm active">Excluir</a> <a id="excluir-orador" href="{% url 'sessao:explicacaoexcluir' object.pk parlamentar.id %}" class="btn btn-danger btn-sm active">Excluir</a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}

20
templates/sessao/materia_ordemdia_list.html

@ -30,7 +30,7 @@ Matérias da Ordem do Dia
{% for m in materias_ordem %} {% for m in materias_ordem %}
<tr> <tr>
<td> <td>
{{m.numero}} - <a href="{% url 'sessaoplenaria:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a> {{m.numero}} - <a href="{% url 'sessao:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a>
&nbsp; &nbsp;
</br> </br>
<strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}} <strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}}
@ -41,24 +41,24 @@ Matérias da Ordem do Dia
<td> <td>
{% if m.resultado %} {% if m.resultado %}
{% if m.tipo_votacao == 1 %} {% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolicaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessao:votacaosimbolicaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% elif m.tipo_votacao == 2 %} {% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominaledit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessao:votacaonominaledit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% elif m.tipo_votacao == 3%} {% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecretaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessao:votacaosecretaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% endif %} {% endif %}
{% else %} {% else %}
Matéria não votada <br /> Matéria não votada <br />
{% if m.votacao_aberta %} {% if m.votacao_aberta %}
{% if m.tipo_votacao == 1 %} {% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolica' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <b><a href="{% url 'sessao:votacaosimbolica' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 2 %} {% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominal' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <b><a href="{% url 'sessao:votacaonominal' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 3%} {% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecreta' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <b><a href="{% url 'sessao:votacaosecreta' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% endif %} {% endif %}
{% else %} {% else %}
<form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}"> <form method="POST" action="{% url 'sessao:materiaordemdia_list' object.pk %}">
{% csrf_token %} {% csrf_token %}
<input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}"> <input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}">
<input type="submit" id="abrir-votacao" name="abrir-votacao" value="Abrir Votação" class="btn btn-primary"> <input type="submit" id="abrir-votacao" name="abrir-votacao" value="Abrir Votação" class="btn btn-primary">
@ -71,10 +71,10 @@ Matérias da Ordem do Dia
</table> </table>
</br> </br>
<form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}"> <form method="POST" action="{% url 'sessao:materiaordemdia_list' object.pk %}">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="error_message" id="error_message" /> <input type="hidden" name="error_message" id="error_message" />
<a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="btn btn-primary">{% trans 'Adicionar Matérias' %}</a> <a href="{% url 'sessao:materiaordemdia_create' object.pk %}" class="btn btn-primary">{% trans 'Adicionar Matérias' %}</a>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="btn btn-primary" /> <input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="btn btn-primary" />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;

4
templates/sessao/orador_expediente.html

@ -21,8 +21,8 @@
<td>{{parlamentar.nome_parlamentar }}</td> <td>{{parlamentar.nome_parlamentar }}</td>
<td>{% if not url_discurso %}Orador sem discurso cadastrado{% else %}{{url_discurso}}{% endif %}</td> <td>{% if not url_discurso %}Orador sem discurso cadastrado{% else %}{{url_discurso}}{% endif %}</td>
<td> <td>
<a id="editar-orador" href="{% url 'sessaoplenaria:oradoreditar' object.pk parlamentar.id %}" class="btn btn-primary btn-sm active">Editar</a> <a id="editar-orador" href="{% url 'sessao:oradoreditar' object.pk parlamentar.id %}" class="btn btn-primary btn-sm active">Editar</a>
<a id="excluir-orador" href="{% url 'sessaoplenaria:oradorexcluir' object.pk parlamentar.id %}" class="btn btn-danger btn-sm active">Excluir</a> <a id="excluir-orador" href="{% url 'sessao:oradorexcluir' object.pk parlamentar.id %}" class="btn btn-danger btn-sm active">Excluir</a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}

12
templates/sessao/painel.html

@ -6,12 +6,12 @@
<audio type="hidden" id="audio" src="{% static 'audio/ring.mp3' %}"> </audio> <audio type="hidden" id="audio" src="{% static 'audio/ring.mp3' %}"> </audio>
<div class="row"> <div class="row">
<!--<div class="col-md-6"><a href="{% url 'painel_principal' object.pk %}" class="btn btn-primary btn-sm active">Iniciar painel presidente</a></div> --> <!--<div class="col-md-6"><a href="{% url 'painel:painel_principal' object.pk %}" class="btn btn-primary btn-sm active">Iniciar painel presidente</a></div> -->
<div class="col-md-6"><a href="{% url 'painel_principal' object.pk %}" class="btn btn-primary btn-sm active">Iniciar painel completo</a></div> <div class="col-md-6"><a href="{% url 'painel:painel_principal' object.pk %}" class="btn btn-primary btn-sm active">Iniciar painel completo</a></div>
<!--<div class="col-md-6"><a href="{% url 'painel_mensagem' %}" class="btn btn-primary btn-sm active">Iniciar painel mensagem</a></div> <!--<div class="col-md-6"><a href="{% url 'painel:painel_mensagem' %}" class="btn btn-primary btn-sm active">Iniciar painel mensagem</a></div>
<div class="col-md-6"><a href="{% url 'painel_parlamentares' %}" class="btn btn-primary btn-sm active">Iniciar painel parlamentares</a></div> <div class="col-md-6"><a href="{% url 'painel:painel_parlamentares' %}" class="btn btn-primary btn-sm active">Iniciar painel parlamentares</a></div>
<div class="col-md-6"><a href="{% url 'painel_votacao' %}" class="btn btn-primary btn-sm active">Iniciar painel votação</a></div> --> <div class="col-md-6"><a href="{% url 'painel:painel_votacao' %}" class="btn btn-primary btn-sm active">Iniciar painel votação</a></div> -->
<div class="col-md-6"><a href="{% url 'painel_controlador' %}" class="btn btn-primary btn-sm active">Controlador Painel</a></div> <div class="col-md-6"><a href="{% url 'painel:painel_controlador' %}" class="btn btn-primary btn-sm active">Controlador Painel</a></div>
</div> </div>
<br /> <br />
<h1>Operação do Painel Eletrônico</h1> <h1>Operação do Painel Eletrônico</h1>

2
templates/sessao/pauta/expediente.html

@ -38,7 +38,7 @@
</fieldset> </fieldset>
<br /><br /> <br /><br />
<fieldset> <fieldset>
<legend>Tramitação{% if expediente.materia.em_tramitacao %}<a href="{% url 'acompanhar_materia' expediente.materia.id %}"> >>> Acompanhar matéria <<<</a>{% endif %}</legend> <legend>Tramitação{% if expediente.materia.em_tramitacao %}<a href="{% url 'materia:acompanhar_materia' expediente.materia.id %}"> >>> Acompanhar matéria <<<</a>{% endif %}</legend>
{% for t in tramitacao %} {% for t in tramitacao %}
<b>Data: </b> {{t.data_tramitacao}}<br /> <b>Data: </b> {{t.data_tramitacao}}<br />

2
templates/sessao/pauta/ordem.html

@ -46,7 +46,7 @@
</fieldset> </fieldset>
<br /><br /> <br /><br />
<fieldset> <fieldset>
<legend>Tramitação{% if ordem.materia.em_tramitacao %}<a href="{% url 'acompanhar_materia' ordem.materia.id %}"> >>> Acompanhar matéria <<<</a>{% endif %}</legend> <legend>Tramitação{% if ordem.materia.em_tramitacao %}<a href="{% url 'materia:acompanhar_materia' ordem.materia.id %}"> >>> Acompanhar matéria <<<</a>{% endif %}</legend>
{% for t in tramitacao %} {% for t in tramitacao %}
<b>Data: </b> {{t.data_tramitacao}}<br /> <b>Data: </b> {{t.data_tramitacao}}<br />

6
templates/sessao/pauta_sessao_detail.html

@ -4,7 +4,7 @@
{% block actions %}{% endblock %} {% block actions %}{% endblock %}
{% block detail_content %} {% block detail_content %}
<div align=right><a href="{% url 'relatorio_sessao_plenaria' object.id %}">> PDF</a></li></div> <div align=right><a href="{% url 'relatorios:relatorio_sessao_plenaria' object.id %}">> PDF</a></li></div>
<fieldset> <fieldset>
<legend>Identificação Básica</legend> <legend>Identificação Básica</legend>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
@ -45,7 +45,7 @@
{% for m in materia_expediente %} {% for m in materia_expediente %}
<tr> <tr>
<td> <td>
{{m.numero}} - <a href="{% url 'sessaoplenaria:pauta_expediente_detail' m.id %}">{{m.titulo}}</a> {{m.numero}} - <a href="{% url 'sessao:pauta_expediente_detail' m.id %}">{{m.titulo}}</a>
<br /> <br />
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }} <b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }}
</td> </td>
@ -87,7 +87,7 @@
{% for m in materias_ordem %} {% for m in materias_ordem %}
<tr> <tr>
<td> <td>
{{m.numero}} - <a href="{% url 'sessaoplenaria:pauta_ordem_detail' m.id %}">{{m.titulo}}</a> {{m.numero}} - <a href="{% url 'sessao:pauta_ordem_detail' m.id %}">{{m.titulo}}</a>
<br /> <br />
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }} <b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }}
</td> </td>

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

Loading…
Cancel
Save