Add import normalizers for Department and Employee models.
This commit is contained in:
parent
53cfef1f5f
commit
ada704250f
|
@ -333,6 +333,7 @@ class EmployeeImporter(Importer):
|
|||
Employee data importer.
|
||||
"""
|
||||
model_class = model.Employee
|
||||
normalizer_class = normal.EmployeeNormalizer
|
||||
simple_fields = [
|
||||
'uuid',
|
||||
'id',
|
||||
|
@ -366,41 +367,6 @@ class EmployeeImporter(Importer):
|
|||
self.int_or_null(data, 'id', 'status')
|
||||
self.prioritize_2(data, 'phone_number')
|
||||
|
||||
def normalize_instance(self, employee):
|
||||
data = super(EmployeeImporter, self).normalize_instance(employee)
|
||||
|
||||
if 'customer_id' in self.fields:
|
||||
customer = employee.person.customers[0] if employee.person.customers else None
|
||||
data['customer_id'] = customer.id if customer else None
|
||||
|
||||
if 'first_name' in self.fields:
|
||||
data['first_name'] = employee.first_name
|
||||
if 'last_name' in self.fields:
|
||||
data['last_name'] = employee.last_name
|
||||
|
||||
if 'phone_number' in self.fields:
|
||||
data['phone_number'] = None
|
||||
for phone in employee.phones:
|
||||
if phone.type == 'Home':
|
||||
data['phone_number'] = phone.number
|
||||
break
|
||||
|
||||
if 'phone_number_2' in self.fields:
|
||||
data['phone_number_2'] = None
|
||||
first = False
|
||||
for phone in employee.phones:
|
||||
if phone.type == 'Home':
|
||||
if first:
|
||||
data['phone_number_2'] = phone.number
|
||||
break
|
||||
first = True
|
||||
|
||||
if 'email_address' in self.fields:
|
||||
email = employee.email
|
||||
data['email_address'] = email.address if email else None
|
||||
|
||||
return data
|
||||
|
||||
def update_instance(self, employee, data, inst_data=None):
|
||||
super(EmployeeImporter, self).update_instance(employee, data, inst_data)
|
||||
|
||||
|
@ -932,14 +898,13 @@ class DepartmentImporter(Importer):
|
|||
Department data importer.
|
||||
"""
|
||||
model_class = model.Department
|
||||
supported_fields = [
|
||||
normalizer_class = normal.DepartmentNormalizer
|
||||
simple_fields = [
|
||||
'uuid',
|
||||
'number',
|
||||
'name',
|
||||
]
|
||||
|
||||
def normalize_record(self, data):
|
||||
self.string_or_null(data, 'name')
|
||||
]
|
||||
supported_fields = simple_fields
|
||||
|
||||
|
||||
class SubdepartmentImporter(Importer):
|
||||
|
|
|
@ -55,6 +55,59 @@ class UserNormalizer(Normalizer):
|
|||
}
|
||||
|
||||
|
||||
class DepartmentNormalizer(Normalizer):
|
||||
"""
|
||||
Normalizer for department data.
|
||||
"""
|
||||
|
||||
def normalize(self, department):
|
||||
return {
|
||||
'uuid': department.uuid,
|
||||
'number': department.number,
|
||||
'name': department.name,
|
||||
}
|
||||
|
||||
|
||||
class EmployeeNormalizer(Normalizer):
|
||||
"""
|
||||
Normalizer for employee data.
|
||||
"""
|
||||
|
||||
def normalize(self, employee):
|
||||
data = {
|
||||
'uuid': employee.uuid,
|
||||
'id': employee.id,
|
||||
'person_uuid': employee.person_uuid,
|
||||
'status': employee.status,
|
||||
'first_name': employee.first_name,
|
||||
'last_name': employee.last_name,
|
||||
'display_name': employee.display_name,
|
||||
}
|
||||
|
||||
customer = employee.customers[0] if employee.customers else None
|
||||
data['customer_id'] = customer.id if customer else None
|
||||
|
||||
data['phone_number'] = None
|
||||
for phone in employee.phones:
|
||||
if phone.type == 'Home':
|
||||
data['phone_number'] = phone.number
|
||||
break
|
||||
|
||||
data['phone_number_2'] = None
|
||||
first = False
|
||||
for phone in employee.phones:
|
||||
if phone.type == 'Home':
|
||||
if first:
|
||||
data['phone_number_2'] = phone.number
|
||||
break
|
||||
first = True
|
||||
|
||||
email = employee.email
|
||||
data['email_address'] = email.address if email else None
|
||||
|
||||
return data
|
||||
|
||||
|
||||
class MessageNormalizer(Normalizer):
|
||||
"""
|
||||
Normalizer for message data.
|
||||
|
|
Loading…
Reference in a new issue