Changeset 3996539 in firmaeventos for users/views.py


Ignore:
Timestamp:
Nov 20, 2017, 9:35:57 AM (7 years ago)
Author:
rudmanmrrod <rudman22@…>
Branches:
master
Children:
2f56f4e, 3397a08
Parents:
bf47591
Message:

Renombrado utils como base, cambiado el template, quitados modelos no usados, agregado materialize

File:
1 edited

Legend:

Unmodified
Added
Removed
  • users/views.py

    rbf47591 r3996539  
    4343from multi_form_view import MultiModelFormView
    4444
    45 from .models import UserProfile
    4645from .forms import (
    47     FormularioLogin, FormularioAdminRegistro, FormularioUpdate,
    48     FormularioAdminRegPerfil, FormularioRegistroComun
     46    FormularioLogin, FormularioUpdate
    4947)
    5048
    51 from utils.views import (
     49from base.views import (
    5250    LoginRequeridoPerAuth
    5351)
    54 from utils.messages import MENSAJES_LOGIN, MENSAJES_START
     52from base.messages import MENSAJES_LOGIN, MENSAJES_START
    5553
    5654class LoginView(FormView):
     
    6664    template_name = 'users_login.html'
    6765    success_url = '/inicio/'
    68     model = UserProfile
    6966
    7067    def form_valid(self, form):
     
    134131        logout(self.request)
    135132        return reverse_lazy('users:login')
    136 
    137 
    138 class ListUsersView(LoginRequeridoPerAuth, TemplateView):
    139     """!
    140     Listar usuarios de la apliacion
    141 
    142     @author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
    143     @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    144     @date 09-01-2017
    145     @version 1.0.0
    146     """
    147     template_name = "users_list.html"
    148     model = User
    149     success_url = reverse_lazy('users:lista_users')
    150     group_required = [u"Super Admin"]
    151 
    152     def __init__(self):
    153         super(ListUsersView, self).__init__()
    154 
    155 
    156     def post(self, *args, **kwargs):
    157         '''
    158         Cambia el estado activo a el usuario
    159         @return: Dirige a la tabla que muestra los usuarios de la apliacion
    160         '''
    161         accion = self.request.POST
    162         activar = accion.get('activar', None)
    163         inactivar = accion.get('inactivar', None)
    164         estado = False
    165 
    166         if activar is not None:
    167             user = activar
    168             estado = True
    169         elif inactivar is not None:
    170             user = inactivar
    171             estado = False
    172         else:
    173             messages.error(self.request, "Esta intentando hacer una accion incorrecta")     
    174         try:
    175             user_act = self.model.objects.get(pk=user)
    176             user_act.is_active = estado
    177             user_act.save()
    178             if estado:
    179                 messages.success(self.request, "Se ha activado el usuario: %s" % (str(user_act)))
    180             else:
    181                 messages.warning(self.request, "Se ha inactivado el usuario: %s" % (str(user_act)))
    182         except:
    183             messages.info(self.request, "El usuario no existe")
    184         return redirect(self.success_url)
    185 
    186 
    187 class StartView(LoginRequiredMixin, TemplateView):
    188     """!
    189     Muestra el inicio de la plataforma
    190 
    191     @author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
    192     @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    193     @date 09-01-2017
    194     @version 1.0.0
    195     @return: El template inicial de la plataforma
    196     """
    197     template_name = "home.html"
    198 
    199     def dispatch(self, request, *args, **kwargs):
    200         """
    201         Envia una alerta al usuario que intenta acceder sin estar logeado
    202         @return: Direcciona al login en caso de no poseer permisos, en caso contrario usa la clase
    203         """
    204         if not request.user.is_authenticated:
    205             messages.warning(self.request, "Debes iniciar Sessón")
    206             return self.handle_no_permission()
    207         return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
    208 
    209 
    210     def get_context_data(self, **kwargs):
    211         """Use this to add extra context."""
    212         try:
    213             perfil = UserProfile.objects.select_related().get(fk_user=self.request.user.id)
    214         except:
    215             perfil = None
    216         context = super(StartView, self).get_context_data(**kwargs)
    217         context['userprofile'] = perfil
    218         return context
    219 
    220 
    221 class RegisterView(LoginRequeridoPerAuth, MultiModelFormView):
    222     """!
    223     Muestra el formulario de registro de usuarios
    224 
    225     @author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
    226     @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    227     @date 09-01-2017
    228     @version 1.0.0
    229     """
    230     template_name = "users_register.html"
    231     form_classes = {
    232       'user': FormularioAdminRegistro,
    233       'user_perfil': FormularioAdminRegPerfil,
    234     }
    235     success_url = reverse_lazy('utils:inicio')
    236     model = Group
    237     model_permi = Permission
    238     group_required = [u"Super Admin"]
    239     record_id=None
    240 
    241     def get_context_data(self, **kwargs):
    242         """
    243         Carga el formulario en la vista,para registrar usuarios
    244         @return: El contexto con los objectos para la vista
    245         """
    246         return super(RegisterView, self).get_context_data(**kwargs)
    247 
    248     def forms_valid(self, forms, **kwargs):
    249         """
    250         Valida el formulario de registro del perfil de usuario
    251         @return: Dirige con un mensaje de exito a el home
    252         """
    253         nuevo_usuario = forms['user'].save()
    254         nuevo_perfil = forms['user_perfil'].save(commit=False)
    255         nuevo_perfil.fk_user = nuevo_usuario
    256         nuevo_perfil.save()
    257         usuario = forms['user'].cleaned_data['username']
    258         grupos = forms['user'].cleaned_data['groups']
    259         for group in grupos:
    260             # Agrega a el usuario al(los) grupo(s) seleccionado(s)
    261             nuevo_usuario.groups.add(group.pk)
    262         model_user = ContentType.objects.get_for_model(User).pk
    263         LogEntry.objects.log_action(
    264             user_id=self.request.user.id,
    265             content_type_id=model_user,
    266             object_id=nuevo_usuario.id,
    267             object_repr=str(nuevo_usuario.username),
    268             action_flag=ADDITION)
    269         messages.success(self.request, "Usuario %s creado con exito\
    270                                        " % (str(usuario)))
    271         return super(RegisterView, self).forms_valid(forms)
    272 
    273        
    274 class ModalsPerfil(LoginRequeridoPerAuth, MultiModelFormView):
    275     """!
    276     Construye el modals para la actualizacion del usuario
    277 
    278     @author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
    279     @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    280     @date 09-01-2017
    281     @version 1.0.0
    282     """
    283     model = UserProfile
    284     form_classes = {
    285       'user': FormularioUpdate,
    286       'user_perfil': FormularioAdminRegPerfil,
    287     }
    288     template_name = 'users_modalsProfile.html'
    289     success_url = reverse_lazy('users:lista_users')
    290     success_message = 'Usuario Actualizado con exito'
    291     group_required = [u"Super Admin"]
    292     record_id = None
    293 
    294 
    295     def get_context_data(self, **kwargs):
    296         """
    297         Carga el formulario en la vista,para registrar usuarios
    298         @return: El contexto con los objectos para la vista
    299         """
    300         context = super(ModalsPerfil, self).get_context_data(**kwargs)
    301         self.record_id = self.kwargs.get('pk', None)
    302         try:
    303             record = self.model.objects.select_related().get(fk_user=self.record_id)
    304         except UserProfile.DoesNotExist:
    305             record = None
    306         context['upUser'] = record
    307         return context
    308 
    309     def get_objects(self, **kwargs):
    310         """
    311         Carga el formulario en la vista,para actualizar el perfil del  usuario
    312         @return: El contexto con los objectos para la vista
    313         """
    314         self.record_id = self.kwargs.get('pk', None)
    315         try:
    316             record = self.model.objects.select_related().get(fk_user=self.record_id)
    317         except UserProfile.DoesNotExist:
    318             record = None
    319         return {
    320           'user_perfil': record,
    321           'user': record.fk_user if record else None}
    322 
    323     def get_success_url(self):
    324         return reverse('users:lista_users')
    325 
    326     def forms_valid(self, forms, **kwargs):
    327         """
    328         Valida el formulario de registro del perfil de usuario
    329         @return: Dirige con un mensaje de exito a el home
    330         """
    331         self.record_id = self.kwargs.get('pk', None)
    332         if self.record_id is not None:
    333             objeto = get_object_or_404(User, pk=self.record_id)
    334             update_usuario = FormularioUpdate(self.request.POST, instance=objeto)
    335             update_perfil = FormularioAdminRegPerfil(self.request.POST, instance=objeto)
    336 
    337             messages.success(self.request, "Usuario %s Actualizado con exito\
    338                                            " % (str(objeto.username)))
    339         return super(ModalsPerfil, self).forms_valid(forms)
Note: See TracChangeset for help on using the changeset viewer.