diff --git a/smoothschedule/schedule/serializers.py b/smoothschedule/schedule/serializers.py index 3cbe53c..81d73a5 100644 --- a/smoothschedule/schedule/serializers.py +++ b/smoothschedule/schedule/serializers.py @@ -632,7 +632,7 @@ class PluginTemplateListSerializer(serializers.ModelSerializer): 'install_count', 'rating_average', 'rating_count', 'created_at', 'updated_at', 'published_at', ] - read_only_fields = '__all__' + read_only_fields = fields # All fields are read-only for list view class PluginInstallationSerializer(serializers.ModelSerializer): diff --git a/smoothschedule/schedule/views.py b/smoothschedule/schedule/views.py index edc6ee4..4d21584 100644 --- a/smoothschedule/schedule/views.py +++ b/smoothschedule/schedule/views.py @@ -642,10 +642,11 @@ class PluginTemplateViewSet(viewsets.ModelViewSet): view_mode = self.request.query_params.get('view', 'marketplace') if view_mode == 'marketplace': - # Public marketplace - only approved public templates + # Public marketplace - platform official + approved public templates + from django.db.models import Q queryset = queryset.filter( - visibility=PluginTemplate.Visibility.PUBLIC, - is_approved=True + Q(visibility=PluginTemplate.Visibility.PLATFORM) | + Q(visibility=PluginTemplate.Visibility.PUBLIC, is_approved=True) ) elif view_mode == 'my_plugins': # User's own templates