diff options
| author | Bobby <[email protected]> | 2022-09-09 04:08:41 -0400 |
|---|---|---|
| committer | Bobby <[email protected]> | 2022-09-09 04:08:41 -0400 |
| commit | 38ffb6cf78b30d788bac2d5029cbb60b2493c27f (patch) | |
| tree | 88111267013f2edc33810555e4396459950ca3c3 /blog_admin | |
| parent | c68d7c6a7281d7c58dd00f60b2a9dc5dcaad2368 (diff) | |
| download | thatcomputerscientist-38ffb6cf78b30d788bac2d5029cbb60b2493c27f.tar.xz thatcomputerscientist-38ffb6cf78b30d788bac2d5029cbb60b2493c27f.zip | |
Added pagination
Diffstat (limited to 'blog_admin')
| -rw-r--r-- | blog_admin/urls.py | 1 | ||||
| -rw-r--r-- | blog_admin/views.py | 56 |
2 files changed, 51 insertions, 6 deletions
diff --git a/blog_admin/urls.py b/blog_admin/urls.py index 52b30bbe..84d61bbc 100644 --- a/blog_admin/urls.py +++ b/blog_admin/urls.py @@ -4,6 +4,7 @@ from . import views app_name = 'blog-admin' urlpatterns = [ path('users', views.users, name='users'), + path('users/new', views.new_user, name='new-user'), path('posts', views.posts, name='posts'), path('comments', views.comments, name='comments'), path('categories', views.categories, name='categories'), diff --git a/blog_admin/views.py b/blog_admin/views.py index 37c6f4eb..34b4176b 100644 --- a/blog_admin/views.py +++ b/blog_admin/views.py @@ -1,16 +1,22 @@ from django.shortcuts import render, redirect from users.models import UserProfile from django.contrib.auth.models import User +from django.contrib import messages # Create your views here. def users(request): if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff): - # Get the superusers + page = request.GET.get('page') if request.GET.get('page') else 1 + try: + page = int(page) + except: + page = 1 superusers = User.objects.filter(is_superuser=True) - # Get the normal users - users = User.objects.filter(is_superuser=False) - - return render(request, 'blog_admin/users.html', { 'title': 'Manage Users', 'super_users': superusers, 'normal_users': users }) + users = User.objects.filter(is_superuser=False)[(page-1)*50:page*50] + num_pages = User.objects.filter(is_superuser=False).count() // 50 + 1 + print(num_pages) + url_to_render = 'blog_admin/users.html?page={}'.format(page) if int(page) and int(page) > 1 else 'blog_admin/users.html' + return render(request, url_to_render, { 'title': 'Manage Users', 'super_users': superusers, 'normal_users': users, 'num_pages': num_pages, 'page': page }) else: return redirect('blog:home') @@ -48,4 +54,42 @@ def search(request): else: return redirect('blog-admin:users') else: - return redirect('blog:home')
\ No newline at end of file + return redirect('blog:home') + +def new_user(request): + if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff): + if request.method == 'POST': + username = request.POST.get('username') + email = request.POST.get('email') + first_name = request.POST.get('first_name') + last_name = request.POST.get('last_name') + password = request.POST.get('password') + is_superuser = True if request.POST.get('is_superuser') == 'on' else False + is_staff = True if request.POST.get('is_staff') == 'on' else False + is_active = True if request.POST.get('is_active') == 'on' else False + + # User Profile Data + bio = request.POST.get('bio') + location = request.POST.get('location') + gravatar_email = request.POST.get('gravatar_email') + is_public = False if request.POST.get('is_public') == 'on' else False + email_public = False if request.POST.get('email_public') == 'on' else False + email_verified = True if request.POST.get('email_verified') == 'on' else False + + # Create the user + try: + user = User.objects.create_user(username=username, email=email, first_name=first_name, last_name=last_name, password=password, is_superuser=is_superuser, is_staff=is_staff, is_active=is_active) + + # Create the user profile + user_profile = UserProfile(user=user, bio=bio, location=location, gravatar_email=gravatar_email, is_public=is_public, email_public=email_public, email_verified=email_verified) + user_profile.save() + + messages.success(request, 'User created successfully!') + return redirect('blog-admin:users') + # maybe user name is taken + except Exception as e: + messages.error(request, 'Error: {}'.format(e), extra_tags='new_user_create_error') + return redirect('blog-admin:new-user') + + else: + return render(request, 'blog_admin/new_user.html', { 'title': 'Create New User' })
\ No newline at end of file |
