From e702be269131606073c37aeaad19a0b39c2a3ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=93=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D0=BA=D0=B8=D1=85?= Date: Tue, 12 Nov 2019 17:51:57 +0300 Subject: [PATCH 1/2] Fix employee name --- .../management/commands/update_employee.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 apps/establishment/management/commands/update_employee.py diff --git a/apps/establishment/management/commands/update_employee.py b/apps/establishment/management/commands/update_employee.py new file mode 100644 index 00000000..bcf9824f --- /dev/null +++ b/apps/establishment/management/commands/update_employee.py @@ -0,0 +1,36 @@ +from django.core.management.base import BaseCommand +from django.db import connections +from establishment.management.commands.add_position import namedtuplefetchall +from establishment.models import Employee +from django.db.models import Q + + +class Command(BaseCommand): + help = 'Add employee from old db to new db.' + + def employees_sql(self): + with connections['legacy'].cursor() as cursor: + cursor.execute(''' + select t.profile_id, t.name + from + ( + select + DISTINCT + a.profile_id, + trim(CONCAT(p.firstname, ' ', p.lastname) + ) as name + from affiliations as a + join profiles p on p.id = a.profile_id + ) t + where t.name is not null + ''') + return namedtuplefetchall(cursor) + + def handle(self, *args, **options): + objects = [] + for e in self.employees_sql(): + empl = Employee.objects.filter(old_id=e.profile_id) + if empl.exists(): + empl.name = e.name + + self.stdout.write(self.style.WARNING(f'Update employee name objects.')) From ced49965f931c056086007816001fa33bdc18b88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=93=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D0=BA=D0=B8=D1=85?= Date: Tue, 12 Nov 2019 17:54:07 +0300 Subject: [PATCH 2/2] Fix employee name --- apps/establishment/management/commands/update_employee.py | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/establishment/management/commands/update_employee.py b/apps/establishment/management/commands/update_employee.py index bcf9824f..dfe8b5a0 100644 --- a/apps/establishment/management/commands/update_employee.py +++ b/apps/establishment/management/commands/update_employee.py @@ -32,5 +32,6 @@ class Command(BaseCommand): empl = Employee.objects.filter(old_id=e.profile_id) if empl.exists(): empl.name = e.name + empl.save() self.stdout.write(self.style.WARNING(f'Update employee name objects.'))