source: sapic/organizaciones/views.py @ 0948a4e

Last change on this file since 0948a4e was 0948a4e, checked in by ltroconis <ltroconis@…>, 6 años ago

iconos e imágenes

  • Propiedad mode establecida a 100644
File size: 9.5 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 users.models import *
12
13from django.conf import settings
14from django.contrib import messages
15from django.contrib.auth.mixins import (
16    LoginRequiredMixin
17)
18from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION
19from django.contrib.auth.models import (
20    Group, User
21)
22from django.core.urlresolvers import (
23    reverse_lazy, reverse
24)
25from django.shortcuts import (
26    render, redirect, get_object_or_404
27)
28from django.views.generic.base import RedirectView
29from django.views.generic import (
30    TemplateView
31)
32from django.views.generic.edit import (
33    FormView, UpdateView
34)
35
36from .forms import *
37
38#from .forms import (
39#    FormularioRegisterOrgSocial, FormsetVocero
40#)
41from multi_form_view import MultiModelFormView
42
43from .models import (
44    OrganizacionSocial, Vocero
45)
46
47from utils.views import LoginRequeridoPerAuth
48
49class RegisterOrgView(LoginRequeridoPerAuth, MultiModelFormView):
50    """!
51    Muestra el formulario de registro de la organizacion social
52
53    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
54    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
55    @date 27-07-2017
56    @version 1.0.0
57    """
58    template_name = "organizacion.register.html"
59    form_classes = {
60      'organizacion_social': FormularioRegisterOrgSocial,
61      'voceros': FormsetVocero,
62    }
63   
64    success_url = reverse_lazy('organizaciones:registrar_organizacion')
65    record_id = None
66    group_required = [u"Administradores"]
67
68    def get_objects(self):
69        self.record_id = self.kwargs.get('record_id', None)
70        try:
71            record = Vocero.objects.select_related().get(fk_org_social=self.record_id)
72        except Vocero.DoesNotExist:
73            record = None
74        return {
75          'voceros': record,
76          'organizacion_social': record.fk_org_social if record else None,
77        }
78
79    def forms_valid(self, forms, **kwargs):
80        """
81        Valida el formulario de registro del perfil de usuario
82        @return: Dirige con un mensaje de exito a el home
83        """
84        nueva_organizacion = forms['organizacion_social'].save()
85        nuevos_voceros = self.form_classes['voceros'](self.request.POST, instance=nueva_organizacion)
86        if nuevos_voceros.is_valid():
87            nuevos_voceros.save()
88        messages.success(self.request, "El Usuario %s registró con éxito la \
89                                        Organización Comunal %s"
90                                         % (str(self.request.user), str(nueva_organizacion.nombre)))
91        return redirect(self.success_url)
92
93    def forms_invalid(self, forms, **kwargs):
94        messages.error(self.request, "%s" % (str(forms['organizacion_social'].errors.as_data())))
95
96        return super(RegisterOrgView, self).forms_invalid(forms)
97
98
99class ListOrgView(LoginRequeridoPerAuth, TemplateView):
100    """!
101    Listar organizaciones de la plataforma por los Administradores
102
103    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
104    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
105    @date 30-05-2017
106    @version 1.0.0
107    """
108    template_name = "organizacion.register.html"
109    model = OrganizacionSocial
110    success_url = reverse_lazy('organizaciones:registrar_organizacion')
111    group_required = [u"Administradores"]
112
113    def __init__(self):
114        super(ListOrgView, self).__init__()
115
116    def post(self, *args, **kwargs):
117        '''
118        Cambia el estado activo a el usuario
119        @return: Dirige a la tabla que muestra los usuarios de la apliacion
120        '''
121        accion = self.request.POST
122        activar = accion.get('activar', None)
123        inactivar = accion.get('inactivar', None)
124        estado = False
125
126        if activar is not None:
127            org = activar
128            estado = True
129        elif inactivar is not None:
130            org = inactivar
131            estado = False
132        else:
133            messages.error(self.request, "Está intentando hacer \
134                                          una acción incorrecta")
135        try:
136            org_act = self.model.objects.get(pk=org)
137            org_act.activa = estado
138            org_act.save()
139            if estado:
140                messages.success(self.request, "Se ha activado \
141                                                la organización: %s\
142                                                " % (str(org_act)))
143            else:
144                messages.warning(self.request, "Se ha inactivado \
145                                                la organización: %s\
146                                                " % (str(org_act)))
147        except:
148            messages.info(self.request, "La organización comunal no existe")
149        return redirect(self.success_url)
150
151class ListOrgVocView(LoginRequeridoPerAuth, TemplateView):
152    """!
153    Listar organizaciones de la plataforma
154
155    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
156    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
157    @date 30-05-2017
158    @version 1.0.0
159    """
160    template_name = "organizaciones.list.html"
161    model = OrganizacionSocial
162    success_url = reverse_lazy('organizaciones:listar_organizacion')
163    group_required = [u"Administradores", u"Voceros"]
164
165    def __init__(self):
166        super(ListOrgVocView, self).__init__()
167
168    def post(self, *args, **kwargs):
169        '''
170        Cambia el estado activo a el usuario
171        @return: Dirige a la tabla que muestra los usuarios de la apliacion
172        '''
173        accion = self.request.POST
174        activar = accion.get('activar', None)
175        inactivar = accion.get('inactivar', None)
176        estado = False
177
178        if activar is not None:
179            org = activar
180            estado = True
181        elif inactivar is not None:
182            org = inactivar
183            estado = False
184        else:
185            messages.error(self.request, "Está intentando hacer \
186                                          una acción incorrecta")
187        try:
188            org_act = self.model.objects.get(pk=org)
189            org_act.activa = estado
190            org_act.save()
191            if estado:
192                messages.success(self.request, "Se ha activado \
193                                                la organización: %s\
194                                                " % (str(org_act)))
195            else:
196                messages.warning(self.request, "Se ha inactivado \
197                                                la organización: %s\
198                                                " % (str(org_act)))
199        except:
200            messages.info(self.request, "La organización comunal no existe")
201        return redirect(self.success_url)
202
203class ModificarOrg(LoginRequeridoPerAuth, MultiModelFormView):
204    """!
205    Construye el modals para la actualizacion de la Organización
206
207    @author Ing. Lully Troconis (ltroconis at cenditel.gob.ve)
208    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
209    @date 31-01-2018
210    @version 1.0.0
211    """
212
213    model = OrganizacionSocial
214    form_classes = {
215      'organizaciones' : FormularioRegisterOrgSocial,
216    }
217    template_name = 'organizaciones.modificar.org.html'
218    success_url = reverse_lazy('organizaciones:listar_org')
219    group_required = [u"Administradores", u"Voceros"]
220    record_id = None
221
222    def get_context_data(self, **kwargs):
223        """
224        Carga el formulario en la vista, para modificar la organización comunal
225        @return: El contexto con los objectos para la vista
226        """
227        context = super(ModificarOrg, self).get_context_data(**kwargs)
228        self.record_id = self.kwargs.get('pk', None)
229        if self.record_id is not None:
230            try:
231                organizacion = OrganizacionSocial.objects.get(pk=self.record_id)
232                self.form_classes['organizaciones'](instance=organizacion)
233            except:
234                organizacion = organizacion
235
236        context['upOrg'] = organizacion
237        return context
238        print (organizacion)
239    def get_objects(self, **kwargs):
240        """
241        Carga el formulario en la vista,para actualizar la organización comunal
242        @return: El contexto con los objectos para la vista
243        """
244        self.record_id = self.kwargs.get('pk', None)
245        try:
246            record = self.model.objects.select_related().get(pk=self.record_id)
247        except OrganizacionSocial.DoesNotExist:
248            record = record
249            print (record)
250        return {
251            'organizaciones': record}
252
253    def get_success_url(self):
254        return reverse('organizaciones:listar_org')
255
256    def forms_valid(self, forms, **kwargs):
257        """
258        Valida el formulario de actualización de la organización comunal
259        @return: Dirige con un mensaje de éxito a el home
260        """
261        self.record_id = self.kwargs.get('pk', None)
262        if self.record_id is not None:
263            objeto = get_object_or_404(OrganizacionSocial, pk=self.record_id)
264            print(objeto)
265            messages.success(self.request, "Organización Comunal %s actualizada con éxito\
266                                           " % (str(objeto.nombre)))
267        return super(ModificarOrg, self).forms_valid(forms)
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.