feat: add community contribution ranks
This commit is contained in:
@@ -100,23 +100,41 @@ class PostAdmin(BaseModelAdmin, ImportExportModelAdmin):
|
||||
actions = BaseModelAdmin.actions + ['submit_for_review', 'request_changes', 'make_published', 'make_draft', 'make_featured', 'restore_posts']
|
||||
|
||||
def submit_for_review(self, request, queryset):
|
||||
queryset.update(status='submitted')
|
||||
self.message_user(request, f"Submitted {queryset.count()} posts for review.")
|
||||
count = 0
|
||||
for post in queryset:
|
||||
post.status = Post.StatusChoices.SUBMITTED
|
||||
post.save(update_fields=["status", "updated_at"])
|
||||
count += 1
|
||||
self.message_user(request, f"Submitted {count} posts for review.")
|
||||
submit_for_review.short_description = "Submit selected posts for review"
|
||||
|
||||
def request_changes(self, request, queryset):
|
||||
queryset.update(status='changes_requested', reviewed_by=request.user)
|
||||
self.message_user(request, f"Requested changes on {queryset.count()} posts.")
|
||||
count = 0
|
||||
for post in queryset:
|
||||
post.status = Post.StatusChoices.CHANGES_REQUESTED
|
||||
post.reviewed_by = request.user
|
||||
post.save(update_fields=["status", "reviewed_by", "updated_at"])
|
||||
count += 1
|
||||
self.message_user(request, f"Requested changes on {count} posts.")
|
||||
request_changes.short_description = "Request changes on selected posts"
|
||||
|
||||
def make_published(self, request, queryset):
|
||||
queryset.update(status='published', published_by=request.user)
|
||||
self.message_user(request, f"Published {queryset.count()} posts.")
|
||||
count = 0
|
||||
for post in queryset:
|
||||
post.status = Post.StatusChoices.PUBLISHED
|
||||
post.published_by = request.user
|
||||
post.save(update_fields=["status", "published_by", "published_at", "updated_at"])
|
||||
count += 1
|
||||
self.message_user(request, f"Published {count} posts.")
|
||||
make_published.short_description = "Mark selected posts as published"
|
||||
|
||||
def make_draft(self, request, queryset):
|
||||
queryset.update(status='draft')
|
||||
self.message_user(request, f"Marked {queryset.count()} posts as draft.")
|
||||
count = 0
|
||||
for post in queryset:
|
||||
post.status = Post.StatusChoices.DRAFT
|
||||
post.save(update_fields=["status", "updated_at"])
|
||||
count += 1
|
||||
self.message_user(request, f"Marked {count} posts as draft.")
|
||||
make_draft.short_description = "Mark selected posts as draft"
|
||||
|
||||
def make_featured(self, request, queryset):
|
||||
@@ -156,8 +174,19 @@ class CommentAdmin(BaseModelAdmin):
|
||||
content_preview.short_description = 'Content Preview'
|
||||
|
||||
def approve_comments(self, request, queryset):
|
||||
queryset.update(is_approved=True, is_hidden=False, hidden_by=None, hidden_at=None, moderation_note='')
|
||||
self.message_user(request, f"Approved {queryset.count()} comments.")
|
||||
count = 0
|
||||
for comment in queryset:
|
||||
comment.is_approved = True
|
||||
comment.is_hidden = False
|
||||
comment.hidden_by = None
|
||||
comment.hidden_at = None
|
||||
comment.moderation_note = ""
|
||||
comment.save(update_fields=[
|
||||
"is_approved", "is_hidden", "hidden_by", "hidden_at",
|
||||
"moderation_note", "updated_at",
|
||||
])
|
||||
count += 1
|
||||
self.message_user(request, f"Approved {count} comments.")
|
||||
approve_comments.short_description = "Approve selected comments"
|
||||
|
||||
def hide_comments(self, request, queryset):
|
||||
|
||||
Reference in New Issue
Block a user