Initial commit from ZIP
This commit is contained in:
commit
378d4692a9
454 files changed
+40367
No files matched your search
+94
@@ -0,0 +1,94 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from outbo.apps.core.serializers import PolymorphicSerializer
|
||||
from outbo.apps.organizations.models import (
|
||||
AgencyOrganization,
|
||||
ClientOrganization,
|
||||
SupplierOrganization,
|
||||
Brand,
|
||||
Category,
|
||||
Organization,
|
||||
)
|
||||
|
||||
|
||||
# Organizations
|
||||
class _BaseOrganizationSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
fields = (
|
||||
"id",
|
||||
"name",
|
||||
)
|
||||
|
||||
|
||||
class _OrganizationSerializer:
|
||||
class List(_BaseOrganizationSerializer):
|
||||
class Meta(_BaseOrganizationSerializer.Meta):
|
||||
model = Organization
|
||||
|
||||
|
||||
class _AgencyOrganizationSerializer:
|
||||
class List(_BaseOrganizationSerializer):
|
||||
class Meta(_BaseOrganizationSerializer.Meta):
|
||||
model = AgencyOrganization
|
||||
|
||||
|
||||
class _ClientOrganizationSerializer:
|
||||
class List(_BaseOrganizationSerializer):
|
||||
class Meta(_BaseOrganizationSerializer.Meta):
|
||||
model = ClientOrganization
|
||||
|
||||
|
||||
class _SupplierOrganizationSerializer:
|
||||
class List(_BaseOrganizationSerializer):
|
||||
class Meta(_BaseOrganizationSerializer.Meta):
|
||||
model = SupplierOrganization
|
||||
|
||||
|
||||
class _BaseOrganizationPolymorphicSerializer(PolymorphicSerializer):
|
||||
model_serializer_mapping = {
|
||||
AgencyOrganization: _AgencyOrganizationSerializer.List,
|
||||
ClientOrganization: _ClientOrganizationSerializer.List,
|
||||
SupplierOrganization: _SupplierOrganizationSerializer.List,
|
||||
Organization: _OrganizationSerializer.List,
|
||||
}
|
||||
|
||||
|
||||
class OrganizationSerializer:
|
||||
class Retrieve(_BaseOrganizationPolymorphicSerializer):
|
||||
pass
|
||||
|
||||
class List(_BaseOrganizationPolymorphicSerializer):
|
||||
pass
|
||||
|
||||
|
||||
# Brands
|
||||
class _BaseBrandSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Brand
|
||||
fields = ["name"]
|
||||
|
||||
|
||||
class BrandSerializer(serializers.ModelSerializer):
|
||||
# Create & Update not needed
|
||||
class Retrieve(_BaseBrandSerializer):
|
||||
pass
|
||||
|
||||
class List(_BaseBrandSerializer):
|
||||
class Meta(_BaseBrandSerializer.Meta):
|
||||
fields = ["id"] + _BaseBrandSerializer.Meta.fields
|
||||
|
||||
|
||||
# Categories
|
||||
class _BaseCategorySerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Category
|
||||
fields = ["name"]
|
||||
|
||||
|
||||
class CategorySerializer:
|
||||
class Retrieve(_BaseCategorySerializer):
|
||||
pass
|
||||
|
||||
class List(_BaseCategorySerializer):
|
||||
class Meta(_BaseCategorySerializer.Meta):
|
||||
fields = ["id"] + _BaseCategorySerializer.Meta.fields
|
||||
Reference in new issue
Block a user