refactor stage completed - with migrations
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from .models import Keywords, Clusters, ContentIdeas
|
||||
from igny8_core.auth.models import SeedKeyword
|
||||
from igny8_core.auth.serializers import SeedKeywordSerializer
|
||||
from igny8_core.business.site_building.models import SiteBlueprintTaxonomy
|
||||
|
||||
|
||||
class KeywordSerializer(serializers.ModelSerializer):
|
||||
@@ -27,6 +29,14 @@ class KeywordSerializer(serializers.ModelSerializer):
|
||||
site_id = serializers.IntegerField(write_only=True, required=False)
|
||||
sector_id = serializers.IntegerField(write_only=True, required=False)
|
||||
|
||||
attribute_values = serializers.ListField(
|
||||
child=serializers.CharField(),
|
||||
required=False,
|
||||
allow_empty=True,
|
||||
default=list,
|
||||
help_text="Optional attribute metadata (e.g., product specs, service modifiers)",
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Keywords
|
||||
fields = [
|
||||
@@ -43,6 +53,7 @@ class KeywordSerializer(serializers.ModelSerializer):
|
||||
'cluster_name',
|
||||
'sector_name',
|
||||
'status',
|
||||
'attribute_values',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'site_id',
|
||||
@@ -113,6 +124,8 @@ class ClusterSerializer(serializers.ModelSerializer):
|
||||
site_id = serializers.IntegerField(write_only=True, required=False)
|
||||
sector_id = serializers.IntegerField(write_only=True, required=False)
|
||||
|
||||
context_type_display = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Clusters
|
||||
fields = [
|
||||
@@ -123,6 +136,9 @@ class ClusterSerializer(serializers.ModelSerializer):
|
||||
'volume',
|
||||
'mapped_pages',
|
||||
'status',
|
||||
'context_type',
|
||||
'context_type_display',
|
||||
'dimension_meta',
|
||||
'sector_name',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
@@ -142,6 +158,9 @@ class ClusterSerializer(serializers.ModelSerializer):
|
||||
except Sector.DoesNotExist:
|
||||
return None
|
||||
return None
|
||||
|
||||
def get_context_type_display(self, obj):
|
||||
return obj.get_context_type_display()
|
||||
|
||||
def validate_name(self, value):
|
||||
"""Ensure cluster name is unique within account"""
|
||||
@@ -153,6 +172,7 @@ class ContentIdeasSerializer(serializers.ModelSerializer):
|
||||
"""Serializer for ContentIdeas model"""
|
||||
keyword_cluster_name = serializers.SerializerMethodField()
|
||||
sector_name = serializers.SerializerMethodField()
|
||||
taxonomy_name = serializers.SerializerMethodField()
|
||||
site_id = serializers.IntegerField(write_only=True, required=False)
|
||||
sector_id = serializers.IntegerField(write_only=True, required=False)
|
||||
|
||||
@@ -167,9 +187,13 @@ class ContentIdeasSerializer(serializers.ModelSerializer):
|
||||
'target_keywords',
|
||||
'keyword_cluster_id',
|
||||
'keyword_cluster_name',
|
||||
'taxonomy_id',
|
||||
'taxonomy_name',
|
||||
'sector_name',
|
||||
'status',
|
||||
'estimated_word_count',
|
||||
'site_entity_type',
|
||||
'cluster_role',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'site_id',
|
||||
@@ -198,3 +222,12 @@ class ContentIdeasSerializer(serializers.ModelSerializer):
|
||||
except Sector.DoesNotExist:
|
||||
return None
|
||||
return None
|
||||
|
||||
def get_taxonomy_name(self, obj):
|
||||
if obj.taxonomy_id:
|
||||
try:
|
||||
taxonomy = SiteBlueprintTaxonomy.objects.get(id=obj.taxonomy_id)
|
||||
return taxonomy.name
|
||||
except SiteBlueprintTaxonomy.DoesNotExist:
|
||||
return None
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user