Sistema de Apoio ao Processo Legislativo
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.

78 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