2021-07-10 11:18:24 +02:00
|
|
|
from django.contrib import admin
|
|
|
|
from .models import Category, CTF, CTF_flags
|
|
|
|
|
|
|
|
admin.site.register(Category)
|
|
|
|
|
2021-10-21 15:02:02 +02:00
|
|
|
@admin.register(CTF_flags)
|
|
|
|
class ctf_flags(admin.ModelAdmin):
|
|
|
|
#list display
|
|
|
|
list_display = ['user', 'ctf', 'flag_date']
|
|
|
|
#list Filter
|
|
|
|
list_filter = ('ctf__category', 'ctf', 'user','flag_date')
|
|
|
|
# search list
|
|
|
|
search_fields = ['ctf__category__name', 'ctf__name', 'user__username']
|
|
|
|
|
2023-09-24 15:17:49 +02:00
|
|
|
def get_queryset(self, request):
|
|
|
|
qs = super().get_queryset(request)
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return qs
|
|
|
|
groups = list(request.user.groups.values_list('name', flat=True))
|
|
|
|
return qs.filter(event__name__in=groups)
|
|
|
|
|
|
|
|
def has_view_permission(self, request, obj=None):
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return True
|
|
|
|
if obj is not None:
|
|
|
|
return request.user.groups.filter(name=obj.event.name).exists()
|
|
|
|
return super().has_view_permission(request, obj)
|
|
|
|
|
|
|
|
def has_change_permission(self, request, obj=None):
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return True
|
|
|
|
if obj is not None:
|
|
|
|
return request.user.groups.filter(name=obj.event.name).exists()
|
|
|
|
return super().has_change_permission(request, obj)
|
|
|
|
|
|
|
|
def has_delete_permission(self, request, obj=None):
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return True
|
|
|
|
if obj is not None:
|
|
|
|
return request.user.groups.filter(name=obj.event.name).exists()
|
|
|
|
return super().has_delete_permission(request, obj)
|
|
|
|
|
2021-10-21 15:02:02 +02:00
|
|
|
@admin.register(CTF)
|
|
|
|
class ctf(admin.ModelAdmin):
|
|
|
|
#list display
|
2023-09-24 15:17:49 +02:00
|
|
|
list_display = ['name', 'event', 'category', 'points']
|
2021-10-21 15:02:02 +02:00
|
|
|
#list Filter
|
|
|
|
list_filter = ('category', 'event')
|
|
|
|
# search list
|
|
|
|
search_fields = ['category__name', 'name', 'author__username']
|
2023-09-24 15:17:49 +02:00
|
|
|
|
|
|
|
def get_queryset(self, request):
|
|
|
|
qs = super().get_queryset(request)
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return qs
|
|
|
|
groups = list(request.user.groups.values_list('name', flat=True))
|
|
|
|
return qs.filter(event__name__in=groups)
|
|
|
|
|
|
|
|
def has_view_permission(self, request, obj=None):
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return True
|
|
|
|
if obj is not None:
|
|
|
|
return request.user.groups.filter(name=obj.event.name).exists()
|
|
|
|
return super().has_view_permission(request, obj)
|
|
|
|
|
|
|
|
def has_change_permission(self, request, obj=None):
|
|
|
|
if request.user.is_superuser:
|
|
|
|
return True
|
|
|
|
if obj is not None:
|
|
|
|
return request.user.groups.filter(name=obj.event.name).exists()
|
|
|
|
return super().has_change_permission(request, obj)
|
|
|
|
|