init
This commit is contained in:
@@ -32,14 +32,6 @@ class UserAdmin(BaseUserAdmin):
|
||||
return filesizeformat(obj.size_used)
|
||||
size_used.short_description = "Size used"
|
||||
|
||||
def save_formset(self, request, form, formset, change):
|
||||
print("save_formset")
|
||||
return super().save_formset(request, form, formset, change)
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
print("save_model")
|
||||
return super().save_model(request, obj, form, change)
|
||||
|
||||
|
||||
|
||||
@admin.register(Invitation)
|
||||
|
||||
@@ -8,6 +8,7 @@ from rest_framework.viewsets import ModelViewSet, GenericViewSet
|
||||
from rest_framework import mixins
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
import shutil
|
||||
|
||||
from .models import User, FriendRequest, Invitation
|
||||
from .forms import RegisterForm
|
||||
@@ -92,6 +93,29 @@ class UserViewSet(mixins.RetrieveModelMixin,
|
||||
return Response({"success": True, "message": f"The friend {friend.username} successfully removed"})
|
||||
return Response({"success": False, "message": f"error"})
|
||||
|
||||
@action(methods=["get"], detail=False)
|
||||
def user_stats(self, request):
|
||||
stats = User.objects.filter(id=request.user.id).aggregate(
|
||||
total_size=Sum("torrents__size"),
|
||||
total_torrent=Count("torrents"),
|
||||
total_shared_torrent=Count("torrents_shares")
|
||||
)
|
||||
|
||||
disk_usage = shutil.disk_usage("/")
|
||||
|
||||
return Response({
|
||||
"torrents_size": stats["total_size"],
|
||||
"torrents_len": stats["total_torrent"],
|
||||
"torrent_len_shared": stats["total_shared_torrent"],
|
||||
"torrents_total_len": stats["total_torrent"] + stats["total_shared_torrent"],
|
||||
"user_max_size": request.user.max_size,
|
||||
"user_usage_percent": (stats["total_size"] / request.user.max_size) * 100,
|
||||
"disk_total": disk_usage.total,
|
||||
"disk_used": disk_usage.used,
|
||||
"disk_free": disk_usage.free,
|
||||
"disk_usage_percent": (disk_usage.used / disk_usage.total) * 100,
|
||||
})
|
||||
|
||||
|
||||
class FriendRequestViewSet(mixins.ListModelMixin,
|
||||
mixins.DestroyModelMixin,
|
||||
|
||||
Reference in New Issue
Block a user