Skip to content
Snippets Groups Projects
Commit 28f508ea authored by Rafael László's avatar Rafael László :speech_balloon:
Browse files

get summary of bits

parent a9517512
Branches
Tags
1 merge request!2Dev
...@@ -127,31 +127,19 @@ class ProfileSerializer_Staff(serializers.ModelSerializer): ...@@ -127,31 +127,19 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
class MonitoringSerializer(serializers.ModelSerializer): class MonitoringSerializer(serializers.ModelSerializer):
full_name = serializers.SerializerMethodField()
email = serializers.SerializerMethodField()
bits = serializers.SerializerMethodField() bits = serializers.SerializerMethodField()
class Meta: class Meta:
model = models.Profile model = models.Profile
read_only_fields = ( read_only_fields = (
'id', 'id',
'full_name',
'email',
'bits', 'bits',
) )
fields = ( fields = (
'id', 'id',
'full_name',
'email',
'bits', 'bits',
) )
def get_full_name(self, obj):
return obj.full_name
def get_email(self, obj):
return obj.user.email
def get_bits(self, obj): def get_bits(self, obj):
if obj.homework_bits is None: if obj.homework_bits is None:
return obj.events_visited return obj.events_visited
......
...@@ -3,7 +3,15 @@ from . import views ...@@ -3,7 +3,15 @@ from . import views
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'profiles', views.ProfileViewSet, base_name='profile') router.register(
router.register(r'monitoring/profiles', views.MonitorinViewSet, base_name='monitoring') r'profiles',
views.ProfileViewSet,
base_name='profile'
)
router.register(
r'monitoring/profiles',
views.MonitorinViewSet,
base_name='monitoring'
)
urlpatterns = router.urls urlpatterns = router.urls
...@@ -5,6 +5,8 @@ from rest_framework.decorators import action ...@@ -5,6 +5,8 @@ from rest_framework.decorators import action
from common.permissions import IsSafeOrPatch from common.permissions import IsSafeOrPatch
from rest_framework_api_key.permissions import HasAPIKey from rest_framework_api_key.permissions import HasAPIKey
from django.db.models import Sum
from . import models from . import models
from . import serializers from . import serializers
...@@ -16,6 +18,14 @@ class MonitorinViewSet(viewsets.ModelViewSet): ...@@ -16,6 +18,14 @@ class MonitorinViewSet(viewsets.ModelViewSet):
def get_queryset(self): def get_queryset(self):
return models.Profile.objects.filter(role='Student') return models.Profile.objects.filter(role='Student')
@action(detail=False)
def totalbits(self, request):
profiles = models.Profile.objects.filter(role='Student')
bits = map(lambda item: serializers.MonitoringSerializer(item).data['bits'], profiles)
return Response({
'sum': sum(bits)
})
class ProfileViewSet(viewsets.ModelViewSet): class ProfileViewSet(viewsets.ModelViewSet):
serializer_class = serializers.ProfileSerializer_User serializer_class = serializers.ProfileSerializer_User
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment