fix: Include platform plugins in marketplace and fix serializer

Changes:
1. Updated PluginTemplateViewSet.get_queryset() to include PLATFORM
   visibility plugins in marketplace view alongside approved PUBLIC plugins
2. Fixed PluginTemplateListSerializer read_only_fields from string '__all__'
   to proper list reference

Platform plugins are now visible in the marketplace API:
- 6 platform-created plugins seeded via seed_platform_plugins command
- Categories: EMAIL, REPORTS, CUSTOMER, BOOKING
- All marked as visibility=PLATFORM, is_approved=True

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
poduck
2025-11-28 21:50:22 -05:00
parent 61f43375b9
commit 200b7f7930
2 changed files with 5 additions and 4 deletions

View File

@@ -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):

View File

@@ -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