aboutsummaryrefslogtreecommitdiff
path: root/blog_admin
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-12-31 11:17:59 -0500
committerBobby <[email protected]>2022-12-31 11:17:59 -0500
commitf7f323657ac2b52ce5a6b3d49ca6a0cdb3320938 (patch)
tree34c54db15f09b99b573488c74271e345b5de740b /blog_admin
parent5c5493387bbcd6d0b025d395df77ae48af65508e (diff)
downloadthatcomputerscientist-f7f323657ac2b52ce5a6b3d49ca6a0cdb3320938.tar.xz
thatcomputerscientist-f7f323657ac2b52ce5a6b3d49ca6a0cdb3320938.zip
Some fixes and removed over engineered things, KISS baby
Diffstat (limited to 'blog_admin')
-rw-r--r--blog_admin/urls.py11
-rw-r--r--blog_admin/views.py189
2 files changed, 1 insertions, 199 deletions
diff --git a/blog_admin/urls.py b/blog_admin/urls.py
index 6d3d96b8..8d89e376 100644
--- a/blog_admin/urls.py
+++ b/blog_admin/urls.py
@@ -3,21 +3,10 @@ from . import views
app_name = 'blog-admin'
urlpatterns = [
- path('/users', views.users, name='users'),
- path('/users/new', views.new_user, name='new-user'),
- path('/users/search', views.users_search, name='users-search'),
- path('/users/<int:user_id>/edit', views.edit_user, name='edit-user'),
path('/posts', views.posts, name='posts'),
path('/posts/new', views.new_post, name='new-post'),
path('/posts/search', views.posts_search, name='posts-search'),
path('/posts/<str:slug>/edit', views.edit_post, name='edit-post'),
path('/posts/<str:slug>/publish', views.publish_post, name='publish-post'),
path('/posts/<str:slug>/unpublish', views.unpublish_post, name='unpublish-post'),
- path('/comments', views.comments, name='comments'),
- path('/categories', views.categories, name='categories'),
- path('/categories/new', views.new_category, name='new-category'),
- path('/categories/<int:category_id>/edit', views.edit_category, name='edit-category'),
- path('/categories/<int:category_id>/delete', views.edit_category, name='delete-category'),
- path('/tags', views.tags, name='tags'),
- path('/new', views.new, name='new'),
] \ No newline at end of file
diff --git a/blog_admin/views.py b/blog_admin/views.py
index 35ab6489..53d24107 100644
--- a/blog_admin/views.py
+++ b/blog_admin/views.py
@@ -29,13 +29,7 @@ def posts_search(request):
q = request.GET.get('q')
if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
if q:
- try:
- # Get the posts where title or body or author or category or tags or slug contains q or the post id is int(q)
- posts = Post.objects.filter(title__icontains=q) | Post.objects.filter(body__icontains=q) | Post.objects.filter(author__username__icontains=q) | Post.objects.filter(category__name__icontains=q) | Post.objects.filter(tags__name__icontains=q) | Post.objects.filter(slug__icontains=q) | Post.objects.filter(id = int(q))
- except:
- # Get the posts where title or body or author or category or tags or slug contains q
- posts = Post.objects.filter(title__icontains=q) | Post.objects.filter(body__icontains=q) | Post.objects.filter(author__username__icontains=q) | Post.objects.filter(category__name__icontains=q) | Post.objects.filter(tags__name__icontains=q) | Post.objects.filter(slug__icontains=q)
-
+ posts = Post.objects.filter(title__icontains=q)
return render(request, 'blog_admin/posts.html', { 'title': 'Search Results for "{}"'.format(q), 'posts': posts })
else:
return redirect('blog-admin:posts')
@@ -156,184 +150,3 @@ def unpublish_post(request, slug):
else:
return redirect('blog:home')
-def comments(request):
- pass
-
-def categories(request):
- if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
- page = request.GET.get('page') if request.GET.get('page') else 1
- try:
- page = int(page)
- except:
- page = 1
- categories = Category.objects.all()[(page-1)*50:page*50]
- num_pages = Category.objects.all().count() // 50 + 1
- url_to_render = 'blog_admin/categories.html?page={}'.format(page) if int(page) and int(page) > 1 else 'blog_admin/categories.html'
- return render(request, url_to_render, { 'title': 'Manage Categories', 'categories': categories, 'num_pages': num_pages, 'page': page })
- else:
- return redirect('blog:home')
-
-def new_category(request):
- if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
- if request.method == 'POST':
- name = request.POST.get('name')
- slug = request.POST.get('slug')
- description = request.POST.get('description') if request.POST.get('description') else ''
- if name and slug:
- try:
- category = Category.objects.create(name = name, slug = slug, description = description)
- messages.success(request, 'Category created successfully!')
- return redirect('blog-admin:categories')
- except Exception as e:
- messages.error(request, 'Error: {}'.format(e), extra_tags='new_category_create_error', data = { 'name': name, 'slug': slug, 'description': description })
- return redirect('blog-admin:new-category')
- else:
- messages.error(request, 'Error: All fields are required!', extra_tags='new_category_create_error', data = { 'name': name, 'slug': slug, 'description': description })
- return redirect('blog-admin:new-category')
- else:
- return render(request, 'blog_admin/new_category.html', { 'title': 'New Category' })
- else:
- return redirect('blog:home')
-
-def edit_category(request, slug):
- pass
-
-def delete_category(request, slug):
- pass
-
-def tags(request):
- if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
- page = request.GET.get('page') if request.GET.get('page') else 1
- try:
- page = int(page)
- except:
- page = 1
- tags = Tag.objects.all()[(page-1)*50:page*50]
- num_pages = Tag.objects.all().count() // 50 + 1
- # add post count to each tag
- for tag in tags:
- # post_count which contain this tag slug
- post_count = Post.objects.filter(tags__slug = tag.slug).count()
- tag.post_count = post_count
- url_to_render = 'blog_admin/tags.html?page={}'.format(page) if int(page) and int(page) > 1 else 'blog_admin/tags.html'
- return render(request, url_to_render, { 'title': 'Manage Tags', 'tags': tags, 'num_pages': num_pages, 'page': page })
- else:
- return redirect('blog:home')
-
-def new(request):
- pass
-
-def users(request):
- if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
- page = request.GET.get('page') if request.GET.get('page') else 1
- try:
- page = int(page)
- except:
- page = 1
- users = User.objects.filter(is_superuser=False)[(page-1)*50:page*50]
- num_pages = User.objects.filter(is_superuser=False).count() // 50 + 1
- 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', 'normal_users': users, 'num_pages': num_pages, 'page': page })
- else:
- return redirect('blog:home')
-
-def users_search(request):
- q = request.GET.get('q')
- if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
- if q:
- try:
- # Get the normal users where username or email or first_name or last_name contains q or the user id is int(q)
- users = User.objects.filter(is_superuser=False).filter(username__icontains=q) | User.objects.filter(is_superuser=False).filter(email__icontains=q) | User.objects.filter(is_superuser=False).filter(first_name__icontains=q) | User.objects.filter(is_superuser=False).filter(last_name__icontains=q) | User.objects.filter(is_superuser=False).filter(id = int(q))
- except:
- # Get the normal users where username or email or first_name or last_name contains q
- users = User.objects.filter(is_superuser=False).filter(username__icontains=q) | User.objects.filter(is_superuser=False).filter(email__icontains=q) | User.objects.filter(is_superuser=False).filter(first_name__icontains=q) | User.objects.filter(is_superuser=False).filter(last_name__icontains=q)
-
- return render(request, 'blog_admin/users.html', { 'title': 'Search Results for "{}"'.format(q), 'normal_users': users })
- else:
- return redirect('blog-admin:users')
- else:
- 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' })
- else:
- return redirect('blog:home')
-
-def edit_user(request, user_id):
- if request.user.is_authenticated and (request.user.is_superuser or request.user.is_staff):
- if request.method == 'POST':
- request_user = request.user
- user = User.objects.get(id=user_id)
- user.username = request.POST.get('username')
- user.email = request.POST.get('email')
- user.first_name = request.POST.get('first_name')
- user.last_name = request.POST.get('last_name')
- user.is_superuser = request.POST.get('is_superuser') == 'on' if request_user.is_superuser else user.is_superuser
- user.is_staff = request.POST.get('is_staff') == 'on' if request_user.is_superuser else user.is_staff
- user.is_active = True if request.POST.get('is_active') == 'on' else False
-
- # User Profile Data
- try:
- user_profile = UserProfile.objects.get(user=user)
- except:
- user_profile = UserProfile(user=user)
- user_profile.bio = request.POST.get('bio')
- user_profile.location = request.POST.get('location')
- user_profile.gravatar_email = request.POST.get('gravatar_email')
- user_profile.email_verified = True if request.POST.get('email_verified') == 'on' else False
-
- # Save the user
- try:
- user.save()
- user_profile.save()
- messages.success(request, 'User updated successfully!')
- return redirect('blog-admin:users')
- # maybe user name is taken
- except Exception as e:
- messages.error(request, 'Error: {}'.format(e), extra_tags='edit_user_update_error')
- return redirect('blog-admin:edit-user', user_id=user_id)
-
- else:
- user = User.objects.get(id=user_id)
- try:
- user_profile = UserProfile.objects.get(user=user)
- except:
- user_profile = None
- return render(request, 'blog_admin/edit_user.html', { 'title': 'Edit User', 'edit_user': user, 'edit_user_profile': user_profile })
- else:
- return redirect('blog:home') \ No newline at end of file