Changeset 3996539 in firmaeventos for users/views.py
- Timestamp:
- Nov 20, 2017, 9:35:57 AM (7 years ago)
- Branches:
- master
- Children:
- 2f56f4e, 3397a08
- Parents:
- bf47591
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
users/views.py
rbf47591 r3996539 43 43 from multi_form_view import MultiModelFormView 44 44 45 from .models import UserProfile46 45 from .forms import ( 47 FormularioLogin, FormularioAdminRegistro, FormularioUpdate, 48 FormularioAdminRegPerfil, FormularioRegistroComun 46 FormularioLogin, FormularioUpdate 49 47 ) 50 48 51 from utils.views import (49 from base.views import ( 52 50 LoginRequeridoPerAuth 53 51 ) 54 from utils.messages import MENSAJES_LOGIN, MENSAJES_START52 from base.messages import MENSAJES_LOGIN, MENSAJES_START 55 53 56 54 class LoginView(FormView): … … 66 64 template_name = 'users_login.html' 67 65 success_url = '/inicio/' 68 model = UserProfile69 66 70 67 def form_valid(self, form): … … 134 131 logout(self.request) 135 132 return reverse_lazy('users:login') 136 137 138 class ListUsersView(LoginRequeridoPerAuth, TemplateView):139 """!140 Listar usuarios de la apliacion141 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-2017145 @version 1.0.0146 """147 template_name = "users_list.html"148 model = User149 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 usuario159 @return: Dirige a la tabla que muestra los usuarios de la apliacion160 '''161 accion = self.request.POST162 activar = accion.get('activar', None)163 inactivar = accion.get('inactivar', None)164 estado = False165 166 if activar is not None:167 user = activar168 estado = True169 elif inactivar is not None:170 user = inactivar171 estado = False172 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 = estado177 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 plataforma190 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-2017194 @version 1.0.0195 @return: El template inicial de la plataforma196 """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 logeado202 @return: Direcciona al login en caso de no poseer permisos, en caso contrario usa la clase203 """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 = None216 context = super(StartView, self).get_context_data(**kwargs)217 context['userprofile'] = perfil218 return context219 220 221 class RegisterView(LoginRequeridoPerAuth, MultiModelFormView):222 """!223 Muestra el formulario de registro de usuarios224 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-2017228 @version 1.0.0229 """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 = Group237 model_permi = Permission238 group_required = [u"Super Admin"]239 record_id=None240 241 def get_context_data(self, **kwargs):242 """243 Carga el formulario en la vista,para registrar usuarios244 @return: El contexto con los objectos para la vista245 """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 usuario251 @return: Dirige con un mensaje de exito a el home252 """253 nuevo_usuario = forms['user'].save()254 nuevo_perfil = forms['user_perfil'].save(commit=False)255 nuevo_perfil.fk_user = nuevo_usuario256 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).pk263 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 usuario277 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-2017281 @version 1.0.0282 """283 model = UserProfile284 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 = None293 294 295 def get_context_data(self, **kwargs):296 """297 Carga el formulario en la vista,para registrar usuarios298 @return: El contexto con los objectos para la vista299 """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 = None306 context['upUser'] = record307 return context308 309 def get_objects(self, **kwargs):310 """311 Carga el formulario en la vista,para actualizar el perfil del usuario312 @return: El contexto con los objectos para la vista313 """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 = None319 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 usuario329 @return: Dirige con un mensaje de exito a el home330 """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.