gault-millau/apps/establishment/management/commands/update_employee.py
Виктор Гладких e702be2691 Fix employee name
2019-11-12 17:51:57 +03:00

37 lines
1.3 KiB
Python

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.'))