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.
107 lines
3.2 KiB
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', '/'))
|
|
|