Browse Source

Merge master

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

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
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')

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'),

61
crud/base.py

@ -8,16 +8,19 @@ 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')

21
materia/test_materia_urls.py

@ -0,0 +1,21 @@
from django.core.urlresolvers import reverse
def test_urls_materia():
st = reverse('materia:pesquisar_materia_list')
assert st == '/materia/pesquisar-materia-list'
st = reverse('materia:relatoria_edit', kwargs={'pk': '11', 'id': '99'})
assert st == '/materia/11/relatoria/99/edit'
st = reverse('materia:tramitacao_edit', kwargs={'pk': '3', 'id': '8'})
assert st == '/materia/3/tramitacao/8/edit'
st = reverse('materia:adicionar_proposicao')
assert st == '/materia/proposicao'
st = reverse('materia:editar_proposicao', kwargs={'pk': '3'})
assert st == '/materia/proposicao/3/edit'
st = reverse('materia:list_proposicao')
assert st == '/materia/proposicao_list'

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$',

25
materia/views.py

@ -58,7 +58,7 @@ 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):
@ -140,7 +140,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):
@ -219,7 +219,7 @@ 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']
@ -258,7 +258,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):
@ -454,7 +454,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):
@ -530,13 +530,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']
@ -553,7 +553,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']
@ -1239,7 +1239,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):
@ -1305,7 +1306,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()})
@ -1340,7 +1341,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'])
@ -1450,4 +1451,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')

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())),

22
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,7 +113,7 @@ 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('normajuridica:list')
@ -123,9 +123,9 @@ class NormaIncluirView(CreateView):
norma.timestamp = datetime.now() norma.timestamp = datetime.now()
if form.cleaned_data['tipo_materia']: if form.cleaned_data['tipo_materia']:
materia = MateriaLegislativa.objects.get( materia = MateriaLegislativa.objects.get(
tipo_id=form.data['tipo_materia'], tipo_id=form.data['tipo_materia'],
numero=form.data['numero_materia'], numero=form.data['numero_materia'],
ano=form.data['ano_materia']) ano=form.data['ano_materia'])
norma.materia = materia norma.materia = materia
norma.save() norma.save()
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())
@ -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:list')
def get_initial(self): def get_initial(self):
data = super(NormaEditView, self).get_initial() data = super(NormaEditView, self).get_initial()
@ -153,9 +153,9 @@ class NormaEditView(UpdateView):
norma.timestamp = datetime.now() norma.timestamp = datetime.now()
if form.cleaned_data['tipo_materia']: if form.cleaned_data['tipo_materia']:
materia = MateriaLegislativa.objects.get( materia = MateriaLegislativa.objects.get(
tipo_id=form.data['tipo_materia'], tipo_id=form.data['tipo_materia'],
numero=form.data['numero_materia'], numero=form.data['numero_materia'],
ano=form.data['ano_materia']) ano=form.data['ano_materia'])
norma.materia = materia norma.materia = materia
norma.save() norma.save()
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())

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')

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())),

23
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(
@ -197,7 +197,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
@ -223,7 +223,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).\
@ -261,7 +262,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).\
@ -349,7 +351,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:
@ -365,7 +367,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'])
@ -403,7 +405,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)
@ -443,7 +446,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)
@ -476,7 +480,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)

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())),

30
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,8 +182,9 @@ 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',
'ano': self.kwargs['ano']}) kwargs={'pk': self.kwargs['pk'],
'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')

16
sessao/forms.py

@ -1,13 +1,11 @@
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import Fieldset, Layout from crispy_forms.layout import Fieldset, Layout
from django import forms from django import forms
from django.core.exceptions import ValidationError
from django.forms import ModelForm from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import crispy_layout_mixin import crispy_layout_mixin
from crispy_layout_mixin import form_actions from crispy_layout_mixin import form_actions
from sapl.settings import MAX_DOC_UPLOAD_SIZE
from .models import SessaoPlenaria from .models import SessaoPlenaria
@ -94,20 +92,6 @@ class SessaoForm(ModelForm):
'hora_fim': forms.TextInput(attrs={'class': 'hora'}), 'hora_fim': forms.TextInput(attrs={'class': 'hora'}),
} }
def clean_url_audio(self):
url_audio = self.cleaned_data.get('url_audio', False)
if url_audio:
if url_audio.size > MAX_DOC_UPLOAD_SIZE:
raise ValidationError("Arquivo muito grande. ( > 5mb )")
return url_audio
def clean_url_video(self):
url_video = self.cleaned_data.get('url_video', False)
if url_video:
if url_video.size > MAX_DOC_UPLOAD_SIZE:
raise ValidationError("Arquivo muito grande. ( > 5mb )")
return url_video
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row( row1 = crispy_layout_mixin.to_row(

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/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

@ -8,7 +8,7 @@
<h2><b>Proposições</b></h2> <h2><b>Proposições</b></h2>
<br /> <br />
<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>
{% endblock %} {% endblock %}
@ -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/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>

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/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>

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>

2
templates/sessao/pauta_sessao_list.html

@ -8,7 +8,7 @@
{% for sessao in page_obj %} {% for sessao in page_obj %}
<tr> <tr>
<th> <th>
<a href="{% url 'sessaoplenaria:pauta_sessao_detail' sessao.id %}">{{sessao}}</a> <a href="{% url 'sessao:pauta_sessao_detail' sessao.id %}">{{sessao}}</a>
<br /> <br />
Data: {{sessao.data_inicio}} - Abertura {{sessao.hora_inicio}} Data: {{sessao.data_inicio}} - Abertura {{sessao.hora_inicio}}
</th> </th>

4
templates/sessao/sessao_list.html

@ -5,7 +5,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">
<h2>Sessões Plenárias</h2> <h2>Sessões Plenárias</h2>
<a href="{% url 'sessaoplenaria:sessao_cadastro' %}" class="btn btn-default"> <a href="{% url 'sessao:sessao_cadastro' %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Sessão Plenária {% endblocktrans %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Sessão Plenária {% endblocktrans %}
</a> </a>
</div> </div>
@ -14,7 +14,7 @@
{% for sessao in page_obj %} {% for sessao in page_obj %}
<tr> <tr>
<th> <th>
<a href="{% url 'sessaoplenaria:detail' sessao.id %}">{{sessao}}</a> <a href="{% url 'sessao:sessaoplenaria_detail' sessao.id %}">{{sessao}}</a>
<br /> <br />
Data: {{sessao.data_inicio}} - Abertura {{sessao.hora_inicio}} Data: {{sessao.data_inicio}} - Abertura {{sessao.hora_inicio}}
</th> </th>

22
templates/sessao/subnav.yaml

@ -1,32 +1,32 @@
- title: Abertura - title: Abertura
children: children:
- title: Dados Básicos - title: Dados Básicos
url: sessaoplenaria:detail url: sessaoplenaria_detail
- title: Mesa - title: Mesa
url: sessaoplenaria:mesa url: mesa
- title: Presença - title: Presença
url: sessaoplenaria:presenca url: presenca
- title: Explicações Pessoais - title: Explicações Pessoais
url: sessaoplenaria:explicacao url: explicacao
- title: Expedientes - title: Expedientes
children: children:
- title: Expediente Diversos - title: Expediente Diversos
url: sessaoplenaria:expediente url: expediente
- title: Matérias Expediente - title: Matérias Expediente
url: sessaoplenaria:expedienteordemdia_list url: expedienteordemdia_list
- title: Oradores do Expediente - title: Oradores do Expediente
url: sessaoplenaria:oradorexpediente url: oradorexpediente
- title: Ordem do Dia - title: Ordem do Dia
children: children:
- title: Matérias Ordem do Dia - title: Matérias Ordem do Dia
url: sessaoplenaria:materiaordemdia_list url: materiaordemdia_list
- title: Presença Ordem do Dia - title: Presença Ordem do Dia
url: sessaoplenaria:presencaordemdia url: presencaordemdia
- title: Painel Eletrônico - title: Painel Eletrônico
url: sessaoplenaria:painel url: painel
- title: Resumo - title: Resumo
url: sessaoplenaria:resumo url: resumo

60
templates/sistema.html

@ -5,31 +5,31 @@
<h2>Configuração Inicial</h2> <h2>Configuração Inicial</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'casa_legislativa' %}" class="btn btn-link">Casa Legislativa</a></div> <div class="col-md-6"><a href="{% url 'base:casa_legislativa' %}" class="btn btn-link">Casa Legislativa</a></div>
</div> </div>
<h2>Módulo Parlamentares</h2> <h2>Módulo Parlamentares</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'legislatura:list' %}" class="btn btn-link">Legislatura</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:legislatura_list' %}" class="btn btn-link">Legislatura</a></div>
<div class="col-md-6"><a href="{% url 'tipoafastamento:list' %}" class="btn btn-link">Tipo de Afastamento</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:tipoafastamento_list' %}" class="btn btn-link">Tipo de Afastamento</a></div>
<div class="col-md-6"><a href="{% url 'tipodependente:list' %}" class="btn btn-link">Tipo de Dependente</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:tipodependente_list' %}" class="btn btn-link">Tipo de Dependente</a></div>
<div class="col-md-6"><a href="{% url 'situacaomilitar:list' %}" class="btn btn-link">Tipo de Situação Militar</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:situacaomilitar_list' %}" class="btn btn-link">Tipo de Situação Militar</a></div>
<div class="col-md-6"><a href="{% url 'nivelinstrucao:list' %}" class="btn btn-link">Nível de Intrução</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:nivelinstrucao_list' %}" class="btn btn-link">Nível de Intrução</a></div>
<div class="col-md-6"><a href="{% url 'partido:list' %}" class="btn btn-link">Partido</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:partido_list' %}" class="btn btn-link">Partido</a></div>
<div class="col-md-6"><a href="{% url 'coligacao:list' %}" class="btn btn-link">Coligação</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:coligacao_list' %}" class="btn btn-link">Coligação</a></div>
</div> </div>
<h2>Módulo Mesa Diretora</h2> <h2>Módulo Mesa Diretora</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'sessaolegislativa:list' %}" class="btn btn-link">Sessão Legislativa</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:sessaolegislativa_list' %}" class="btn btn-link">Sessão Legislativa</a></div>
<div class="col-md-6"><a href="{% url 'cargomesa:list' %}" class="btn btn-link">Cargo da Mesa</a></div> <div class="col-md-6"><a href="{% url 'parlamentares:cargomesa_list' %}" class="btn btn-link">Cargo da Mesa</a></div>
</div> </div>
<h2>Módulo Comissões</h2> <h2>Módulo Comissões</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'cargocomissao:list' %}" class="btn btn-link">Cargo de Comissão</a></div> <div class="col-md-6"><a href="{% url 'comissoes:cargocomissao_list' %}" class="btn btn-link">Cargo de Comissão</a></div>
<div class="col-md-6"><a href="{% url 'periodo:list' %}" class="btn btn-link">Período de Composição</a></div> <div class="col-md-6"><a href="{% url 'comissoes:periodo_list' %}" class="btn btn-link">Período de Composição</a></div>
<div class="col-md-6"><a href="{% url 'tipocomissao:list' %}" class="btn btn-link">Tipo de Composição</a></div> <div class="col-md-6"><a href="{% url 'comissoes:tipocomissao_list' %}" class="btn btn-link">Tipo de Composição</a></div>
</div> </div>
<h2>Módulo Bancadas</h2> <h2>Módulo Bancadas</h2>
@ -40,22 +40,22 @@
<h2>Módulo Proposições</h2> <h2>Módulo Proposições</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'tipoproposicao:list' %}" class="btn btn-link">Tipo de Proposição</a></div> <div class="col-md-6"><a href="{% url 'materia:tipoproposicao_list' %}" class="btn btn-link">Tipo de Proposição</a></div>
<div class="col-md-6"><a href="{% url 'autor:list' %}" class="btn btn-link">Autor</a></div> <div class="col-md-6"><a href="{% url 'materia:autor_list' %}" class="btn btn-link">Autor</a></div>
</div> </div>
<h2>Módulo Matéria Legislativa</h2> <h2>Módulo Matéria Legislativa</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'tipomaterialegislativa:list' %}" class="btn btn-link">Tipo de Matéria Legislativa</a></div> <div class="col-md-6"><a href="{% url 'materia:tipomaterialegislativa_list' %}" class="btn btn-link">Tipo de Matéria Legislativa</a></div>
<div class="col-md-6"><a href="{% url 'regimetramitacao:list' %}" class="btn btn-link">Regime de Tramitação</a></div> <div class="col-md-6"><a href="{% url 'materia:regimetramitacao_list' %}" class="btn btn-link">Regime de Tramitação</a></div>
<div class="col-md-6"><a href="{% url 'tipoautor:list' %}" class="btn btn-link">Tipo de Autor</a></div> <div class="col-md-6"><a href="{% url 'materia:tipoautor_list' %}" class="btn btn-link">Tipo de Autor</a></div>
<div class="col-md-6"><a href="{% url 'tipodocumento:list' %}" class="btn btn-link">Tipo de Documento</a></div> <div class="col-md-6"><a href="{% url 'materia:tipodocumento_list' %}" class="btn btn-link">Tipo de Documento</a></div>
<div class="col-md-6"><a href="{% url 'tipofimrelatoria:list' %}" class="btn btn-link">Tipo de fim de Relatoria</a></div> <div class="col-md-6"><a href="{% url 'materia:tipofimrelatoria_list' %}" class="btn btn-link">Tipo de fim de Relatoria</a></div>
<div class="col-md-6"><a href="{% url 'unidadetramitacao:list' %}" class="btn btn-link">Unidade de Tramitação</a></div> <div class="col-md-6"><a href="{% url 'materia:unidadetramitacao_list' %}" class="btn btn-link">Unidade de Tramitação</a></div>
<div class="col-md-6"><a href="{% url 'origem:list' %}" class="btn btn-link">Origem</a></div> <div class="col-md-6"><a href="{% url 'materia:origem_list' %}" class="btn btn-link">Origem</a></div>
<div class="col-md-6"><a href="{% url 'autor:list' %}" class="btn btn-link">Autor</a></div> <div class="col-md-6"><a href="{% url 'materia:autor_list' %}" class="btn btn-link">Autor</a></div>
<div class="col-md-6"><a href="{% url 'statustramitacao:list' %}" class="btn btn-link">Status da Tramitação</a></div> <div class="col-md-6"><a href="{% url 'materia:statustramitacao_list' %}" class="btn btn-link">Status da Tramitação</a></div>
<div class="col-md-6"><a href="{% url 'orgao:list' %}" class="btn btn-link">Órgão</a></div> <div class="col-md-6"><a href="{% url 'materia:orgao_list' %}" class="btn btn-link">Órgão</a></div>
</div> </div>
<h2>Módulo Normas Jurídicas</h2> <h2>Módulo Normas Jurídicas</h2>
@ -66,17 +66,17 @@
<h2>Módulo Sessão Plenária</h2> <h2>Módulo Sessão Plenária</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'tiposessaoplenaria:list' %}" class="btn btn-link">Tipo de Sessão Plenária</a></div> <div class="col-md-6"><a href="{% url 'sessao:tiposessaoplenaria_list' %}" class="btn btn-link">Tipo de Sessão Plenária</a></div>
<div class="col-md-6"><a href="{% url 'tiporesultadovotacao:list' %}" class="btn btn-link">Tipo de Resultado da Votação</a></div> <div class="col-md-6"><a href="{% url 'sessao:tiporesultadovotacao_list' %}" class="btn btn-link">Tipo de Resultado da Votação</a></div>
<div class="col-md-6"><a href="#" class="btn btn-link">Cadastro dos endereços dos computadores dos parlamentares</a></div> <div class="col-md-6"><a href="#" class="btn btn-link">Cadastro dos endereços dos computadores dos parlamentares</a></div>
<div class="col-md-6"><a href="{% url 'tipoexpediente:list' %}" class="btn btn-link">Tipo de Expediente</a></div> <div class="col-md-6"><a href="{% url 'sessao:tipoexpediente_list' %}" class="btn btn-link">Tipo de Expediente</a></div>
<div class="col-md-6"><a href="#" class="btn btn-link">Propriedades do Painel Eletrônico</a></div> <div class="col-md-6"><a href="#" class="btn btn-link">Propriedades do Painel Eletrônico</a></div>
</div> </div>
<h2>Módulo LexML</h2> <h2>Módulo LexML</h2>
<div class="row"> <div class="row">
<div class="col-md-6"><a href="{% url 'lexmlprovedor:list' %}" class="btn btn-link">Provedor</a></div> <div class="col-md-6"><a href="{% url 'lexml:lexmlprovedor_list' %}" class="btn btn-link">Provedor</a></div>
<div class="col-md-6"><a href="{% url 'lexmlpublicador:list' %}" class="btn btn-link">Publicador</a></div> <div class="col-md-6"><a href="{% url 'lexml:lexmlpublicador_list' %}" class="btn btn-link">Publicador</a></div>
</div> </div>
<h2>Módulo Administrativo</h2> <h2>Módulo Administrativo</h2>

Loading…
Cancel
Save