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.
		
		
		
		
		
			
		
			
				
					
					
						
							70 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							70 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 | |
| 
 | |
| 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(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() | |
|             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() | |
|             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')
 | |
| 
 |