def editar_personal(request): hidden = "hidden" if not request.user.get_profile().is_super(): return redirect(reverse('user_login')) emps = User.objects.exclude(groups__name='super') if request.method == 'POST': if 'guardar' in request.POST: formdata = request.POST.copy() formdata['dni'] = 'xxxxxxxx' formdata['dni2'] = request.POST.get('dni') regform = RegistrarPersonal(formdata) if regform.is_valid(): u = User.objects.get(perfil__dni=request.POST.get('dni')) u.first_name = regform.cleaned_data['nombre'] u.last_name = regform.cleaned_data['apellido'] u.email = regform.cleaned_data['email'] u.save() if regform.cleaned_data['admin']: Group.objects.get(name='administradores').user_set.add(u) if u.get_profile().is_empleado(): Group.objects.get(name='empleados').user_set.remove(u) else: Group.objects.get(name='empleados').user_set.add(u) if u.get_profile().is_admin(): Group.objects.get(name='administradores').user_set.remove(u) p = Perfil.objects.get(user=u) p.telefono = regform.cleaned_data['telefono'] p.direccion = regform.cleaned_data['direccion'] p.especialidad = regform.cleaned_data['especialidad'] p.dba = regform.cleaned_data['dba'] p.empresa = regform.cleaned_data['empresa'] p.save() return redirect(reverse('accion_correcta', kwargs={'accion': 'editar'})) hidden = "" elif 'eliminar' in request.POST and 'dni' in request.POST: u = User.objects.get(perfil__dni=request.POST.get('dni')) p = Perfil.objects.get(user=u) p.delete() u.delete() return redirect(reverse('accion_correcta', kwargs={'accion': 'eliminar'})) else: regform = RegistrarPersonal() if 'per' in request.GET and request.GET.get('per').isdigit(): e = get_object_or_404(User, id=request.GET.get('per')) regform = RegistrarPersonal(initial={'nombre': e.first_name, 'apellido': e.last_name, 'dni': e.get_profile().dni, 'email': e.email, 'telefono': e.get_profile().telefono, 'direccion': e.get_profile().direccion, 'especialidad': e.get_profile().especialidad.all(), 'empresa': e.get_profile().empresa, 'dba': e.get_profile().dba, 'admin': e.get_profile().is_admin(), }) regform.fields['dni'].widget.attrs['readonly'] = True hidden = "" return render_to_response("editar_usuario.html", {'emps': emps, 'rf': regform, 'hidden': hidden}, context_instance=RequestContext(request))
def registrar_personal(request): if not request.user.get_profile().is_super(): return redirect(reverse('user_login')) if request.method == 'POST': regform = RegistrarPersonal(request.POST) if regform.is_valid(): usuario = User.objects.make_random_password(allowed_chars='0123456789') while User.objects.filter(username=usuario): usuario = User.objects.make_random_password(allowed_chars='0123456789') password = User.objects.make_random_password() u = User.objects.create_user(username=usuario, password=password, email=regform.cleaned_data['email']) u.first_name = regform.cleaned_data['nombre'] u.last_name = regform.cleaned_data['apellido'] u.save() if regform.cleaned_data['admin']: Group.objects.get(name='administradores').user_set.add(u) else: Group.objects.get(name='empleados').user_set.add(u) p = Perfil.objects.create(user=u, dni=regform.cleaned_data['dni'], direccion=regform.cleaned_data['direccion'], telefono=regform.cleaned_data['telefono'], empresa="solrac" if not regform.cleaned_data['admin'] else regform.cleaned_data[ 'empresa'], dba=regform.cleaned_data['dba'] ) p.especialidad = regform.cleaned_data['especialidad'] p.save() message = 'Su usuario es {} y su contraseña es {}'.format(usuario, password) if regform.cleaned_data['email']: send_mail('creacion de cuenta sigestar', message, '*****@*****.**', [u.email]) return redirect(reverse('accion_correcta', kwargs={'accion': 'agregar'})) else: regform = RegistrarPersonal() return render_to_response("registrar_usuario.html", {'rf': regform}, context_instance=RequestContext(request))