- Add Asset and CardLayer model updates - Create asset upload API endpoints - Add AssetUploadDialog component - Create card layout algorithms - Implement symmetry generation utils - Add template configurations
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
from django.conf import settings
|
|
from .models import Project, Asset, CardLayer
|
|
|
|
|
|
class ProjectSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Project
|
|
fields = '__all__'
|
|
|
|
|
|
class AssetSerializer(serializers.ModelSerializer):
|
|
file_url = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Asset
|
|
fields = '__all__'
|
|
|
|
def get_file_url(self, obj):
|
|
if obj.file_path:
|
|
request = self.context.get('request')
|
|
if request:
|
|
return request.build_absolute_uri(f'{settings.MEDIA_URL}{obj.file_path}')
|
|
return f'{settings.MEDIA_URL}{obj.file_path}'
|
|
return None
|
|
|
|
|
|
class CardLayerSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = CardLayer
|
|
fields = '__all__'
|
|
|
|
|
|
class ProjectDetailSerializer(serializers.ModelSerializer):
|
|
assets = AssetSerializer(many=True, read_only=True)
|
|
layers = CardLayerSerializer(many=True, read_only=True)
|
|
|
|
class Meta:
|
|
model = Project
|
|
fields = '__all__' |