Example #1
0
def add_user(request):
    def _generate_color():
        color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
        while color != (23, 23, 23):
            color = _generate_color()
            if color != (23, 23, 23):
                break
        return color

    data = request.POST.get('data')
    if data:
        data = json.loads(data)
        input_getter = itemgetter('name', 'value')
        create = dict(input_getter(i) for i in data)
        group = create.get('group')
        form = UserForm(create)
        if form.is_valid() and group:
            user = form.save(commit=False)
            user.set_password(form.cleaned_data['password'])
            cost = create.get('cost')
            user.save()
            profile = user.get_profile()
            profile.group = group.capitalize()
            if cost:    # Trainer
                profile.cost = cost
            profile.color = str(_generate_color())
            profile.save()
            status = True
            message = '%s successfully created.' % profile.group
        else:
            status = False
            message = 'There was an error while creating your %s user.' % group
        return HttpResponse(json.dumps({'status': status, 'msg': message}), content_type='application/json')
    else:
        return HttpResponseBadRequest()
Example #2
0
def update_user(request):
    data = request.POST.get('data')
    if data:
        data = json.loads(data)
        input_getter = itemgetter('name', 'value')
        edit = dict(input_getter(i) for i in data)
        user = get_object_or_404(User, pk=edit['user-pk'])
        profile = user.get_profile()
        form = UserForm(edit, instance=user)
        if 'password' in form.errors:
            form.errors.pop('password')
        if form.is_valid():
            user = form.save(commit=False)
            password = edit['password']
            if password != u'':
                user.set_password(password)
            user.save()
            cost = edit.get('cost')
            if cost and profile.group == 'Trainer':    # Trainer
                profile.cost = cost
            profile.save()
            status = True
            message = u'%s successfully updated.' % profile.group.capitalize()
        else:
            status = False
            message = u'There was an error while updating your %s user.' % profile.group
        return HttpResponse(json.dumps({'status': status, 'msg': message}), content_type='application/json')
    else:
        return HttpResponseBadRequest()
Example #3
0
def update_user(request, username):
    user = User.objects.get(username=username)
    form = UserForm(request.POST, instance=user)
    if form.is_valid():
        form.save()
        return redirect("/show")
    return render(request, 'edit.html', {'user': user})
Example #4
0
 def test_valid_password_accepted(self):
     form = UserForm(
         data={
             'email': "*****@*****.**",
             'username': "******",
             'password1': "Django@123",
             'password2': "Django@123"
         })
     self.assertTrue(form.is_valid())
Example #5
0
 def test_invalid_password_too_common(self):
     form = UserForm(
         data={
             'email': "*****@*****.**",
             'username': "******",
             'password1': "abcd",
             'password2': "abcd"
         })
     self.assertFalse(form.is_valid())
Example #6
0
 def test_invalid_password_numeric(self):
     form = UserForm(
         data={
             'email': "*****@*****.**",
             'username': "******",
             'password1': "12345678",
             'password2': "12345678"
         })
     self.assertFalse(form.is_valid())
Example #7
0
 def test_invalid_password_similar_username(self):
     form = UserForm(
         data={
             'email': "*****@*****.**",
             'username': "******",
             'password1': "test",
             'password2': "test"
         })
     self.assertFalse(form.is_valid())
Example #8
0
 def test_invalid_password_not_confirm(self):
     form = UserForm(
         data={
             'email': "*****@*****.**",
             'username': "******",
             'password1': "Django@123",
             'password2': "Django"
         })
     self.assertFalse(form.is_valid())
Example #9
0
def new_user(request):
    if request.method == "POST":
        form = UserForm(request.POST)
        if form.is_valid():
            try:
                form.save()
                return redirect('/show')
            except:
                pass
                #TODO catch This
        else:
            form = UserForm()
        return render(request, 'index.html', {'form': form})
    else:
        form = UserForm()
        return render(request, 'index.html', {'form': form})
Example #10
0
def register(request):

    # A boolean value for telling the template whether the registration was successful.
    # Set to False initially. Code changes value to True when registration succeeds.
    registered = False

    # If it's a HTTP POST, we're interested in processing form data.
    if request.method == 'POST':
        # Attempt to grab information from the raw form information.
        # Note that we make use of both UserForm and UserProfileForm.
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        # If the two forms are valid...
        if user_form.is_valid() and profile_form.is_valid():
            # Save the user's form data to the database.
            user = user_form.save()

            # Now we hash the password with the set_password method.
            # Once hashed, we can update the user object.
            user.set_password(user.password)
            user.save()

            # Now sort out the UserProfile instance.
            # Since we need to set the user attribute ourselves, we set commit=False.
            # This delays saving the model until we're ready to avoid integrity problems.
            profile = profile_form.save(commit=False)
            profile.user = user

            # Did the user provide a profile picture?
            # If so, we need to get it from the input form and put it in the UserProfile model.
            if 'picture' in request.FILES:
                profile.picture = request.FILES['picture']

            # Now we save the UserProfile model instance.
            profile.save()

            # Update our variable to tell the template registration was successful.
            registered = True

        # Invalid form or forms - mistakes or something else?
        # Print problems to the terminal.
        # They'll also be shown to the user.
        else:
            print user_form.errors, profile_form.errors

    # Not a HTTP POST, so we render our form using two ModelForm instances.
    # These forms will be blank, ready for user input.
    else:
        user_form = UserForm()
        profile_form = UserProfileForm()

    # Render the template depending on the context.
    return render(
        request, 'tracker/register.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        })
Example #11
0
def signup_view(request):
    if request.method == 'POST':
        form = UserForm(request.POST)
        print(form.is_valid())
        if form.is_valid():
            user = form.save()
            Profile.objects.create(name=user,
                                   monthly_limit=0,
                                   expenses_soFar=0)
            return redirect('login')
    else:
        form = UserForm()
    return render(request, 'registration/signup.html', {'form': form})
Example #12
0
def user_view(request, group):
    form = UserForm()
    return render_to_response('tracker/user.html', {'form': form, 'group': group},
        context_instance=RequestContext(request))