From b70c05efc476148d297ab5d1f146e8161a0e65d9 Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Sun, 22 Feb 2026 09:39:26 +0330 Subject: [PATCH] Refactor Hadis and Transmitter serializers to remove light color code - Removed `light_color_code` from the Hadis and Transmitter serializers to streamline the API response. - Updated the `ColorPaletteMixin` to simplify color management by eliminating the light color property, focusing on the main color code. - Adjusted the serializers to reflect these changes, enhancing clarity and reducing redundancy in color representation. --- apps/hadis/serializers/hadis.py | 13 +------------ utils/mixins.py | 26 +++++++++----------------- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/apps/hadis/serializers/hadis.py b/apps/hadis/serializers/hadis.py index 5ccd6dd..f22222c 100644 --- a/apps/hadis/serializers/hadis.py +++ b/apps/hadis/serializers/hadis.py @@ -65,7 +65,6 @@ class HadisSyncSerializer(serializers.ModelSerializer): 'title': get_localized_text(obj.hadis_status.title, request), 'color': obj.hadis_status.color, 'main_color_code': obj.hadis_status.main_color_code, - 'light_color_code': obj.hadis_status.light_color_code, } # tags (already prefetched) @@ -233,7 +232,6 @@ class HadisListSerializer(serializers.ModelSerializer): 'title': title, 'color': obj.hadis_status.color, 'main_color_code': obj.hadis_status.main_color_code, - 'light_color_code': obj.hadis_status.light_color_code, } def get_bookmark(self, obj): @@ -252,10 +250,9 @@ class HadisStatusSerializer(serializers.ModelSerializer): title = LocalizedField() description = LocalizedField() main_color_code = serializers.ReadOnlyField() - light_color_code = serializers.ReadOnlyField() class Meta: model = HadisStatus - fields = ['id', 'title', 'color', 'main_color_code', 'light_color_code', 'description'] + fields = ['id', 'title', 'color', 'main_color_code', 'description'] class HadisTagSerializer(serializers.ModelSerializer): @@ -290,8 +287,6 @@ class TransmitterSerializer(serializers.ModelSerializer): 'title': get_localized_text(obj.reliability.title, self.context.get('request')), 'color': obj.reliability.color, 'main_color_code': obj.reliability.main_color_code, - 'light_color_code': obj.reliability.light_color_code, - } return None @@ -327,7 +322,6 @@ class TransmitterOpinionSerializer(serializers.ModelSerializer): 'slug': obj.status.slug, 'color': obj.status.color, 'main_color_code': obj.status.main_color_code, - 'light_color_code': obj.status.light_color_code, } return None @@ -374,8 +368,6 @@ class TransmitterDetailSerializer(serializers.ModelSerializer): 'title': get_localized_text(obj.reliability.title, self.context.get('request')), 'color': obj.reliability.color, 'main_color_code': obj.reliability.main_color_code, - 'light_color_code': obj.reliability.light_color_code, - } return None @@ -405,7 +397,6 @@ class TransmitterSyncSerializer(serializers.ModelSerializer): 'title': get_localized_text(obj.reliability.title, self.context.get('request')), 'color': obj.reliability.color, 'main_color_code': obj.reliability.main_color_code, - 'light_color_code': obj.reliability.light_color_code, } else : r= None @@ -445,7 +436,6 @@ class TransmitterSyncSerializer(serializers.ModelSerializer): 'slug': opinion.status.slug, 'color': opinion.status.color, 'main_color_code': opinion.status.main_color_code, - 'light_color_code': opinion.status.light_color_code, } if opinion.status else None, 'created_at': opinion.created_at.isoformat() if opinion.created_at else None, 'updated_at': opinion.updated_at.isoformat() if opinion.updated_at else None, @@ -498,7 +488,6 @@ class HadisTransmitterSerializer(serializers.ModelSerializer): 'slug': obj.status.slug, 'color': obj.status.color, 'main_color_code': obj.status.main_color_code, - 'light_color_code': obj.status.light_color_code, } return None diff --git a/utils/mixins.py b/utils/mixins.py index 5824158..fd3cae0 100644 --- a/utils/mixins.py +++ b/utils/mixins.py @@ -18,13 +18,13 @@ class ColorPaletteMixin(models.Model): and hex code properties to any model that inherits it. """ COLOR_PALETTE = { - 'red': {'main': '#D33A3A', 'light': '#FBEBEB'}, - 'green': {'main': '#1DAC43', 'light': '#E8F7EC'}, - 'blue': {'main': '#5172E1', 'light': '#FAFBFC'}, - 'yellow': {'main': '#EDC130', 'light': '#FCF8EA'}, - 'orange': {'main': '#E67E22', 'light': '#FDF1E6'}, - 'purple': {'main': '#7C5CC4', 'light': '#F2EDFA'}, - 'gray': {'main': '#374151', 'light': '#EEEFF2'}, + 'red': '#D33A3A', + 'green': '#1DAC43', + 'blue': '#5172E1', + 'yellow': '#EDC130', + 'orange': '#E67E22', + 'purple': '#7C5CC4', + 'gray': '#374151', } color = models.CharField( @@ -35,16 +35,8 @@ class ColorPaletteMixin(models.Model): ) class Meta: - abstract = True # Tells Django NOT to create a database table for this class - - @property - def color_hashes(self): - return self.COLOR_PALETTE.get(self.color, {'main': '#000000', 'light': '#FFFFFF'}) + abstract = True @property def main_color_code(self): - return self.color_hashes['main'] - - @property - def light_color_code(self): - return self.color_hashes['light'] \ No newline at end of file + return self.COLOR_PALETTE.get(self.color, '#000000') \ No newline at end of file