Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))