source: sapic/organizaciones/views.py

Last change on this file was a100574, checked in by William Páez <wpaez@…>, 6 años ago

agragadas validaciones en los campos: documento de identidad, teléfono, rif del consejo comunal y arreglado error en documento de identidad creando un vocero

  • Propiedad mode establecida a 100644
File size: 8.1 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:listar_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 = "organizaciones.list.html"
109    model = OrganizacionSocial
110    success_url = reverse_lazy('organizaciones:listar_organizacion')
111    group_required = [u"Administradores", u"Voceros"]
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
151
152class ModificarOrg(LoginRequeridoPerAuth, MultiModelFormView):
153    """!
154    Construye el modals para la actualizacion de la Organización
155
156    @author Ing. Lully Troconis (ltroconis at cenditel.gob.ve)
157    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
158    @date 31-01-2018
159    @version 1.0.0
160    """
161
162    model = OrganizacionSocial
163    form_classes = {
164      'organizaciones' : FormularioRegisterOrgSocial,
165    }
166    template_name = 'organizaciones.modificar.org.html'
167    success_url = reverse_lazy('organizaciones:registrar_organizacion')
168    group_required = [u"Administradores", u"Voceros"]
169    record_id = None
170
171    def get_context_data(self, **kwargs):
172        """
173        Carga el formulario en la vista, para modificar la organización comunal
174        @return: El contexto con los objectos para la vista
175        """
176        context = super(ModificarOrg, self).get_context_data(**kwargs)
177        self.record_id = self.kwargs.get('pk', None)
178        if self.record_id is not None:
179            try:
180                organizacion = OrganizacionSocial.objects.get(pk=self.record_id)
181                self.form_classes['organizaciones'](instance=organizacion)
182            except:
183                organizacion = organizacion
184
185        context['upOrg'] = organizacion
186        return context
187        print (organizacion)
188    def get_objects(self, **kwargs):
189        """
190        Carga el formulario en la vista,para actualizar la organización comunal
191        @return: El contexto con los objectos para la vista
192        """
193        self.record_id = self.kwargs.get('pk', None)
194        try:
195            record = self.model.objects.select_related().get(pk=self.record_id)
196        except OrganizacionSocial.DoesNotExist:
197            record = record
198            print (record)
199        return {
200            'organizaciones': record}
201
202    def get_success_url(self):
203        return reverse('organizaciones:listar_org')
204
205    def forms_valid(self, forms, **kwargs):
206        """
207        Valida el formulario de actualización de la organización comunal
208        @return: Dirige con un mensaje de éxito a el home
209        """
210        self.record_id = self.kwargs.get('pk', None)
211        if self.record_id is not None:
212            objeto = get_object_or_404(OrganizacionSocial, pk=self.record_id)
213            print(objeto)
214            messages.success(self.request, "Organización Comunal %s actualizada con éxito\
215                                           " % (str(objeto.nombre)))
216        return super(ModificarOrg, self).forms_valid(forms)
217
218class SocialOrganizationUpdateView(LoginRequeridoPerAuth, UpdateView):
219    """!
220    Clase que permite actualizar una organización comunal
221
222    @author William Páez (wpaez at cenditel.gob.ve)
223    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
224    @date 05-10-2018
225    @version 1.0.0
226    """
227
228    model = OrganizacionSocial
229    form_class = FormularioRegisterOrgSocial
230    template_name = 'social.organization.update.html'
231    success_url = reverse_lazy('organizaciones:listar_organizacion')
232    group_required = [u'Administradores']
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.