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.
 
 
 
 
 

107 lines
3.2 KiB

import os
from functools import lru_cache
import django.contrib.auth.views
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Hidden, Submit
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.views.generic import FormView
from django.views.generic.base import TemplateView
from .areas import areas_em_pares
from .forms import CasaLegislativaTabelaAuxForm
from .models import CasaLegislativa
@lru_cache(maxsize=1)
def get_casalegislativa():
return CasaLegislativa.objects.first()
class HelpView(TemplateView):
# XXX treat non existing template as a 404!!!!
def get_template_names(self):
return ['ajuda/%s.html' % self.kwargs['topic']]
class CasaLegislativaTableAuxView(FormView):
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()
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
CasaLegislativaTabelaAuxForm(
request.POST,
request.FILES,
instance=casa
).save()
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('base:casa_legislativa')
def index(request):
"""Página Inicial"""
return render(request, 'home.html', {'areas': areas_em_pares})
def login(request):
"""Página de Login"""
helper = FormHelper()
helper.form_id = 'login-form'
helper.form_class = 'form-horizontal'
helper.label_class = 'col-lg-1'
helper.field_class = 'col-lg-3'
helper.form_method = 'post'
login_path = reverse('base:login')
helper.form_action = login_path
next_path = request.REQUEST.get('next', '/')
if next_path == login_path:
next_path = '/'
helper.add_input(Hidden('next', next_path))
helper.add_input(Submit('submit', 'Submit'))
return django.contrib.auth.views.login(request,
extra_context={'helper': helper})
def logout(request):
django.contrib.auth.views.logout(request)
return HttpResponseRedirect(request.GET.get('next', '/'))