Repository: interlegis/sapl

Issue:
Usar crud em matéria



Discussion:

Resolving patch:
diff --git a/materia/forms.py b/materia/forms.py
--- a/materia/forms.py
+++ b/materia/forms.py
@@ -401,142 +401,6 @@ def __init__(self, excluir=False, *args, **kwargs):
             *args, **kwargs)
 
 
-class FormularioSimplificadoForm(ModelForm):
-
-    class Meta:
-        model = MateriaLegislativa
-        fields = ['tipo',
-                  'numero',
-                  'ano',
-                  'data_apresentacao',
-                  'numero_protocolo',
-                  'regime_tramitacao',
-                  'em_tramitacao',
-                  'ementa',
-                  'texto_original']
-        exclude = ['anexadas']
-        widgets = {
-            'data_apresentacao': forms.DateInput(attrs={'class': 'dateinput'}),
-        }
-
-    def clean_texto_original(self):
-        texto_original = self.cleaned_data.get('texto_original', False)
-        if texto_original:
-            if texto_original.size > MAX_DOC_UPLOAD_SIZE:
-                raise ValidationError("Arquivo muito grande. ( > 5mb )")
-            return texto_original
-        else:
-            raise ValidationError("Não foi possível salvar o arquivo.")
-
-    def __init__(self, *args, **kwargs):
-
-        row1 = crispy_layout_mixin.to_row(
-            [('tipo', 4),
-             ('numero', 4),
-             ('ano', 4)])
-
-        row2 = crispy_layout_mixin.to_row(
-            [('data_apresentacao', 4),
-             ('numero_protocolo', 4),
-             ('regime_tramitacao', 4)])
-
-        row3 = crispy_layout_mixin.to_row(
-            [('texto_original', 9),
-             ('em_tramitacao', 3)])
-
-        row4 = crispy_layout_mixin.to_row(
-            [('ementa', 12)])
-
-        self.helper = FormHelper()
-        self.helper.layout = Layout(
-            Fieldset(
-                _('Formulário Simplificado'),
-                Fieldset(
-                    _('Identificação Básica'),
-                    row1, row2, row3, row4
-                ),
-                form_actions()
-            )
-        )
-        super(FormularioSimplificadoForm, self).__init__(*args, **kwargs)
-
-
-class FormularioCadastroForm(ModelForm):
-
-    class Meta:
-        model = MateriaLegislativa
-        fields = ['tipo',
-                  'numero',
-                  'ano',
-                  'data_apresentacao',
-                  'numero_protocolo',
-                  'tipo_apresentacao',
-                  'texto_original',
-                  'apelido',
-                  'dias_prazo',
-                  'polemica',
-                  'objeto',
-                  'regime_tramitacao',
-                  'em_tramitacao',
-                  'data_fim_prazo',
-                  'data_publicacao',
-                  'complementar',
-                  'tipo_origem_externa',
-                  'numero_origem_externa',
-                  'ano_origem_externa',
-                  'local_origem_externa',
-                  'data_origem_externa',
-                  'ementa',
-                  'indexacao',
-                  'observacao']
-
-    def __init__(self, *args, **kwargs):
-        self.helper = FormHelper()
-        self.helper.layout = Layout(
-            Fieldset(
-                _('Formulário de Cadastro'),
-                Fieldset(
-                    _('Identificação Básica'),
-                    'tipo',
-                    'numero',
-                    'ano',
-                    'data_apresentacao',
-                    'numero_protocolo',
-                    'tipo_apresentacao',
-                    'texto_original'
-                ),
-                Fieldset(
-                    _('Outras Informações'),
-                    'apelido',
-                    'dias_prazo',
-                    'polemica',
-                    'objeto',
-                    'regime_tramitacao',
-                    'em_tramitacao',
-                    'data_fim_prazo',
-                    'data_publicacao',
-                    'complementar'
-                ),
-                Fieldset(
-                    _('Origem Externa'),
-                    'tipo_origem_externa',
-                    'numero_origem_externa',
-                    'ano_origem_externa',
-                    'local_origem_externa',
-                    'data_origem_externa'
-                ),
-                Fieldset(
-                    _('Dados Textuais'),
-                    'ementa',
-                    'indexacao',
-                    'observacao'
-                ),
-                form_actions()
-            )
-        )
-        super(FormularioCadastroForm, self).__init__(*args, **kwargs)
-
-
 class AutoriaForm(ModelForm):
     autor = forms.ModelChoiceField(
         label=_('Autor'),
diff --git a/materia/urls.py b/materia/urls.py
--- a/materia/urls.py
+++ b/materia/urls.py
@@ -6,7 +6,6 @@
                            AutoriaEditView, AutoriaView,
                            DespachoInicialEditView, DespachoInicialView,
                            DocumentoAcessorioEditView, DocumentoAcessorioView,
-                           FormularioCadastroView, FormularioSimplificadoView,
                            LegislacaoCitadaEditView, LegislacaoCitadaView,
                            MateriaAnexadaEditView, MateriaAnexadaView,
                            MateriaLegislativaCrud,
@@ -54,12 +53,6 @@
     url(r'^sistema/materia/status-tramitacao/',
         include(StatusTramitacaoCrud.get_urls())),
     url(r'^sistema/materia/orgao/', include(OrgaoCrud.get_urls())),
-    url(r'^materia/formulario-simplificado',
-        FormularioSimplificadoView.as_view(),
-        name='formulario_simplificado'),
-    url(r'^materia/formulario-cadastro',
-        FormularioCadastroView.as_view(),
-        name='formulario_cadastro'),
     url(r'^materia/(?P<pk>\d+)/materia-anexada$',
         MateriaAnexadaView.as_view(), name='materia_anexada'),
     url(r'^materia/(?P<pk>\d+)/materia-anexada/(?P<id>\d+)/edit',
diff --git a/materia/views.py b/materia/views.py
--- a/materia/views.py
+++ b/materia/views.py
@@ -13,6 +13,7 @@
 from django.utils.translation import ugettext_lazy as _
 from django.views.generic import CreateView, FormView, ListView, TemplateView
 
+import crud.base
 from base.models import CasaLegislativa
 from comissoes.models import Comissao, Composicao
 from compilacao.views import IntegracaoTaView
@@ -23,7 +24,6 @@
 
 from .forms import (AcompanhamentoMateriaForm, AutoriaForm,
                     DespachoInicialForm, DocumentoAcessorioForm,
-                    FormularioCadastroForm, FormularioSimplificadoForm,
                     LegislacaoCitadaForm, MateriaAnexadaForm,
                     MateriaLegislativaPesquisaForm, NumeracaoForm,
                     ProposicaoForm, RelatoriaForm, TramitacaoForm)
@@ -40,7 +40,6 @@
 RegimeTramitacaoCrud = Crud.build(RegimeTramitacao, 'regime_tramitacao')
 TipoDocumentoCrud = Crud.build(TipoDocumento, 'tipo_documento')
 TipoFimRelatoriaCrud = Crud.build(TipoFimRelatoria, 'fim_relatoria')
-MateriaLegislativaCrud = Crud.build(MateriaLegislativa, '')
 AnexadaCrud = Crud.build(Anexada, '')
 TipoAutorCrud = Crud.build(TipoAutor, 'tipo_autor')
 AutorCrud = Crud.build(Autor, 'autor')
@@ -56,16 +55,12 @@
 TramitacaoCrud = Crud.build(Tramitacao, '')
 
 
-class FormularioSimplificadoView(CreateView):
-    template_name = "materia/formulario_simplificado.html"
-    form_class = FormularioSimplificadoForm
-    success_url = reverse_lazy('materia:materialegislativa_list')
-
+class MateriaLegislativaCrud(Crud):
+    model = MateriaLegislativa
+    help_path = 'materia_legislativa'
 
-class FormularioCadastroView(CreateView):
-    template_name = "materia/formulario_cadastro.html"
-    form_class = FormularioCadastroForm
-    success_url = reverse_lazy('materia:formulario_cadastro')
+    class BaseMixin(crud.base.BaseMixin):
+        list_field_names = ['tipo', 'numero', 'ano', 'data_apresentacao']
 
 
 class MateriaAnexadaView(FormView):
@@ -1408,7 +1403,7 @@ class ProposicaoTaView(IntegracaoTaView):
     model_type_foreignkey = TipoProposicao
 
 
-class AcompanhamentoMateriaView(MateriaLegislativaCrud.CrudDetailView):
+class AcompanhamentoMateriaView(CreateView):
     template_name = "materia/acompanhamento_materia.html"
 
     def get_random_chars(self):


Test patch: