Fix bug in customer importer when used via datasync

This commit is contained in:
Lance Edgar 2016-10-31 12:05:20 -05:00
parent 343cffa1be
commit 00242f48cc

View file

@ -573,6 +573,13 @@ class CustomerImporter(ToRattail):
return data return data
def get_group(self, group_id):
if hasattr(self, 'groups'):
return self.groups.get(group_id)
return self.session.query(model.CustomerGroup)\
.filter(model.CustomerGroup.id == group_id)\
.first()
def update_object(self, customer, data, local_data=None): def update_object(self, customer, data, local_data=None):
customer = super(CustomerImporter, self).update_object(customer, data, local_data) customer = super(CustomerImporter, self).update_object(customer, data, local_data)
@ -628,13 +635,14 @@ class CustomerImporter(ToRattail):
if 'group_id' in self.fields: if 'group_id' in self.fields:
group_id = data['group_id'] group_id = data['group_id']
if group_id: if group_id:
group = self.groups.get(group_id) group = self.get_group(group_id)
if not group: if not group:
group = model.CustomerGroup() group = model.CustomerGroup()
group.id = group_id group.id = group_id
group.name = "(auto-created)" group.name = "(auto-created)"
self.session.add(group) self.session.add(group)
self.groups[group.id] = group if hasattr(self, 'groups'):
self.groups[group.id] = group
if group in customer.groups: if group in customer.groups:
if group is not customer.groups[0]: if group is not customer.groups[0]:
customer.groups.remove(group) customer.groups.remove(group)
@ -647,13 +655,14 @@ class CustomerImporter(ToRattail):
if 'group_id_2' in self.fields: if 'group_id_2' in self.fields:
group_id = data['group_id_2'] group_id = data['group_id_2']
if group_id: if group_id:
group = self.groups.get(group_id) group = self.get_group(group_id)
if not group: if not group:
group = model.CustomerGroup() group = model.CustomerGroup()
group.id = group_id group.id = group_id
group.name = "(auto-created)" group.name = "(auto-created)"
self.session.add(group) self.session.add(group)
self.groups[group.id] = group if hasattr(self, 'groups'):
self.groups[group.id] = group
if group in customer.groups: if group in customer.groups:
if len(customer.groups) > 1: if len(customer.groups) > 1:
if group is not customer.groups[1]: if group is not customer.groups[1]: