Conjunto de cambios 3b38b3f en sapic para users/views.py


Ignorar:
Fecha y hora:
09/08/2017 16:22:17 (hace 7 años)
Autor:
lhernandez <lhernandez@…>
Branches:
master, erwin, explicacion_situacional, gestion_usuarios, taller_django
Children:
79326b0
Parents:
d95c87b
Mensaje:

Desarrollado e implementado el Registro de Usuarios Voceros asociados a una organizacion social

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • users/views.py

    rd95c87b r3b38b3f  
    1010
    1111from django.shortcuts import render
    12 
    1312from django import forms
    1413from django.db.models import Q
     
    5049from utils.views import LoginRequeridoPerAuth
    5150
    52 from .forms import (
    53     FormularioLogin, FormularioUpdate, FormularioAdminRegPerfil,
    54     FormularioAdminRegistro, PasswordChangeForm, FormularioAdminUpdate
    55 )
    56 from .models import UserProfile
     51from .forms import *
     52
     53from organizaciones.models import VoceroComite
     54
     55from .models import (
     56    UserProfile, UserProfileVocero
     57    )
     58
    5759
    5860
     
    6062class LoginView(FormView):
    6163    """!
    62     Muestra el formulario de ingreso a la aplicación 
     64    Muestra el formulario de ingreso a la aplicación
    6365
    6466    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
     
    447449            messages.success(self.request, "Usuario %s Actualizado con exito\
    448450                                           " % (str(objeto.username)))
    449             return super(UpdatePerfil, self).forms_valid(forms)
     451        return super(UpdatePerfil, self).forms_valid(forms)
     452
     453
     454class RegisterVocerosView(LoginRequeridoPerAuth, MultiModelFormView):
     455    """!
     456    Muestra el formulario de registro de usuarios
     457
     458    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
     459    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     460    @date 09-01-2017
     461    @version 1.0.0
     462    """
     463    model = UserProfileVocero
     464    form_classes = {
     465      'user': FormularioAdminRegVoceros,
     466      'user_vocero': FormularioRegVoceros,
     467    }
     468    template_name = 'users.register.vocero.html'
     469    success_url = reverse_lazy('users:options')
     470    group_required = [u"Administradores"]
     471    record_id = None
     472
     473
     474    def get_objects(self, **kwargs):
     475        """
     476        Carga el formulario en la vista,para actualizar el perfil del  usuario
     477        @return: El contexto con los objectos para la vista
     478        """
     479        self.record_id = self.kwargs.get('pk', None)
     480        try:
     481            record = self.model.objects.select_related().get(fk_user=self.record_id)
     482        except self.model.DoesNotExist:
     483            record = None
     484        return {
     485          'user_vocero': record,
     486          'user': record.fk_user if record else None}
     487
     488    def forms_valid(self, forms, **kwargs):
     489        """
     490        Valida el formulario del proyecto
     491        @return: Dirige con un mensaje de exito al registro de proyecto
     492        """
     493        # Campos para guardar los datos de un Nuevo User
     494        documento_identidad = forms['user_vocero'].cleaned_data['documento']
     495        tipo_documento = forms['user_vocero'].cleaned_data['fk_tipo_documento']
     496        organizacion_social = forms['user_vocero'].cleaned_data['organizacion']
     497        comite = forms['user_vocero'].cleaned_data['comite_unidad_ejecutiva']   
     498        try:
     499            vocero = Vocero.objects.get(fk_org_social=organizacion_social,
     500                                   fk_tipo_documento=tipo_documento,
     501                                   documento_identidad=documento_identidad)
     502        except:
     503            pass
     504        actualizar_vocero = self.form_classes['user_vocero'](self.request.POST, instance=vocero)
     505        actualizar_vocero.save(commit=False)
     506
     507        nuevo_usuario = forms['user'].save()
     508        vocero_actualizado = actualizar_vocero.save()
     509        nuevo_usuario.groups.add(Group.objects.get(pk=2))
     510        asociar_voceros = self.model(fk_user=nuevo_usuario,
     511                                     fk_vocero=vocero_actualizado)
     512        if comite is not None:
     513            try:
     514                comite_unidad = VoceroComite(fk_vocero=vocero_actualizado,
     515                                             fk_comite=fk_comite)
     516                comite_unidad.save()
     517            except:
     518                messages.warning(self.request, "Existe un problema al relacionar el comite a este vocero")
     519
     520        try:
     521            asociar_voceros.save()
     522            nombre_vocero = str(vocero_actualizado.nombres) + " " + str(vocero_actualizado.apellidos)
     523            messages.success(self.request, "Se creo el usuario %s, para el vocero %s" % (nuevo_usuario.username, nombre_vocero))
     524        except:
     525            messages.error(self.request, "El voceros al que quieres asociar a la cuenta ya existe o ya se encuentra asociado" )
     526
     527        return redirect(self.success_url)
     528
     529    def forms_invalid(self, forms, **kwargs):
     530
     531        return super(RegisterVocerosView, self).forms_invalid(forms)
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.