aboutsummaryrefslogtreecommitdiff
path: root/blog_admin
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-09-09 04:08:41 -0400
committerBobby <[email protected]>2022-09-09 04:08:41 -0400
commit38ffb6cf78b30d788bac2d5029cbb60b2493c27f (patch)
tree88111267013f2edc33810555e4396459950ca3c3 /blog_admin
parentc68d7c6a7281d7c58dd00f60b2a9dc5dcaad2368 (diff)
downloadthatcomputerscientist-38ffb6cf78b30d788bac2d5029cbb60b2493c27f.tar.xz
thatcomputerscientist-38ffb6cf78b30d788bac2d5029cbb60b2493c27f.zip
Added pagination
Diffstat (limited to 'blog_admin')
-rw-r--r--blog_admin/urls.py1
-rw-r--r--blog_admin/views.py56
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