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.

71 lines
2.1 KiB

import os
from functools import lru_cache
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormMixin
from vanilla import GenericView
10 years ago
from .forms import CasaLegislativaTabelaAuxForm
from .models import CasaLegislativa
10 years ago
@lru_cache(maxsize=1)
def get_casalegislativa():
return CasaLegislativa.objects.first()
10 years ago
class HelpView(TemplateView):
10 years ago
# XXX treat non existing template as a 404!!!!
10 years ago
def get_template_names(self):
return ['ajuda/%s.html' % self.kwargs['topic']]
class CasaLegislativaTableAuxView(FormMixin, GenericView):
template_name = "base/casa_leg_table_aux.html"
def get(self, request, *args, **kwargs):
try:
casa = CasaLegislativa.objects.first()
except ObjectDoesNotExist:
form = CasaLegislativaTabelaAuxForm()
else:
form = CasaLegislativaTabelaAuxForm(instance=casa)
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
form = CasaLegislativaTabelaAuxForm(request.POST, request.FILES)
if form.is_valid():
casa = CasaLegislativa.objects.first()
9 years ago
if casa:
if ("remover" in request.POST or
(form.cleaned_data['logotipo'] and casa.logotipo)):
try:
os.unlink(casa.logotipo.path)
except OSError:
pass # Should log this error!!!!!
casa.logotipo = None
casa_save = CasaLegislativaTabelaAuxForm(
request.POST,
request.FILES,
instance=casa
).save(commit=False)
casa_save.save()
9 years ago
else:
form.save()
# Invalida cache de consulta
get_casalegislativa.cache_clear()
return self.form_valid(form)
else:
return self.render_to_response({'form': form})
def get_success_url(self):
return reverse('casa_legislativa')