Browse Source

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

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

4
.gitignore

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

2
base/__init__.py

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

4
base/apps.py

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

14
base/templatetags/menus.py

@ -21,20 +21,22 @@ def subnav(context, path=None):
menu = None
if 'object' in context:
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)
if os.path.exists(path):
menu = yaml.load(open(path, 'r'))
resolve_urls_inplace(menu, obj.pk)
resolve_urls_inplace(menu, obj.pk, app)
return dict(menu=menu)
def resolve_urls_inplace(menu, pk):
def resolve_urls_inplace(menu, pk, app):
if isinstance(menu, list):
for item in menu:
resolve_urls_inplace(item, pk)
resolve_urls_inplace(item, pk, app)
else:
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:
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.views.generic.base import TemplateView
from .apps import AppConfig
from .views import CasaLegislativaTableAuxView, HelpView
app_name = AppConfig.name
urlpatterns = [
url(r'^sistema/', TemplateView.as_view(template_name='sistema.html')),
url(r'^ajuda/(?P<topic>\w+)$', HelpView.as_view(), name='help_topic'),

2
base/views.py

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

2
comissoes/__init__.py

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

4
comissoes/apps.py

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

8
comissoes/test_comissoes.py

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

10
comissoes/urls.py

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

6
comissoes/views.py

@ -21,7 +21,7 @@ ComissaoCrud = Crud.build(Comissao, 'modulo_comissoes')
class CadastrarComissaoView(CreateView):
template_name = "comissoes/cadastrar_comissao.html"
form_class = CadastrarComissaoForm
success_url = reverse_lazy('comissao:list')
success_url = reverse_lazy('comissoes:comissao_list')
class ComposicaoView(FormView):
@ -124,7 +124,7 @@ class ComissaoParlamentarIncluirView(FormView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('comissao:composicao', kwargs={'pk': pk})
return reverse('comissoes:composicao', kwargs={'pk': pk})
class ComissaoParlamentarEditView(FormView):
@ -166,7 +166,7 @@ class ComissaoParlamentarEditView(FormView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('comissao:composicao', kwargs={'pk': pk})
return reverse('comissoes:composicao', kwargs={'pk': pk})
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 _
class CompilacaoAppConfig(AppConfig):
class AppConfig(apps.AppConfig):
name = 'compilacao'
verbose_name = _('Compilação')

4
compilacao/urls.py

@ -4,6 +4,10 @@ from compilacao import views
from compilacao.views import (TipoNotaCrud, TipoPublicacaoCrud, TipoVideCrud,
VeiculoPublicacaoCrud)
from .apps import AppConfig
app_name = AppConfig.name
urlpatterns_compilacao = [
url(r'^$', views.TaListView.as_view(), name='ta_list'),
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
LIST, CREATE, DETAIL, UPDATE, DELETE = \
'list', 'create', 'detail', 'update', 'delete'
def _form_invalid_message(msg):
return '%s %s' % (_('Formulário inválido.'), msg)
FORM_MESSAGES = {'create': (_('Registro criado com sucesso!'),
_('O registro não foi criado.')),
'update': (_('Registro alterado com sucesso!'),
_('Suas alterações não foram salvas.')),
'delete': (_('Registro excluído com sucesso!'),
_('O registro não foi excluído.'))}
FORM_MESSAGES = {CREATE: (_('Registro criado com sucesso!'),
_('O registro não foi criado.')),
UPDATE: (_('Registro alterado com sucesso!'),
_('Suas alterações não foram salvas.')),
DELETE: (_('Registro excluído com sucesso!'),
_('O registro não foi excluído.'))}
FORM_MESSAGES = {k: (a, _form_invalid_message(b))
for k, (a, b) in FORM_MESSAGES.items()}
@ -55,32 +58,34 @@ def make_pagination(index, num_pages):
class BaseMixin(CrispyLayoutFormMixin):
@property
def namespace(self):
return self.model._meta.model_name
@classmethod
def url_name(cls, suffix):
return '%s_%s' % (cls.model._meta.model_name, suffix)
def resolve_url(self, url_name, args=None):
return reverse('%s:%s' % (self.namespace, url_name), args=args)
def resolve_url(self, suffix, args=None):
namespace = self.model._meta.app_label
return reverse('%s:%s' % (namespace, self.url_name(suffix)),
args=args)
@property
def list_url(self):
return self.resolve_url('list')
return self.resolve_url(LIST)
@property
def create_url(self):
return self.resolve_url('create')
return self.resolve_url(CREATE)
@property
def detail_url(self):
return self.resolve_url('detail', args=(self.object.id,))
return self.resolve_url(DETAIL, args=(self.object.id,))
@property
def update_url(self):
return self.resolve_url('update', args=(self.object.id,))
return self.resolve_url(UPDATE, args=(self.object.id,))
@property
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):
names = super(BaseMixin, self).get_template_names()
@ -131,7 +136,7 @@ class CrudListView(ListView):
class CrudCreateView(FormMessagesMixin, CreateView):
form_valid_message, form_invalid_message = FORM_MESSAGES['create']
form_valid_message, form_invalid_message = FORM_MESSAGES[CREATE]
@property
def cancel_url(self):
@ -148,7 +153,7 @@ class CrudCreateView(FormMessagesMixin, CreateView):
class CrudUpdateView(FormMessagesMixin, UpdateView):
form_valid_message, form_invalid_message = FORM_MESSAGES['update']
form_valid_message, form_invalid_message = FORM_MESSAGES[UPDATE]
@property
def cancel_url(self):
@ -160,7 +165,7 @@ class CrudUpdateView(FormMessagesMixin, UpdateView):
class CrudDeleteView(FormMessagesMixin, DeleteView):
form_valid_message, form_invalid_message = FORM_MESSAGES['delete']
form_valid_message, form_invalid_message = FORM_MESSAGES[DELETE]
@property
def cancel_url(self):
@ -195,17 +200,13 @@ class Crud:
CrudUpdateView = _add_base(cls.UpdateView)
CrudDeleteView = _add_base(cls.DeleteView)
urlpatterns = [
url(r'^$', CrudListView.as_view(), name='list'),
url(r'^create$', CrudCreateView.as_view(), name='create'),
url(r'^(?P<pk>\d+)$', CrudDetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/edit$',
CrudUpdateView.as_view(), name='update'),
url(r'^(?P<pk>\d+)/delete$',
CrudDeleteView.as_view(), name='delete'),
]
return urlpatterns, _add_base(object)().namespace
return [url(regex, view.as_view(), name=view.url_name(suffix))
for regex, view, suffix in [
(r'^$', CrudListView, LIST),
(r'^create$', CrudCreateView, CREATE),
(r'^(?P<pk>\d+)$', CrudDetailView, DETAIL),
(r'^(?P<pk>\d+)/edit$', CrudUpdateView, UPDATE),
(r'^(?P<pk>\d+)/delete$', CrudDeleteView, DELETE), ]]
@classonlymethod
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
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():
assert '/countries/' == reverse('country:list')
assert '/countries/create' == reverse('country:create')
assert '/countries/2' == reverse('country:detail', args=(2,))
assert '/countries/2/edit' == reverse('country:update', args=(2,))
assert '/countries/2/delete' == reverse('country:delete', args=(2,))
assert '/countries/' == reverse('stub_app:country_list')
assert '/countries/create' == reverse('stub_app:country_create')
assert '/countries/2' == reverse('stub_app:country_detail', args=(2,))
assert '/countries/2/edit' == reverse('stub_app:country_update', args=(2,))
assert '/countries/2/delete' == reverse(
'stub_app:country_delete', args=(2,))
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 _
class LexmlAppConfig(AppConfig):
class AppConfig(apps.AppConfig):
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 .apps import AppConfig
app_name = AppConfig.name
urlpatterns = [
url(r'^sistema/lexml/provedor/',
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 _
class MateriaAppConfig(AppConfig):
class AppConfig(apps.AppConfig):
name = 'materia'
verbose_name = _('Matéria')

34
materia/test_materia.py

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

23
materia/test_materia_urls.py

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

5
materia/urls.py

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

64
materia/views.py

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

4
norma/test_norma.py

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

10
norma/urls.py

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

24
norma/views.py

@ -16,13 +16,13 @@ from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica,
AssuntoNormaCrud = Crud.build(AssuntoNorma, 'assunto_norma_juridica')
TipoNormaCrud = Crud.build(TipoNormaJuridica, 'tipo_norma_juridica')
NormaCrud = Crud.build(NormaJuridica, '')
NormaTemporarioCrud = Crud.build(NormaJuridica, 'normajuridica')
NormaTemporarioCrud = Crud.build(NormaJuridica, 'norma')
LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '')
class NormaPesquisaView(FormView):
template_name = "norma/pesquisa.html"
success_url = "normajuridica:norma_pesquisa"
success_url = "norma:norma_pesquisa"
form_class = NormaJuridicaPesquisaForm
def post(self, request, *args, **kwargs):
@ -42,7 +42,7 @@ class NormaPesquisaView(FormView):
kwargs['publicacao_final'] = form.data['publicacao_final']
request.session['kwargs'] = kwargs
return redirect('list_pesquisa_norma')
return redirect('norma:list_pesquisa_norma')
class PesquisaNormaListView(ListView):
@ -113,19 +113,19 @@ class PesquisaNormaListView(ListView):
class NormaIncluirView(CreateView):
template_name = "norma/normajuridica_incluir.html"
form_class = NormaJuridicaForm
success_url = reverse_lazy('normajuridica:list')
success_url = reverse_lazy('norma:normajuridica_list')
def get_success_url(self):
return reverse_lazy('normajuridica:list')
return reverse_lazy('norma:norma_pesquisa')
def form_valid(self, form):
norma = form.save(commit=False)
norma.timestamp = datetime.now()
if form.cleaned_data['tipo_materia']:
materia = MateriaLegislativa.objects.get(
tipo_id=form.data['tipo_materia'],
numero=form.data['numero_materia'],
ano=form.data['ano_materia'])
tipo_id=form.data['tipo_materia'],
numero=form.data['numero_materia'],
ano=form.data['ano_materia'])
norma.materia = materia
norma.save()
return HttpResponseRedirect(self.get_success_url())
@ -135,7 +135,7 @@ class NormaEditView(UpdateView):
template_name = "norma/normajuridica_incluir.html"
form_class = NormaJuridicaForm
model = NormaJuridica
success_url = reverse_lazy('normajuridica:list')
success_url = reverse_lazy('norma:pesquisa_norma')
def get_initial(self):
data = super(NormaEditView, self).get_initial()
@ -153,9 +153,9 @@ class NormaEditView(UpdateView):
norma.timestamp = datetime.now()
if form.cleaned_data['tipo_materia']:
materia = MateriaLegislativa.objects.get(
tipo_id=form.data['tipo_materia'],
numero=form.data['numero_materia'],
ano=form.data['ano_materia'])
tipo_id=form.data['tipo_materia'],
numero=form.data['numero_materia'],
ano=form.data['ano_materia'])
norma.materia = materia
norma.save()
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 .apps import AppConfig
from .views import controlador_painel # CronometroPainelCrud,
from .views import (cronometro_painel, get_dados_painel, painel_mensagem_view,
painel_parlamentares_view, painel_view,
painel_votacao_view)
app_name = AppConfig.name
urlpatterns = [
url(r'^(?P<pk>\d+)/painel$', painel_view, name="painel_principal"),
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 _
class ParlamentaresAppConfig(AppConfig):
class AppConfig(apps.AppConfig):
name = 'parlamentares'
verbose_name = _('Parlamentares')

21
parlamentares/test_parlamentares.py

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

6
parlamentares/test_parlamentares_urls.py

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

4
parlamentares/urls.py

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

28
parlamentares/views.py

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

2
protocoloadm/__init__.py

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

4
protocoloadm/apps.py

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

4
protocoloadm/test_protocoloadm.py

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

4
protocoloadm/urls.py

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

30
protocoloadm/views.py

@ -41,7 +41,7 @@ class ProtocoloPesquisaView(FormView):
template_name = 'protocoloadm/protocolo_pesquisa.html'
form_class = ProtocoloForm
context_object_name = 'protocolos'
success_url = reverse_lazy('protocolo')
success_url = reverse_lazy('protocoloadm:protocolo')
def post(self, request, *args, **kwargs):
form = ProtocoloForm(request.POST or None)
@ -85,7 +85,7 @@ class ProtocoloPesquisaView(FormView):
kwargs['assunto_ementa__icontains'] = request.POST['assunto']
request.session['kwargs'] = kwargs
return redirect('protocolo_list')
return redirect('protocoloadm:protocolo_list')
else:
return self.form_invalid(form)
@ -119,7 +119,7 @@ class AnularProtocoloAdmView(CreateView):
form_valid_message = _('Protocolo anulado com sucesso!')
def get_success_url(self):
return reverse('protocolo')
return reverse('protocoloadm:protocolo')
def get_initial(self):
initial_data = {}
@ -145,7 +145,7 @@ class ProtocoloDocumentoView(FormValidMessageMixin, CreateView):
form_valid_message = _('Protocolo cadastrado com sucesso!')
def get_success_url(self):
return reverse('protocolo')
return reverse('protocoloadm:protocolo')
def form_valid(self, form):
f = form.save(commit=False)
@ -182,8 +182,9 @@ class CriarDocumentoProtocolo(CreateView):
return self.criar_documento(protocolo)
def get_success_url(self):
return reverse('protocolo_mostrar', kwargs={'pk': self.kwargs['pk'],
'ano': self.kwargs['ano']})
return reverse('protocoloadm:protocolo_mostrar',
kwargs={'pk': self.kwargs['pk'],
'ano': self.kwargs['ano']})
def criar_documento(self, protocolo):
@ -254,7 +255,7 @@ class ProtocoloMateriaView(CreateView):
form_valid_message = _('Matéria cadastrada com sucesso!')
def get_success_url(self):
return reverse('protocolo')
return reverse('protocoloadm:protocolo')
def form_valid(self, form):
if self.request.POST['numeracao'] == '1':
@ -446,10 +447,10 @@ class DetailDocumentoAdministrativo(DetailView):
return HttpResponseRedirect(self.get_success_url())
def get_success_delete(self):
return reverse('pesq_doc_adm')
return reverse('protocoloadm:pesq_doc_adm')
def get_success_url(self):
return reverse('detail_doc_adm', kwargs={
return reverse('protocoloadm:detail_doc_adm', kwargs={
'pk': self.kwargs['pk']})
@ -497,7 +498,7 @@ class DocumentoAcessorioAdministrativoEditView(FormView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('doc_ace_adm', kwargs={'pk': pk})
return reverse('protocoloadm:doc_ace_adm', kwargs={'pk': pk})
class DocumentoAcessorioAdministrativoView(FormView):
@ -536,7 +537,7 @@ class DocumentoAcessorioAdministrativoView(FormView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('doc_ace_adm', kwargs={'pk': pk})
return reverse('protocoloadm:doc_ace_adm', kwargs={'pk': pk})
class TramitacaoAdmView(FormView):
@ -572,8 +573,8 @@ class TramitacaoAdmIncluirView(FormView):
tramitacao = form.save(commit=False)
tramitacao.ultima = False
tramitacao.save()
return HttpResponseRedirect(
reverse('tramitacao', kwargs={'pk': pk}))
return HttpResponseRedirect(reverse(
'protocoloadm:tramitacao_adm', kwargs={'pk': pk}))
else:
return self.form_invalid(form)
@ -600,7 +601,8 @@ class TramitacaoAdmEditView(FormView):
tramitacao.ultima = False
tramitacao.save()
return HttpResponseRedirect(
reverse('tramitacao', kwargs={'pk': tramitacao.documento.id}))
reverse('protocoloadm:tramitacao_adm',
kwargs={'pk': tramitacao.documento.id}))
else:
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 .apps import AppConfig
from .views import (relatorio_capa_processo,
relatorio_documento_administrativo, relatorio_espelho,
relatorio_etiqueta_protocolo, relatorio_materia,
relatorio_ordem_dia, relatorio_pauta_sessao,
relatorio_protocolo, relatorio_sessao_plenaria)
app_name = AppConfig.name
urlpatterns = [
url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'),
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 _
class SessaoAppConfig(AppConfig):
class AppConfig(apps.AppConfig):
name = 'sessao'
verbose_name = _('Sessão Plenária')

8
sessao/urls.py

@ -21,9 +21,11 @@ from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
VotacaoNominalExpedienteView, VotacaoNominalView,
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$',
ExpedienteView.as_view(), name='expediente'),
url(r'^(?P<pk>\d+)/presenca$',
@ -105,7 +107,7 @@ sessao_rest = [
]
urlpatterns = [
url(r'^sessao/', include(urlpatterns_sessao, namespace)),
url(r'^sessao/', include(urlpatterns_sessao)),
url(r'^media/(?P<path>.*)$', serve,
{'document_root': settings.MEDIA_ROOT}),
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):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:presenca', kwargs={'pk': pk})
return reverse('sessao:presenca', kwargs={'pk': pk})
class PainelView(SessaoCrud.CrudDetailView):
@ -142,7 +142,7 @@ class PresencaOrdemDiaView(FormMixin,
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:presencaordemdia', kwargs={'pk': pk})
return reverse('sessao:presencaordemdia', kwargs={'pk': pk})
class ListMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
@ -409,7 +409,7 @@ class MateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk})
@ -520,7 +520,7 @@ class EditMateriaOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk})
@ -586,7 +586,7 @@ class ExpedienteOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list',
return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk})
@ -669,7 +669,7 @@ class EditExpedienteOrdemDiaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list',
return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk})
@ -695,7 +695,7 @@ class OradorExpedienteDelete(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk})
return reverse('sessao:oradorexpediente', kwargs={'pk': pk})
class OradorExpedienteEdit(FormMixin, SessaoCrud.CrudDetailView):
@ -755,7 +755,7 @@ class OradorExpedienteEdit(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk})
return reverse('sessao:oradorexpediente', kwargs={'pk': pk})
class OradorExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
@ -825,7 +825,7 @@ class OradorExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk})
return reverse('sessao:oradorexpediente', kwargs={'pk': pk})
class MesaView(FormMixin, SessaoCrud.CrudDetailView):
@ -919,7 +919,7 @@ class MesaView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:mesa', kwargs={'pk': pk})
return reverse('sessao:mesa', kwargs={'pk': pk})
class ResumoView(SessaoCrud.CrudDetailView):
@ -1159,7 +1159,7 @@ class ExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expediente', kwargs={'pk': pk})
return reverse('sessao:expediente', kwargs={'pk': pk})
class ExplicacaoView(FormMixin, SessaoCrud.CrudDetailView):
@ -1229,7 +1229,7 @@ class ExplicacaoView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk})
return reverse('sessao:explicacao', kwargs={'pk': pk})
class ExplicacaoDelete(FormMixin, SessaoCrud.CrudDetailView):
@ -1252,7 +1252,7 @@ class ExplicacaoDelete(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk})
return reverse('sessao:explicacao', kwargs={'pk': pk})
class ExplicacaoEdit(FormMixin, SessaoCrud.CrudDetailView):
@ -1312,7 +1312,7 @@ class ExplicacaoEdit(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk})
return reverse('sessao:explicacao', kwargs={'pk': pk})
class VotacaoEditView(FormMixin, SessaoCrud.CrudDetailView):
@ -1384,7 +1384,7 @@ class VotacaoEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk})
@ -1503,7 +1503,7 @@ class VotacaoView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk})
@ -1630,7 +1630,7 @@ class VotacaoNominalView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk})
@ -1707,7 +1707,7 @@ class VotacaoNominalEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list',
return reverse('sessao:materiaordemdia_list',
kwargs={'pk': pk})
@ -1832,7 +1832,7 @@ class VotacaoNominalExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list',
return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk})
@ -1909,7 +1909,7 @@ class VotacaoNominalExpedienteEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list',
return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk})
@ -2030,7 +2030,7 @@ class VotacaoExpedienteView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list',
return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk})
@ -2045,7 +2045,7 @@ class VotacaoExpedienteEditView(FormMixin, SessaoCrud.CrudDetailView):
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list',
return reverse('sessao:expedienteordemdia_list',
kwargs={'pk': pk})
def get_tipos_votacao(self):
@ -2241,7 +2241,7 @@ class PautaSessaoDetailView(SessaoCrud.CrudDetailView):
class SessaoCadastroView(CreateView):
template_name = "sessao/sessao_cadastro.html"
form_class = SessaoForm
success_url = reverse_lazy('sessaoplenaria:list_sessao')
success_url = reverse_lazy('sessao:list_sessao')
class SessaoPlenariaView(generics.ListAPIView):

22
templates/base.html

@ -46,30 +46,30 @@
<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>
<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 'comissao:list' %}">Comissões</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 '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="{% url 'parlamentares' %}">Parlamentares</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'parlamentares:parlamentares' %}">Parlamentares</a></li>
</ul>
</li>
<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>
<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="">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>
</li>
<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>
<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 '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 'sessaoplenaria:list_pauta_sessao' %}">Pautas das Sessõ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 'materia:materialegislativa_list' %}">Matérias Legislativas</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 '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="#">Reuniões das Comissões</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">
<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">
<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> -->
</ul>
</li>
@ -153,7 +153,7 @@
{% block help %}
{% 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 %}
{% endblock %}

4
templates/comissoes/comissao_list.html

@ -4,7 +4,7 @@
{% block base_content %}
<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 %}
</a>
</div>
@ -22,7 +22,7 @@
{% for comissao in page_obj %}
<tr>
<td>
<a href="{% url 'comissao:detail' comissao.id %}">{{comissao}}</a>
<a href="{% url 'comissoes:comissao_detail' comissao.id %}">{{comissao}}</a>
</td>
<td>{{comissao.sigla}}</td>
<td>{{comissao.tipo}}</td>

4
templates/comissoes/composicao.html

@ -33,7 +33,7 @@
{% for participacao in participacoes %}
{% if participacao.composicao_id == composicao_id %}
<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.titular|yesno:"Sim,Não"}}</td>
<td>{{participacao.data_designacao|date:"d/m/Y"}}</td>
@ -46,7 +46,7 @@
</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 %}
{% 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>
{% 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}}
</b></a><br>
{{tramitacao.materia}}<br>

6
templates/comissoes/subnav.yaml

@ -1,6 +1,6 @@
- title: Início
url: comissao:detail
url: comissao_detail
- title: Composição
url: comissao:composicao
url: composicao
- 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>
{% for a in autorias %}
<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.primeiro_autor|yesno:"Sim,Não"}}</td>
<td>{{a.partido.sigla|default_if_none:"Não Informado"}}</td>

2
templates/materia/despacho_inicial.html

@ -18,7 +18,7 @@
</thead>
{% for d in despachos %}
<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>
</tr>
{% endfor %}

2
templates/materia/documento_acessorio.html

@ -20,7 +20,7 @@
</thead>
{% for d in docs %}
<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.data|date:'d/m/Y'}}</td>
<td>{{d.autor}}</td>

2
templates/materia/legislacao_citada.html

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

2
templates/materia/materia_anexada.html

@ -20,7 +20,7 @@
</thead>
{% for a in anexadas %}
<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_desanexacao|date:"d/m/Y"}}</td>
</tr>

4
templates/materia/materialegislativa_list.html

@ -2,11 +2,11 @@
{% load i18n %}
{% 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 %}
</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 %}
</a>
{% endblock more_buttons %}

2
templates/materia/numeracao.html

@ -21,7 +21,7 @@
</thead>
{% for n in numeracao %}
<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.numero_materia}}</td>
<td>{{n.ano_materia}}</td>

2
templates/materia/pesquisa_materia_list.html

@ -12,7 +12,7 @@
{% for m in materias %}
<tr>
<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>
<strong>Localização Atual:</strong> {{m.tramitacao_set.last.unidade_tramitacao_destino|default_if_none:"Não Informada"}}</br>
<p></p>

8
templates/materia/proposicao/proposicao_list.html

@ -3,14 +3,14 @@
{% load crispy_forms_tags %}
{% block actions %}<!-- Remvoer botões 'Editar' e 'Excluir' -->{% endblock %}
<!--
<!--
{% block sections_nav %}
{% endblock %} -->
{% block detail_content %}
<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>
<h2><b>Proposições</b></h2>
<table class="table table-striped table-bordered">
@ -26,9 +26,9 @@
{% for proposicao in page_obj %}
<tr>
{% 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 %}
<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 %}
<td>{{ proposicao.tipo }}</td>
<td>{{ proposicao.descricao|safe }}</td>

2
templates/materia/relatoria.html

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

2
templates/materia/subnav.yaml

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

2
templates/materia/tramitacao.html

@ -20,7 +20,7 @@
</thead>
{% for t in tramitacoes %}
<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_destino}}</td>
<td>{{t.status.descricao}}</td>

4
templates/norma/list_pesquisa.html

@ -4,7 +4,7 @@
{% block actions %}{% endblock %}
{% block detail_content %}
<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>
<br /><br /><br />
{% if object_list %}
@ -20,7 +20,7 @@
</thead>
{% for obj in object_list %}
<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.ano}}</td>
<td>{{obj.data}}</td>

6
templates/norma/normajuridica_detail.html

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

4
templates/norma/normajuridica_list.html

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

2
templates/painel/index.html

@ -168,7 +168,7 @@
</head>
<body>
<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>
<span id="sessao_plenaria"></span><br/><br/>
<span id="sessao_plenaria_data"></span><br/><br/>

2
templates/painel/mensagem.html

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

2
templates/painel/parlamentares.html

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

2
templates/painel/votacao.html

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

2
templates/parlamentares/parlamentares_dependentes.html

@ -19,7 +19,7 @@
</thead>
{% for d in dependentes %}
<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.data_nascimento|default_if_none:""}}</td>
</tr>

2
templates/parlamentares/parlamentares_detail.html

@ -3,7 +3,7 @@
{% block actions %}
<div class="actions btn-group pull-right" role="group">
{% 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 %}
</div>
{% endblock actions %}

2
templates/parlamentares/parlamentares_filiacao.html

@ -19,7 +19,7 @@
</thead>
{% for f in filiacoes %}
<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_desfiliacao|default_if_none:""}}</td>
</tr>

2
templates/parlamentares/parlamentares_list.html

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

2
templates/parlamentares/parlamentares_mandato.html

@ -22,7 +22,7 @@
</thead>
{% for m in mandatos %}
<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.data_fim_mandato|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 sections_nav %}
<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 '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:detail_doc_adm' pk %}" class="btn btn-default">{% trans 'Inicio' %}</a>
<a href="{% url 'protocoloadm:doc_ace_adm' pk %}" class="btn btn-default">{% trans 'Documento Acessório' %}</a>
<a href="{% url 'protocoloadm:tramitacao_adm' pk %}" class="btn btn-default">{% trans 'Tramitação' %}</a>
</div>
{% endblock sections_nav %}

2
templates/protocoloadm/documento_acessorio_administrativo.html

@ -26,7 +26,7 @@
{% for d in doc_ace %}
<tr>
<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.data|date:"d/m/Y"}}</td>
<td>{{d.autor}}</td>

2
templates/protocoloadm/pesquisa_doc_adm.html

@ -12,7 +12,7 @@
{% for d in documentos %}
<tr>
<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 />
<b>Interessado:</b> {{ d.interessado }}
</td>

8
templates/protocoloadm/proposicoes_detail.html

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

2
templates/protocoloadm/proposicoes_incorporadas.html

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

2
templates/protocoloadm/proposicoes_naoincorporadas.html

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

2
templates/protocoloadm/proposicoes_naorecebidas.html

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

4
templates/protocoloadm/protocolo_list.html

@ -12,11 +12,11 @@
<tr>
<td>
<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 }}
</a>
&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">
</a></br>
<strong>Assunto:</strong> {{ p.assunto_ementa }}</br>

4
templates/protocoloadm/protocolo_mostrar.html

@ -16,8 +16,8 @@
<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;
<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>
{% endblock detail_content %}

8
templates/protocoloadm/protocoloadm_detail.html

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

6
templates/protocoloadm/tramitacao.html

@ -22,11 +22,11 @@
</tr>
{% for t in tramitacoes %}
<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_destino}}</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>
{% endfor %}
@ -35,6 +35,6 @@
<strong>Nenhuma tramitação cadastrada para este documento.</strong>
{% endif %}
</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>
{% endblock detail_content %}

20
templates/sessao/expediente_ordemdia_list.html

@ -30,7 +30,7 @@ Matérias do Expediente
{% for m in materias_ordem %}
<tr>
<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;
</br>
<strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}}
@ -41,24 +41,24 @@ Matérias do Expediente
<td>
{% if m.resultado %}
{% 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 %}
<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%}
<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 %}
{% else %}
Matéria não votada <br />
{% if m.votacao_aberta %}
{% 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 %}
<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%}
<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 %}
{% else %}
<form method="POST" action="{% url 'sessaoplenaria:expedienteordemdia_list' object.pk %}">
<form method="POST" action="{% url 'sessao:expedienteordemdia_list' object.pk %}">
{% csrf_token %}
<input type="hidden" name="error_message" id="error_message" />
<input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}">
@ -71,10 +71,10 @@ Matérias do Expediente
{% endfor %}
</table>
</br>
<form method="POST" action="{% url 'sessaoplenaria:expedienteordemdia_list' object.pk %}">
<form method="POST" action="{% url 'sessao:expedienteordemdia_list' object.pk %}">
{% csrf_token %}
<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;
<input type="submit" id="expediente_reorder" name="expediente_reorder" value="Reordenar Matérias do Expediente" class="btn btn-primary" />
&nbsp;&nbsp;&nbsp;

4
templates/sessao/explicacao.html

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

20
templates/sessao/materia_ordemdia_list.html

@ -30,7 +30,7 @@ Matérias da Ordem do Dia
{% for m in materias_ordem %}
<tr>
<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;
</br>
<strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}}
@ -41,24 +41,24 @@ Matérias da Ordem do Dia
<td>
{% if m.resultado %}
{% 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 %}
<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%}
<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 %}
{% else %}
Matéria não votada <br />
{% if m.votacao_aberta %}
{% 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 %}
<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%}
<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 %}
{% else %}
<form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">
<form method="POST" action="{% url 'sessao:materiaordemdia_list' object.pk %}">
{% csrf_token %}
<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">
@ -71,10 +71,10 @@ Matérias da Ordem do Dia
</table>
</br>
<form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">
<form method="POST" action="{% url 'sessao:materiaordemdia_list' object.pk %}">
{% csrf_token %}
<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;
<input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="btn btn-primary" />
&nbsp;&nbsp;&nbsp;

4
templates/sessao/orador_expediente.html

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

12
templates/sessao/painel.html

@ -6,12 +6,12 @@
<audio type="hidden" id="audio" src="{% static 'audio/ring.mp3' %}"> </audio>
<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_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_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_controlador' %}" class="btn btn-primary btn-sm active">Controlador Painel</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: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_mensagem' %}" class="btn btn-primary btn-sm active">Iniciar painel mensagem</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: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_controlador' %}" class="btn btn-primary btn-sm active">Controlador Painel</a></div>
</div>
<br />
<h1>Operação do Painel Eletrônico</h1>

2
templates/sessao/pauta/expediente.html

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

2
templates/sessao/pauta/ordem.html

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

6
templates/sessao/pauta_sessao_detail.html

@ -4,7 +4,7 @@
{% block actions %}{% endblock %}
{% 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>
<legend>Identificação Básica</legend>
<table class="table table-striped table-bordered">
@ -45,7 +45,7 @@
{% for m in materia_expediente %}
<tr>
<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 />
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }}
</td>
@ -87,7 +87,7 @@
{% for m in materias_ordem %}
<tr>
<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 />
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }}
</td>

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

Loading…
Cancel
Save