source: sapic/organizaciones/views.py @ 7ce4011

erwinexplicacion_situacionalgestion_usuariostaller_django
Last change on this file since 7ce4011 was 7ce4011, checked in by lhernandez <lhernandez@…>, 7 años ago

Se adapto la class ListOrgView? para activar o inactivar una organizacion social

  • Propiedad mode establecida a 100644
File size: 4.9 KB
Línea 
1# -*- coding: utf-8 -*-
2"""!
3Vista que controla los procesos de las organizaciones sociales
4
5@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
6@copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
7@date 27-07-2017
8@version 1.0.0
9"""
10
11from django.conf import settings
12from django.contrib import messages
13from django.contrib.auth.mixins import (
14    LoginRequiredMixin
15)
16from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION
17from django.contrib.auth.models import (
18    Group, User
19)
20from django.core.urlresolvers import (
21    reverse_lazy, reverse
22)
23from django.shortcuts import (
24    render, redirect, get_object_or_404
25)
26from django.views.generic.base import RedirectView
27from django.views.generic import (
28    TemplateView
29)
30from django.views.generic.edit import (
31    FormView, UpdateView
32)
33
34from .forms import (
35    FormularioRegisterOrgSocial, FormsetVocero
36)
37from multi_form_view import MultiModelFormView
38
39from .models import (
40    OrganizacionSocial, Vocero
41)
42
43from utils.views import LoginRequeridoPerAuth
44
45class RegisterOrgView(LoginRequeridoPerAuth, MultiModelFormView):
46    """!
47    Muestra el formulario de registro de la organizacion social
48
49    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
50    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
51    @date 27-07-2017
52    @version 1.0.0
53    """
54    template_name = "organizacion.register.html"
55    form_classes = {
56      'organizacion_social': FormularioRegisterOrgSocial,
57      'voceros': FormsetVocero,
58    }
59    success_url = reverse_lazy('utils:inicio')
60    record_id = None
61    group_required = [u"Administradores"]
62
63    def get_objects(self):
64        self.record_id = self.kwargs.get('record_id', None)
65        try:
66            record = Vocero.objects.select_related().get(fk_org_social=self.record_id)
67        except Vocero.DoesNotExist:
68            record = None
69        return {
70          'voceros': record,
71          'organizacion_social': record.fk_org_social if record else None,
72        }
73
74    def forms_valid(self, forms, **kwargs):
75        """
76        Valida el formulario de registro del perfil de usuario
77        @return: Dirige con un mensaje de exito a el home
78        """
79        nueva_organizacion = forms['organizacion_social'].save()
80        nuevos_voceros = self.form_classes['voceros'](self.request.POST, instance=nueva_organizacion)
81        if nuevos_voceros.is_valid():
82            nuevos_voceros.save()
83        messages.success(self.request, "El Usuario %s registro con exito la \
84                                        Organizacion Social %s"
85                                         % (str(self.request.user), str(nueva_organizacion.nombre)))
86        return redirect(self.success_url)
87
88    def forms_invalid(self, forms, **kwargs):
89        messages.error(self.request, "%s" % (str(forms['organizacion_social'].errors.as_data())))
90
91        return super(RegisterOrgView, self).forms_invalid(forms)
92
93
94class ListOrgView(LoginRequeridoPerAuth, TemplateView):
95    """!
96    Listar usuarios de la plataforma
97
98    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
99    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
100    @date 30-05-2017
101    @version 1.0.0
102    """
103    template_name = "organizaciones.list.html"
104    model = OrganizacionSocial
105    success_url = reverse_lazy('organizaciones:listar_organizacion')
106    group_required = [u"Administradores"]
107
108    def __init__(self):
109        super(ListOrgView, self).__init__()
110
111    def post(self, *args, **kwargs):
112        '''
113        Cambia el estado activo a el usuario
114        @return: Dirige a la tabla que muestra los usuarios de la apliacion
115        '''
116        accion = self.request.POST
117        activar = accion.get('activar', None)
118        inactivar = accion.get('inactivar', None)
119        estado = False
120
121        if activar is not None:
122            org = activar
123            estado = True
124        elif inactivar is not None:
125            org = inactivar
126            estado = False
127        else:
128            messages.error(self.request, "Esta intentando hacer \
129                                          una accion incorrecta")
130        try:
131            org_act = self.model.objects.get(pk=org)
132            org_act.activa = estado
133            org_act.save()
134            if estado:
135                messages.success(self.request, "Se ha activado \
136                                                la organizacion: %s\
137                                                " % (str(org_act)))
138            else:
139                messages.warning(self.request, "Se ha inactivado \
140                                                la organizacion: %s\
141                                                " % (str(org_act)))
142        except:
143            messages.info(self.request, "La organizacion social no existe")
144        return redirect(self.success_url)
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.