From 637903e6135304021d28c443e4dc8e1bfbe1a43a Mon Sep 17 00:00:00 2001 From: Dmitriy Kuzmenko Date: Tue, 3 Dec 2019 15:15:02 +0300 Subject: [PATCH] fix scheduler --- apps/account/serializers/common.py | 4 +++ .../management/commands/fix_scheduler.py | 36 +++++++++++++++++++ apps/transfer/serializers/establishment.py | 2 +- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 apps/establishment/management/commands/fix_scheduler.py diff --git a/apps/account/serializers/common.py b/apps/account/serializers/common.py index d2933747..d2ce0974 100644 --- a/apps/account/serializers/common.py +++ b/apps/account/serializers/common.py @@ -92,7 +92,11 @@ class UserBaseSerializer(serializers.ModelSerializer): model = models.User fields = ( + 'id', 'fullname', + 'first_name', + 'last_name', + 'email', 'cropped_image_url', 'image_url', ) diff --git a/apps/establishment/management/commands/fix_scheduler.py b/apps/establishment/management/commands/fix_scheduler.py new file mode 100644 index 00000000..78422935 --- /dev/null +++ b/apps/establishment/management/commands/fix_scheduler.py @@ -0,0 +1,36 @@ +from django.core.management.base import BaseCommand +from tqdm import tqdm + +from establishment.models import Establishment +from transfer.models import Establishments +from transfer.serializers.establishment import EstablishmentSerializer +from timetable.models import Timetable +from django.db import transaction + + +class Command(BaseCommand): + help = 'Fix scheduler' + + @transaction.atomic + def handle(self, *args, **kwargs): + count = 0 + establishments = Establishment.objects.all() + old_est_list = Establishments.objects.prefetch_related( + 'schedules_set', + ) + # remove old records of Timetable + Timetable.objects.all().delete() + + for est in tqdm(establishments, desc="Fix scheduler"): + old_est = old_est_list.filter(id=est.old_id).first() + + if old_est and old_est.schedules_set.exists(): + old_schedule = old_est.schedules_set.first() + timetable = old_schedule.timetable + if timetable: + new_schedules = EstablishmentSerializer.get_schedules(timetable) + est.schedule.add(*new_schedules) + est.save() + count += 1 + + self.stdout.write(self.style.WARNING(f'Update {count} objects.')) diff --git a/apps/transfer/serializers/establishment.py b/apps/transfer/serializers/establishment.py index 0e5f55d4..a287d61b 100644 --- a/apps/transfer/serializers/establishment.py +++ b/apps/transfer/serializers/establishment.py @@ -125,7 +125,7 @@ class EstablishmentSerializer(serializers.ModelSerializer): weekdays = { 'su': Timetable.SUNDAY, 'mo': Timetable.MONDAY, - 'tu': Timetable.THURSDAY, + 'tu': Timetable.TUESDAY, 'we': Timetable.WEDNESDAY, 'th': Timetable.THURSDAY, 'fr': Timetable.FRIDAY,