diff --git a/tailbone_corepos/views/corepos/customers.py b/tailbone_corepos/views/corepos/customers.py index fb98ca3..713535d 100644 --- a/tailbone_corepos/views/corepos/customers.py +++ b/tailbone_corepos/views/corepos/customers.py @@ -96,7 +96,7 @@ class CustomerView(CoreOfficeMasterView): def configure_form(self, f): super(CustomerView, self).configure_form(f) - # member_type + f.set_renderer('member_info', self.render_member_info) f.set_renderer('member_type', self.render_member_type) if self.creating or self.editing: @@ -114,6 +114,15 @@ class CustomerView(CoreOfficeMasterView): url = self.request.route_url('corepos.member_types.view', id=memtype.id) return tags.link_to(text, url) + def render_member_info(self, custdata, field): + meminfo = custdata.member_info + if not meminfo: + return + text = str(meminfo) + url = self.request.route_url('corepos.members.view', + card_number=meminfo.card_number) + return tags.link_to(text, url) + def core_office_object_url(self, office_url, customer): return core_office_customer_account_url(self.rattail_config, customer.card_number, diff --git a/tailbone_corepos/views/corepos/members.py b/tailbone_corepos/views/corepos/members.py index 76e2c7a..c46aeb9 100644 --- a/tailbone_corepos/views/corepos/members.py +++ b/tailbone_corepos/views/corepos/members.py @@ -26,7 +26,7 @@ CORE-POS member views from corepos.db.office_op import model as corepos -from webhelpers2.html import HTML +from webhelpers2.html import HTML, tags from .master import CoreOfficeMasterView @@ -111,6 +111,10 @@ class MemberView(CoreOfficeMasterView): f.set_renderer('dates', self.render_member_dates) + f.append('customers') + f.set_readonly('customers') + f.set_renderer('customers', self.render_customers) + def render_member_dates(self, member, field): if not member.dates: return "" @@ -120,6 +124,19 @@ class MemberView(CoreOfficeMasterView): items.append(HTML.tag('li', c=str(dates))) return HTML.tag('ul', c=items) + def render_customers(self, member, field): + customers = member.customers + if not customers: + return + + items = [] + for customer in customers: + text = str(customer) + url = self.request.route_url('corepos.customers.view', id=customer.id) + link = tags.link_to(text, url) + items.append(HTML.tag('li', c=[link])) + return HTML.tag('ul', c=items) + def includeme(config): MemberTypeView.defaults(config)