Browse Source

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.
master
Mohsen Taba 3 months ago
parent
commit
b70c05efc4
  1. 13
      apps/hadis/serializers/hadis.py
  2. 26
      utils/mixins.py

13
apps/hadis/serializers/hadis.py

@ -65,7 +65,6 @@ class HadisSyncSerializer(serializers.ModelSerializer):
'title': get_localized_text(obj.hadis_status.title, request), 'title': get_localized_text(obj.hadis_status.title, request),
'color': obj.hadis_status.color, 'color': obj.hadis_status.color,
'main_color_code': obj.hadis_status.main_color_code, 'main_color_code': obj.hadis_status.main_color_code,
'light_color_code': obj.hadis_status.light_color_code,
} }
# tags (already prefetched) # tags (already prefetched)
@ -233,7 +232,6 @@ class HadisListSerializer(serializers.ModelSerializer):
'title': title, 'title': title,
'color': obj.hadis_status.color, 'color': obj.hadis_status.color,
'main_color_code': obj.hadis_status.main_color_code, 'main_color_code': obj.hadis_status.main_color_code,
'light_color_code': obj.hadis_status.light_color_code,
} }
def get_bookmark(self, obj): def get_bookmark(self, obj):
@ -252,10 +250,9 @@ class HadisStatusSerializer(serializers.ModelSerializer):
title = LocalizedField() title = LocalizedField()
description = LocalizedField() description = LocalizedField()
main_color_code = serializers.ReadOnlyField() main_color_code = serializers.ReadOnlyField()
light_color_code = serializers.ReadOnlyField()
class Meta: class Meta:
model = HadisStatus 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): class HadisTagSerializer(serializers.ModelSerializer):
@ -290,8 +287,6 @@ class TransmitterSerializer(serializers.ModelSerializer):
'title': get_localized_text(obj.reliability.title, self.context.get('request')), 'title': get_localized_text(obj.reliability.title, self.context.get('request')),
'color': obj.reliability.color, 'color': obj.reliability.color,
'main_color_code': obj.reliability.main_color_code, 'main_color_code': obj.reliability.main_color_code,
'light_color_code': obj.reliability.light_color_code,
} }
return None return None
@ -327,7 +322,6 @@ class TransmitterOpinionSerializer(serializers.ModelSerializer):
'slug': obj.status.slug, 'slug': obj.status.slug,
'color': obj.status.color, 'color': obj.status.color,
'main_color_code': obj.status.main_color_code, 'main_color_code': obj.status.main_color_code,
'light_color_code': obj.status.light_color_code,
} }
return None return None
@ -374,8 +368,6 @@ class TransmitterDetailSerializer(serializers.ModelSerializer):
'title': get_localized_text(obj.reliability.title, self.context.get('request')), 'title': get_localized_text(obj.reliability.title, self.context.get('request')),
'color': obj.reliability.color, 'color': obj.reliability.color,
'main_color_code': obj.reliability.main_color_code, 'main_color_code': obj.reliability.main_color_code,
'light_color_code': obj.reliability.light_color_code,
} }
return None return None
@ -405,7 +397,6 @@ class TransmitterSyncSerializer(serializers.ModelSerializer):
'title': get_localized_text(obj.reliability.title, self.context.get('request')), 'title': get_localized_text(obj.reliability.title, self.context.get('request')),
'color': obj.reliability.color, 'color': obj.reliability.color,
'main_color_code': obj.reliability.main_color_code, 'main_color_code': obj.reliability.main_color_code,
'light_color_code': obj.reliability.light_color_code,
} }
else : else :
r= None r= None
@ -445,7 +436,6 @@ class TransmitterSyncSerializer(serializers.ModelSerializer):
'slug': opinion.status.slug, 'slug': opinion.status.slug,
'color': opinion.status.color, 'color': opinion.status.color,
'main_color_code': opinion.status.main_color_code, 'main_color_code': opinion.status.main_color_code,
'light_color_code': opinion.status.light_color_code,
} if opinion.status else None, } if opinion.status else None,
'created_at': opinion.created_at.isoformat() if opinion.created_at 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, 'updated_at': opinion.updated_at.isoformat() if opinion.updated_at else None,
@ -498,7 +488,6 @@ class HadisTransmitterSerializer(serializers.ModelSerializer):
'slug': obj.status.slug, 'slug': obj.status.slug,
'color': obj.status.color, 'color': obj.status.color,
'main_color_code': obj.status.main_color_code, 'main_color_code': obj.status.main_color_code,
'light_color_code': obj.status.light_color_code,
} }
return None return None

26
utils/mixins.py

@ -18,13 +18,13 @@ class ColorPaletteMixin(models.Model):
and hex code properties to any model that inherits it. and hex code properties to any model that inherits it.
""" """
COLOR_PALETTE = { 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( color = models.CharField(
@ -35,16 +35,8 @@ class ColorPaletteMixin(models.Model):
) )
class Meta: 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 @property
def main_color_code(self): def main_color_code(self):
return self.color_hashes['main']
@property
def light_color_code(self):
return self.color_hashes['light']
return self.COLOR_PALETTE.get(self.color, '#000000')
Loading…
Cancel
Save