implement classes for tracking task status
This commit is contained in:
parent
865f54ab67
commit
59783e986d
4 changed files with 455 additions and 17 deletions
|
@ -4,9 +4,12 @@ from django.contrib import admin
|
|||
|
||||
from .models import (
|
||||
AdditionalGroup,
|
||||
DeleteTaskResult,
|
||||
Group,
|
||||
GroupTaskResult,
|
||||
Shadow,
|
||||
User,
|
||||
UserTaskResult,
|
||||
)
|
||||
|
||||
PASSWORD_MISMATCH_ERROR = _("Passwords don't match")
|
||||
|
@ -22,6 +25,30 @@ class ShadowInline(admin.TabularInline):
|
|||
can_delete = False
|
||||
|
||||
|
||||
class TaskResultInline(admin.TabularInline):
|
||||
can_delete = False
|
||||
extra = 0
|
||||
readonly_fields = ['task_uuid', 'task_name', 'is_finished', 'is_success',
|
||||
'state', 'result_body']
|
||||
|
||||
def get_queryset(self, request):
|
||||
qs = super(TaskResultInline, self).get_queryset(request)
|
||||
for entry in qs:
|
||||
entry.update_taskstatus()
|
||||
return qs
|
||||
|
||||
def has_add_permission(self, request, obj=None):
|
||||
return False
|
||||
|
||||
|
||||
class UserTaskResultInline(TaskResultInline):
|
||||
model = UserTaskResult
|
||||
|
||||
|
||||
class GroupTaskResultInline(TaskResultInline):
|
||||
model = GroupTaskResult
|
||||
|
||||
|
||||
class UserCreationForm(forms.ModelForm):
|
||||
"""
|
||||
A form for creating system users.
|
||||
|
@ -61,7 +88,7 @@ class UserCreationForm(forms.ModelForm):
|
|||
|
||||
|
||||
class UserAdmin(admin.ModelAdmin):
|
||||
inlines = [AdditionalGroupInline, ShadowInline]
|
||||
inlines = [AdditionalGroupInline, ShadowInline, UserTaskResultInline]
|
||||
readonly_fields = ['uid']
|
||||
add_form = UserCreationForm
|
||||
|
||||
|
@ -91,5 +118,31 @@ class UserAdmin(admin.ModelAdmin):
|
|||
return super(UserAdmin, self).get_inline_instances(request, obj)
|
||||
|
||||
|
||||
admin.site.register(Group)
|
||||
class GroupAdmin(admin.ModelAdmin):
|
||||
inlines = [GroupTaskResultInline]
|
||||
|
||||
def get_inline_instances(self, request, obj=None):
|
||||
if obj is None:
|
||||
return []
|
||||
return super(GroupAdmin, self).get_inline_instances(request, obj)
|
||||
|
||||
|
||||
class DeleteTaskResultAdmin(admin.ModelAdmin):
|
||||
readonly_fields = ['task_uuid', 'task_name', 'modeltype', 'modelname',
|
||||
'is_finished', 'is_success', 'state', 'result_body']
|
||||
list_display = ('task_uuid', 'task_name', 'modeltype', 'modelname',
|
||||
'is_finished', 'state')
|
||||
|
||||
def has_add_permission(self, request, obj=None):
|
||||
return False
|
||||
|
||||
def get_queryset(self, request):
|
||||
qs = super(DeleteTaskResultAdmin, self).get_queryset(request)
|
||||
for entry in qs:
|
||||
entry.update_taskstatus()
|
||||
return qs
|
||||
|
||||
|
||||
admin.site.register(Group, GroupAdmin)
|
||||
admin.site.register(User, UserAdmin)
|
||||
admin.site.register(DeleteTaskResult, DeleteTaskResultAdmin)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue