This commit is contained in:
Markos Gogoulos
2025-12-24 17:28:12 +02:00
parent ed5cfa1a84
commit 295578dae2
22 changed files with 2345 additions and 1 deletions

42
lti/serializers.py Normal file
View File

@@ -0,0 +1,42 @@
"""
REST API Serializers for LTI
Currently minimal - can be expanded for API endpoints if needed
"""
from rest_framework import serializers
from .models import LTIPlatform, LTIResourceLink, LTIUserMapping
class LTIPlatformSerializer(serializers.ModelSerializer):
"""Serializer for LTI Platform"""
class Meta:
model = LTIPlatform
fields = ['id', 'name', 'platform_id', 'active', 'enable_nrps', 'enable_deep_linking']
read_only_fields = ['id']
class LTIResourceLinkSerializer(serializers.ModelSerializer):
"""Serializer for LTI Resource Link"""
platform_name = serializers.CharField(source='platform.name', read_only=True)
category_title = serializers.CharField(source='category.title', read_only=True)
class Meta:
model = LTIResourceLink
fields = ['id', 'platform', 'platform_name', 'context_id', 'context_title', 'category', 'category_title', 'launch_count', 'last_launch']
read_only_fields = ['id', 'launch_count', 'last_launch']
class LTIUserMappingSerializer(serializers.ModelSerializer):
"""Serializer for LTI User Mapping"""
username = serializers.CharField(source='user.username', read_only=True)
platform_name = serializers.CharField(source='platform.name', read_only=True)
class Meta:
model = LTIUserMapping
fields = ['id', 'platform', 'platform_name', 'lti_user_id', 'user', 'username', 'email', 'name', 'last_login']
read_only_fields = ['id', 'last_login']