03019898b0
Добавлена офлайн/EndUser-подпись «ознакомлен и принял в работу» для документов отчётов и файловые вложения к задачам через Nextcloud. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
1.7 KiB
Python
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']
|