diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index 506461f75..dfe48f6a0 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -97,11 +97,6 @@ class NormaJuridicaForm(ModelForm): choices=ANO_CHOICES, widget=forms.Select(attrs={'autocomplete': 'off'}) ) - # anexos_adicionados = forms.ListField( - # label='Anexos adcionados', - # required=False, - # widget=forms.TextInput(attrs={'readonly': 'readonly'}) - # ) anexo_arquivo = forms.FileField( label='Anexo Norma Jurídica', required=False @@ -186,7 +181,6 @@ class NormaJuridicaForm(ModelForm): norma.timestamp = timezone.now() norma.materia = self.cleaned_data['materia'] norma = super(NormaJuridicaForm, self).save(commit=True) - if self.cleaned_data['anexo_arquivo']: anexo = AnexoNormaJuridica() anexo.anexo_arquivo = self.cleaned_data['anexo_arquivo'] @@ -196,6 +190,15 @@ class NormaJuridicaForm(ModelForm): return norma +class AnexoNormaJuridicaForm(ModelForm): + # class Meta: + # model = AnexoNormaJuridica + # fields = ['norma', 'anexo_arquivo'] + + def __init__(self, *args, **kwargs): + super(AnexoNormaJuridicaForm, self).__init__(*args, **kwargs) + + class NormaRelacionadaForm(ModelForm): diff --git a/sapl/norma/urls.py b/sapl/norma/urls.py index 93081c4fc..21f292476 100644 --- a/sapl/norma/urls.py +++ b/sapl/norma/urls.py @@ -1,6 +1,6 @@ from django.conf.urls import include, url -from sapl.norma.views import (AssuntoNormaCrud, NormaCrud, NormaPesquisaView, +from sapl.norma.views import (AnexoNormaJuridicaCrud,AssuntoNormaCrud, NormaCrud, NormaPesquisaView, NormaRelacionadaCrud, NormaTaView, TipoNormaCrud, TipoVinculoNormaJuridicaCrud, recuperar_norma, recuperar_numero_norma) @@ -12,7 +12,8 @@ app_name = AppConfig.name urlpatterns = [ url(r'^norma/', include(NormaCrud.get_urls() + - NormaRelacionadaCrud.get_urls())), + NormaRelacionadaCrud.get_urls() + + AnexoNormaJuridicaCrud.get_urls())), # Integração com Compilação url(r'^norma/(?P[0-9]+)/ta$', NormaTaView.as_view(), name='norma_ta'), diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 71761e4f1..7b1e2cbdc 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -19,7 +19,7 @@ from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, make_pagination) from sapl.utils import show_results_filter_set -from .forms import (NormaFilterSet, NormaJuridicaForm, +from .forms import (AnexoNormaJuridicaForm, NormaFilterSet, NormaJuridicaForm, NormaPesquisaSimplesForm, NormaRelacionadaForm) from .models import (AnexoNormaJuridica, AssuntoNorma, NormaJuridica, NormaRelacionada, TipoNormaJuridica, TipoVinculoNormaJuridica) @@ -98,6 +98,32 @@ class NormaPesquisaView(FilterView): return context +class AnexoNormaJuridicaCrud(MasterDetailCrud): + model = AnexoNormaJuridica + parent_field = 'norma' + help_topic = 'anexo_normajuridica' + public = [RP_LIST, RP_DETAIL] + + class BaseMixin(MasterDetailCrud.BaseMixin): + list_field_names = ['anexo_arquivo'] + + class CreateView(MasterDetailCrud.CreateView): + form_class = AnexoNormaJuridicaForm + + class UpdateView(MasterDetailCrud.UpdateView): + form_class = AnexoNormaJuridicaForm + + def get_initial(self): + initial = super(UpdateView, self).get_initial() + initial['norma'] = self.object.norma + initial['anexo_arquivo'] = self.object.anexo_arquivo + initial['ano'] = self.object.ano + return initial + + class DetailView(MasterDetailCrud.DetailView): + + layout_key = 'AnexoNormaJuridicaDetail' + class NormaTaView(IntegracaoTaView): model = NormaJuridica diff --git a/sapl/templates/norma/layouts.yaml b/sapl/templates/norma/layouts.yaml index a2bf0fbbb..7cd9eb0e7 100644 --- a/sapl/templates/norma/layouts.yaml +++ b/sapl/templates/norma/layouts.yaml @@ -24,6 +24,11 @@ NormaJuridica: - observacao - assuntos +AnexoNormaJuridica: + {% trans 'Adicionar Anexos à Norma Jurídica' %} + - anexo + - norma + NormaJuridicaCreate: {% trans 'Identificação Básica' %}: - tipo ano numero diff --git a/sapl/templates/norma/subnav.yaml b/sapl/templates/norma/subnav.yaml index a89326fd7..9358787ff 100644 --- a/sapl/templates/norma/subnav.yaml +++ b/sapl/templates/norma/subnav.yaml @@ -5,6 +5,8 @@ - title: {% trans 'Alterações em Outras Normas' %} url: normarelacionada_list check_permission: norma.list_normarelacionada +- title: {% trans 'Anexos da Norma' %} + url: anexonormajuridica_list # Opção adicionada para chamar o TextoArticulado da norma. # para integração foram necessárias apenas criar a url norma_ta em urls.py