mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.8 KiB
77 lines
2.8 KiB
from datetime import datetime
|
|
from re import sub
|
|
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.utils.html import strip_tags
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.views.generic.edit import FormMixin
|
|
from vanilla.views import GenericView
|
|
|
|
from compilacao.views import IntegracaoTaView
|
|
from crud import Crud
|
|
from materia.models import MateriaLegislativa, TipoMateriaLegislativa
|
|
|
|
from .forms import NormaJuridicaForm
|
|
from .models import (AssuntoNorma, LegislacaoCitada, NormaJuridica,
|
|
TipoNormaJuridica)
|
|
|
|
assunto_norma_crud = Crud(AssuntoNorma, 'assunto_norma_juridica')
|
|
tipo_norma_crud = Crud(TipoNormaJuridica, 'tipo_norma_juridica')
|
|
norma_crud = Crud(NormaJuridica, '')
|
|
norma_temporario_crud = Crud(NormaJuridica, 'normajuridica')
|
|
legislacao_citada_crud = Crud(LegislacaoCitada, '')
|
|
|
|
|
|
class NormaIncluirView(FormMixin, GenericView):
|
|
template_name = "norma/normajuridica_incluir.html"
|
|
|
|
def get_success_url(self):
|
|
return '/norma/'
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
form = NormaJuridicaForm()
|
|
return self.render_to_response({'form': form})
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
form = NormaJuridicaForm(request.POST or None)
|
|
if form.is_valid():
|
|
norma = form.save(commit=False)
|
|
|
|
if form.cleaned_data['tipo_materia']:
|
|
tipo = TipoMateriaLegislativa.objects.get(
|
|
id=form.cleaned_data['tipo_materia'])
|
|
try:
|
|
materia = MateriaLegislativa.objects.get(
|
|
tipo=tipo,
|
|
numero=form.cleaned_data['numero'],
|
|
ano=form.cleaned_data['ano'])
|
|
except ObjectDoesNotExist:
|
|
return self.render_to_response(
|
|
{'form': form,
|
|
'error': _('Matéria adicionada não existe!')})
|
|
else:
|
|
norma.materia = materia
|
|
|
|
if form.cleaned_data['indexacao']:
|
|
norma.indexacao = sub(
|
|
' ', ' ', strip_tags(form.cleaned_data['indexacao']))
|
|
|
|
if form.cleaned_data['observacao']:
|
|
norma.observacao = sub(
|
|
' ', ' ', strip_tags(form.cleaned_data['observacao']))
|
|
|
|
if 'texto_integral' in request.FILES:
|
|
norma.texto_integral = request.FILES['texto_integral']
|
|
|
|
norma.ementa = sub(
|
|
' ', ' ', strip_tags(form.cleaned_data['ementa']))
|
|
norma.timestamp = datetime.now()
|
|
norma.save()
|
|
return self.form_valid(form)
|
|
else:
|
|
return self.form_invalid(form)
|
|
|
|
|
|
class NormaTaView(IntegracaoTaView):
|
|
model = NormaJuridica
|
|
model_type_foreignkey = TipoNormaJuridica
|
|
|