From 660a46b8957b7ca31a696855be1861df0b3cb4fb Mon Sep 17 00:00:00 2001 From: dormantman Date: Wed, 15 Jan 2020 01:10:52 +0300 Subject: [PATCH] Added short weekday to model --- apps/search_indexes/documents/establishment.py | 1 + apps/timetable/models.py | 9 ++++++++- apps/timetable/serialziers.py | 16 ++-------------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/apps/search_indexes/documents/establishment.py b/apps/search_indexes/documents/establishment.py index 20185b9c..15568862 100644 --- a/apps/search_indexes/documents/establishment.py +++ b/apps/search_indexes/documents/establishment.py @@ -153,6 +153,7 @@ class EstablishmentDocument(Document): 'id': fields.IntegerField(attr='id'), 'weekday': fields.IntegerField(attr='weekday'), 'weekday_display': fields.KeywordField(attr='get_weekday_display'), + 'weekday_display_short': fields.KeywordField(attr='weekday_display_short'), 'closed_at': fields.KeywordField(attr='closed_at_str'), 'opening_at': fields.KeywordField(attr='opening_at_str'), 'closed_at_indexing': fields.DateField(), diff --git a/apps/timetable/models.py b/apps/timetable/models.py index 62f3a3e9..ba4fadad 100644 --- a/apps/timetable/models.py +++ b/apps/timetable/models.py @@ -1,4 +1,4 @@ -from datetime import datetime, time +from datetime import datetime, time, date, timedelta from django.db import models from django.utils.translation import gettext_lazy as _ @@ -53,6 +53,13 @@ class Timetable(ProjectBaseMixin): f'works_at_noon - {self.works_at_noon}, ' \ f'works_at_afternoon: {self.works_at_afternoon})' + @property + def weekday_display_short(self): + """Translated short day of the week""" + monday = date(2020, 1, 6) + with_weekday = monday + timedelta(days=self.weekday) + return _(with_weekday.strftime("%a")) + @property def closed_at_str(self): return str(self.closed_at) if self.closed_at else None diff --git a/apps/timetable/serialziers.py b/apps/timetable/serialziers.py index 616abddf..a3183543 100644 --- a/apps/timetable/serialziers.py +++ b/apps/timetable/serialziers.py @@ -15,7 +15,7 @@ class ScheduleRUDSerializer(serializers.ModelSerializer): 'dinner_end', 'opening_at', 'closed_at'] weekday_display = serializers.CharField(source='get_weekday_display', read_only=True) - weekday_display_short = serializers.SerializerMethodField(read_only=True) + weekday_display_short = serializers.CharField(read_only=True) lunch_start = serializers.TimeField(required=False) lunch_end = serializers.TimeField(required=False) @@ -43,12 +43,6 @@ class ScheduleRUDSerializer(serializers.ModelSerializer): 'establishment_id' ] - def get_weekday_display_short(self, obj: Timetable): - """Translated short day of the week""" - monday = datetime.date(2020, 1, 6) - with_weekday = monday + datetime.timedelta(days=obj.weekday) - return _(with_weekday.strftime("%a")) - def validate(self, attrs): """Override validate method""" establishment_pk = self.context.get('request') \ @@ -102,7 +96,7 @@ class ScheduleCreateSerializer(ScheduleRUDSerializer): class TimetableSerializer(serializers.ModelSerializer): """Serailzier for Timetable model.""" weekday_display = serializers.CharField(source='get_weekday_display', read_only=True) - weekday_display_short = serializers.SerializerMethodField(read_only=True) + weekday_display_short = serializers.CharField(read_only=True) class Meta: model = Timetable @@ -112,9 +106,3 @@ class TimetableSerializer(serializers.ModelSerializer): 'weekday_display_short', 'works_at_noon', ) - - def get_weekday_display_short(self, obj: Timetable): - """Translated short day of the week""" - monday = datetime.date(2020, 1, 6) - with_weekday = monday + datetime.timedelta(days=obj.weekday) - return _(with_weekday.strftime("%a"))