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.
|
Employee data importer.
|
||||||
"""
|
"""
|
||||||
model_class = model.Employee
|
model_class = model.Employee
|
||||||
|
normalizer_class = normal.EmployeeNormalizer
|
||||||
simple_fields = [
|
simple_fields = [
|
||||||
'uuid',
|
'uuid',
|
||||||
'id',
|
'id',
|
||||||
|
@ -366,41 +367,6 @@ class EmployeeImporter(Importer):
|
||||||
self.int_or_null(data, 'id', 'status')
|
self.int_or_null(data, 'id', 'status')
|
||||||
self.prioritize_2(data, 'phone_number')
|
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):
|
def update_instance(self, employee, data, inst_data=None):
|
||||||
super(EmployeeImporter, self).update_instance(employee, data, inst_data)
|
super(EmployeeImporter, self).update_instance(employee, data, inst_data)
|
||||||
|
|
||||||
|
@ -932,14 +898,13 @@ class DepartmentImporter(Importer):
|
||||||
Department data importer.
|
Department data importer.
|
||||||
"""
|
"""
|
||||||
model_class = model.Department
|
model_class = model.Department
|
||||||
supported_fields = [
|
normalizer_class = normal.DepartmentNormalizer
|
||||||
|
simple_fields = [
|
||||||
'uuid',
|
'uuid',
|
||||||
'number',
|
'number',
|
||||||
'name',
|
'name',
|
||||||
]
|
]
|
||||||
|
supported_fields = simple_fields
|
||||||
def normalize_record(self, data):
|
|
||||||
self.string_or_null(data, 'name')
|
|
||||||
|
|
||||||
|
|
||||||
class SubdepartmentImporter(Importer):
|
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):
|
class MessageNormalizer(Normalizer):
|
||||||
"""
|
"""
|
||||||
Normalizer for message data.
|
Normalizer for message data.
|
||||||
|
|
Loading…
Reference in a new issue