Files
ACORE/apps/tasks/admin.py
T
lokses 03019898b0 reports: КЕП-подпись PDF отчётов; задачи: загрузка вложений.
Добавлена офлайн/EndUser-подпись «ознакомлен и принял в работу» для документов отчётов и файловые вложения к задачам через Nextcloud.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 21:13:28 +03:00

56 lines
1.7 KiB
Python

from django.contrib import admin
from unfold.admin import ModelAdmin, TabularInline
from apps.tasks.models import Task, TaskAttachment, TaskChecklistItem, TaskComment
class TaskCommentInline(TabularInline):
model = TaskComment
extra = 0
readonly_fields = ['author', 'created_at']
fields = ['author', 'text', 'created_at']
class TaskChecklistItemInline(TabularInline):
model = TaskChecklistItem
extra = 0
readonly_fields = ['done_by', 'done_at']
fields = ['order', 'label', 'is_done', 'done_by', 'done_at']
ordering = ['order', 'id']
class TaskAttachmentInline(TabularInline):
model = TaskAttachment
extra = 0
readonly_fields = [
'original_name', 'stored_name', 'content_type', 'size',
'uploaded_by', 'created_at',
]
fields = [
'original_name', 'stored_name', 'size', 'uploaded_by', 'created_at',
]
can_delete = True
@admin.register(Task)
class TaskAdmin(ModelAdmin):
list_display = ['title', 'status', 'priority', 'due_date', 'creator', 'created_at']
list_filter = ['status', 'priority']
search_fields = ['title', 'description']
list_select_related = ['creator']
filter_horizontal = ['responsible', 'co_executors', 'observers']
ordering = ['-created_at']
inlines = [TaskChecklistItemInline, TaskCommentInline, TaskAttachmentInline]
def save_model(self, request, obj, form, change):
if not change and not obj.creator:
obj.creator = request.user
super().save_model(request, obj, form, change)
@admin.register(TaskComment)
class TaskCommentAdmin(ModelAdmin):
list_display = ['task', 'author', 'text', 'created_at']
search_fields = ['text']
list_select_related = ['task', 'author']