annoucment logic implemented, fixing looks
This commit is contained in:
@@ -35,6 +35,8 @@ from .models import (
|
||||
slugify_tag,
|
||||
)
|
||||
from .storage import delete_file_index, move_file_index, refresh_file_index, store_temp_file
|
||||
from announcements.models import Notification
|
||||
from announcements.notifications import notify_project_change
|
||||
from .zips import (
|
||||
inject_animationframework,
|
||||
parse_mods_manifest,
|
||||
@@ -425,6 +427,12 @@ def project_detail(request, slug):
|
||||
comments = project.comments.select_related('user').order_by('-created_at')[:200]
|
||||
can_comment = request.user.is_authenticated
|
||||
|
||||
# Visiting the UGC page marks the user's personal notifications for it read.
|
||||
if request.user.is_authenticated:
|
||||
Notification.objects.filter(
|
||||
user=request.user, project=project, read=False,
|
||||
).update(read=True)
|
||||
|
||||
autoload_plugins_json = ''
|
||||
if plugins_manifest:
|
||||
members = [
|
||||
@@ -1219,6 +1227,10 @@ def project_edit(request, slug):
|
||||
project.sync_creator_tags(actor=request.user)
|
||||
_sync_auto_tags(project, request.user)
|
||||
messages.success(request, 'Project updated.')
|
||||
notify_project_change(
|
||||
project, request.user, 'edit',
|
||||
f'{request.user.username} edited {project.title}',
|
||||
)
|
||||
return redirect('library:project_detail', slug=project.slug)
|
||||
else:
|
||||
form = ProjectForm(initial={
|
||||
@@ -1311,6 +1323,10 @@ def version_upload(request, slug):
|
||||
if missing_animation_id and project.category == 'non_pack':
|
||||
messages.warning(request, ANIMATION_API_WARNING)
|
||||
messages.success(request, f'Version {form.cleaned_data["version_name"]} uploaded.')
|
||||
notify_project_change(
|
||||
project, request.user, 'version',
|
||||
f'{request.user.username} uploaded version {form.cleaned_data["version_name"]} on {project.title}',
|
||||
)
|
||||
return redirect('library:project_detail', slug=project.slug)
|
||||
|
||||
version_files = _pending_kind(request.user, 'version')
|
||||
@@ -1422,6 +1438,10 @@ def asset_upload(request, slug):
|
||||
temp.save(update_fields=['status'])
|
||||
count += 1
|
||||
messages.success(request, f'{count} media file{"s" if count != 1 else ""} added to the gallery.')
|
||||
notify_project_change(
|
||||
project, request.user, 'asset',
|
||||
f'{request.user.username} added {count} new media file{"s" if count != 1 else ""} to {project.title}',
|
||||
)
|
||||
return redirect('library:project_detail', slug=project.slug)
|
||||
|
||||
return render(request, 'library/asset_upload.html', {
|
||||
@@ -1581,6 +1601,10 @@ def add_comment(request, slug):
|
||||
body = request.POST.get('body', '').strip()
|
||||
if body:
|
||||
Comment.objects.create(project=project, user=request.user, body=body)
|
||||
notify_project_change(
|
||||
project, request.user, 'comment',
|
||||
f'{request.user.username} commented on {project.title}',
|
||||
)
|
||||
messages.success(request, 'Comment added.')
|
||||
else:
|
||||
messages.error(request, 'Comment cannot be empty.')
|
||||
|
||||
Reference in New Issue
Block a user