diff --git a/materia/forms.py b/materia/forms.py
index 81dc4a778..889af33a2 100644
--- a/materia/forms.py
+++ b/materia/forms.py
@@ -56,40 +56,6 @@ class ProposicaoForm(ModelForm):
model = Proposicao
fields = ['tipo', 'data_envio', 'descricao', 'texto_original']
- def __init__(self, excluir=False, *args, **kwargs):
- more = []
- if excluir:
- more = [Submit('Excluir', 'Excluir')]
-
- row1 = crispy_layout_mixin.to_row(
- [('tipo', 8), ('data_envio', 4)])
- row2 = crispy_layout_mixin.to_row(
- [('descricao', 12)])
- row3 = crispy_layout_mixin.to_row(
- [('tipo_materia', 4), ('numero_materia', 4), ('ano_materia', 4)])
- row4 = crispy_layout_mixin.to_row(
- [('texto_original', 12)])
-
- self.helper = FormHelper()
- self.helper.layout = Layout(
- Fieldset(_('Incluir Proposição'),
- row1, row2, row3, row4,
- HTML("""
-
-
-
-
- """, ),
- form_actions(more=more))
- )
- super(ProposicaoForm, self).__init__(
- *args, **kwargs)
-
class AcompanhamentoMateriaForm(ModelForm):
diff --git a/materia/layouts.yaml b/materia/layouts.yaml
index 272cb006e..dee64a9d5 100644
--- a/materia/layouts.yaml
+++ b/materia/layouts.yaml
@@ -89,10 +89,12 @@ TipoProposicao:
Proposicao:
Proposição:
- - tipo dat_criacao_FIXME data_recebimento
- - descricao_FIXME
- - tip_id_basica_FIXME num_ident_basica_FIXME ano_ident_basica_FIXME
- - nom_arquivo_FIXME modelo_FIXME
+ - tipo data_envio
+ - descricao
+ Materia:
+ - tipo_materia numero_materia ano_materia
+ Texto:
+ - texto_original
StatusTramitacao:
Status Tramitação:
diff --git a/materia/urls.py b/materia/urls.py
index 332623881..31ee3db9c 100644
--- a/materia/urls.py
+++ b/materia/urls.py
@@ -8,8 +8,7 @@ from materia.views import (AcompanhamentoConfirmarView,
MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoCrud, OrgaoCrud, OrigemCrud,
- ProposicaoEditView, ProposicaoListView,
- ProposicaoTaView, ProposicaoView,
+ ProposicaoCrud, ProposicaoTaView,
RegimeTramitacaoCrud, RelatoriaCrud,
StatusTramitacaoCrud, TipoAutorCrud,
TipoDocumentoCrud, TipoFimRelatoriaCrud,
@@ -29,7 +28,8 @@ urlpatterns = [
LegislacaoCitadaCrud.get_urls() +
TramitacaoCrud.get_urls() +
RelatoriaCrud.get_urls() +
- DocumentoAcessorioCrud.get_urls())),
+ DocumentoAcessorioCrud.get_urls() +
+ ProposicaoCrud.get_urls())),
# Integração com Compilação
url(r'^materia/(?P
[0-9]+)/ta$',
@@ -55,12 +55,6 @@ urlpatterns = [
url(r'^sistema/materia/status-tramitacao/',
include(StatusTramitacaoCrud.get_urls())),
url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())),
- url(r'^materia/proposicao$',
- ProposicaoView.as_view(), name='adicionar_proposicao'),
- url(r'^materia/proposicao_list$',
- ProposicaoListView.as_view(), name='list_proposicao'),
- url(r'^materia/proposicao/(?P[0-9]+)/edit$',
- ProposicaoEditView.as_view(), name='editar_proposicao'),
url(r'^materia/pesquisar-materia$',
MateriaLegislativaPesquisaView.as_view(), name='pesquisar_materia'),
url(r'^materia/(?P\d+)/acompanhar-materia/$',
diff --git a/materia/views.py b/materia/views.py
index 6a3606ef1..8166ff407 100644
--- a/materia/views.py
+++ b/materia/views.py
@@ -54,11 +54,22 @@ TipoAutorCrud = Crud.build(TipoAutor, 'tipo_autor')
AutorCrud = Crud.build(Autor, 'autor')
OrgaoCrud = Crud.build(Orgao, 'orgao')
TipoProposicaoCrud = Crud.build(TipoProposicao, 'tipo_proposicao')
-ProposicaoCrud = Crud.build(Proposicao, '')
StatusTramitacaoCrud = Crud.build(StatusTramitacao, 'status_tramitacao')
UnidadeTramitacaoCrud = Crud.build(UnidadeTramitacao, 'unidade_tramitacao')
-RelatoriaCrud = MasterDetailCrud.build(Relatoria, 'materia', '')
+
+class ProposicaoCrud(Crud):
+ model = Proposicao
+ help_path = ''
+
+ class BaseMixin(crud.base.CrudBaseMixin):
+ list_field_names = ['data_envio', 'tipo', 'descricao']
+
+ class CreateView(crud.base.CrudCreateView):
+ form_class = ProposicaoForm
+
+ class UpdateView(crud.base.CrudUpdateView):
+ form_class = ProposicaoForm
class RelatoriaCrud(MasterDetailCrud):
@@ -624,27 +635,6 @@ def do_envia_email_tramitacao(request, materia):
return None
-class ProposicaoListView(ListView):
- template_name = "materia/proposicao/proposicao_list.html"
- paginate_by = 10
- model = Proposicao
-
- def get_queryset(self):
- return Proposicao.objects.all().order_by('data_envio',
- 'tipo',
- 'descricao')
-
- def get_context_data(self, **kwargs):
- context = super(ProposicaoListView, self).get_context_data(**kwargs)
-
- paginator = context['paginator']
- page_obj = context['page_obj']
-
- context['page_range'] = make_pagination(
- page_obj.number, paginator.num_pages)
- return context
-
-
class MateriaLegislativaPesquisaView(FilterView):
model = MateriaLegislativa
filterset_class = MateriaLegislativaFilterSet
@@ -719,99 +709,6 @@ class MateriaLegislativaPesquisaView(FilterView):
return self.render_to_response(context)
-class ProposicaoView(CreateView):
- template_name = "materia/proposicao/proposicao.html"
- form_class = ProposicaoForm
-
- def get_success_url(self):
- return reverse('materia:list_proposicao')
-
- def get(self, request, *args, **kwargs):
- return self.render_to_response({'form': self.get_form()})
-
- def post(self, request, *args, **kwargs):
- form = self.get_form()
-
- if form.is_valid():
- proposicao = form.save(commit=False)
- tipo = TipoProposicao.objects.get(id=form.data['tipo'])
- if tipo.descricao == 'Parecer':
- try:
- materia = MateriaLegislativa.objects.get(
- tipo_id=int(form.data['tipo_materia']),
- ano=int(form.data['ano_materia']),
- numero=int(form.data['numero_materia']))
- except ObjectDoesNotExist:
- msg = _('Matéria adicionada não existe!')
- messages.add_message(request, messages.INFO, msg)
- return self.render_to_response({'form': form})
- else:
- proposicao.autor = materia.autoria_set.first().autor
- proposicao.materia = materia
- proposicao.save()
- return redirect(self.get_success_url())
- else:
- return self.render_to_response({'form': form})
-
-
-class ProposicaoEditView(CreateView):
- template_name = "materia/proposicao/proposicao.html"
- form_class = ProposicaoForm
-
- def get_success_url(self):
- return reverse('materia:list_proposicao')
-
- def get(self, request, *args, **kwargs):
- proposicao = Proposicao.objects.get(id=kwargs['pk'])
- return self.render_to_response({'form': ProposicaoForm(
- excluir=True,
- instance=proposicao)})
-
- def post(self, request, *args, **kwargs):
- form = self.get_form()
- proposicao = Proposicao.objects.get(id=kwargs['pk'])
- if form.is_valid():
- if 'Excluir' in request.POST:
- if proposicao.data_envio:
- proposicao.data_envio = None
- proposicao.save()
- else:
- proposicao.delete()
- if 'salvar' or "remover-foto" in request.POST:
- if 'texto_original' in request.FILES:
- # if os.unlink(proposicao.texto_original.path):
- # proposicao.texto_original = None
- proposicao.texto_original = request.FILES['texto_original']
- tipo = TipoProposicao.objects.get(id=form.data['tipo'])
- proposicao.tipo = tipo
- proposicao.descricao = form.data['descricao']
- if tipo.descricao == 'Parecer':
- try:
- materia = MateriaLegislativa.objects.get(
- tipo_id=int(form.data['tipo_materia']),
- ano=int(form.data['ano_materia']),
- numero=int(form.data['numero_materia']))
- except ObjectDoesNotExist:
- msg = _('Matéria adicionada não existe!')
- messages.add_message(request, messages.INFO, msg)
- return self.render_to_response({'form': form})
- else:
- proposicao.autor = materia.autoria_set.first().autor
- proposicao.materia = materia
- if not proposicao.data_envio:
- proposicao.data_envio = datetime.now()
- if "remover-texto" in request.POST:
- try:
- os.unlink(proposicao.texto_original.path)
- except OSError:
- pass # Should log this error!!!!!
- proposicao.texto_original = None
- proposicao.save()
- return redirect(self.get_success_url())
- else:
- return self.render_to_response({'form': form})
-
-
class MateriaTaView(IntegracaoTaView):
model = MateriaLegislativa
model_type_foreignkey = TipoMateriaLegislativa
diff --git a/templates/base.html b/templates/base.html
index a2eacf6dc..4822ebc2d 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -67,7 +67,7 @@
Atividade Legislativa