Conjunto de cambios ea01a10 en seiven para usuario


Ignorar:
Fecha y hora:
02/12/2016 15:49:47 (hace 7 años)
Autor:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master, carga
Children:
25b93fc
Parents:
baffc7c
Mensaje:

se agregan urls, vista y template para la modificación de datos del usuario autenticado.

Ubicación:
usuario
Ficheros:
1 añadido
2 editados

Leyenda

No modificado
Añadido
Eliminado
  • usuario/urls.py

    r38d2ebb rea01a10  
    2525    url(r'^confirm-modificar-clave/?$', usuario_views.confirmar_modificar_clave, name='confirmar_modificar_clave'),
    2626    url(r'^modificar-clave/?$', usuario_views.modificar_clave, name='modificar_clave'),
     27    url(r'^perfil/update/(?P<pk>\d+)/$', login_required(usuario_views.ModificarPerfilView.as_view()), name='modificar_perfil'),
    2728]
  • usuario/views.py

    rd0e817c rea01a10  
    3030from django.utils.translation import ugettext_lazy as _
    3131
    32 from base.constant import REGISTRO_MESSAGE, EMAIL_SUBJECT_REGISTRO, CADUCIDAD_LINK_REGISTRO
     32from base.constant import REGISTRO_MESSAGE, UPDATE_MESSAGE, EMAIL_SUBJECT_REGISTRO, CADUCIDAD_LINK_REGISTRO
    3333from base.functions import enviar_correo, calcular_diferencia_fechas
    34 from .forms import AutenticarForm, RegistroForm, OlvidoClaveForm, ModificarClaveForm, PerfilForm
     34from .forms import AutenticarForm, RegistroForm, OlvidoClaveForm, ModificarClaveForm
    3535
    3636import logging
     
    360360
    361361        return super(RegistroCreate, self).form_valid(form)
     362
     363
     364class ModificarPerfilView(SuccessMessageMixin, UpdateView):
     365    """!
     366    Clase que muestra el formulario de modificación de datos del perfil de usuario
     367
     368    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     369    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     370    @date 02-12-2016
     371    @version 1.0.0
     372    """
     373    model = User
     374    form_class = RegistroForm
     375    template_name = 'usuario.update.html'
     376    success_url = reverse_lazy('inicio')
     377    success_message = UPDATE_MESSAGE
     378
     379    def get_initial(self, **kwargs):
     380        """!
     381        Metodo que asigna los valores iniciales del formulario del perfil de usuario con los datos actualmente registrados
     382
     383        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     384        @copyright GNU/GPLv2
     385        @date @date 02-12-2016
     386        @return Retorna los valores iniciales del formulario
     387        """
     388        usr = User.objects.get(username=self.request.user)
     389        #institucion = Institucion.objects.get(pk=self.request.user.profile.institucion)
     390        print(self.request.user.profile.institucion.pk)
     391        return {
     392            'nombre': usr.first_name, 'apellido': usr.last_name, 'correo': usr.email, 'tipo_documento': usr.username,
     393            'institucion': self.request.user.profile.institucion.pk, 'ocupacion': self.request.user.profile.ocupacion,
     394        }
     395
     396    def form_valid(self, form):
     397        """!
     398        Metodo que valida si el formulario es valido, en cuyo caso se procede a modificar los datos del perfil del usuario
     399
     400        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     401        @copyright GNU/GPLv2
     402        @date @date 02-12-2016
     403        @return Retorna el formulario validado y modifica los datos de perfil del usuario
     404        """
     405        """
     406        self.object = form.save(commit=False)
     407        usuario = self.request.user
     408        usr = User.objects.get(username=usuario)
     409        institucion = Institucion.objects.get(nombre=form.cleaned_data['institucion'])
     410        cargo = Cargo.objects.get(nombre=form.cleaned_data['cargo'])
     411        correo = form.cleaned_data['correo'].lower()
     412        nombre, apellido = form.cleaned_data['nombre'], form.cleaned_data['apellido']
     413        if usr.first_name!=nombre: usr.first_name = nombre
     414        if usr.last_name!=apellido: usr.last_name = apellido
     415        if usr.email!=correo: usr.email = correo
     416        usr.save()
     417        form.instance.user = usr
     418        form.instance.institucion = institucion
     419        form.instance.cargo = cargo
     420        self.object.save()
     421
     422        logger.info(u"Se han actualizado los datos del usuario [%s]" % usuario)
     423        """
     424        return super(ModificarPerfilView, self).form_valid(form)
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.