From fc5b93100744db66cb4f2832be1cdb77109d78bf Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 17 Mar 2022 16:59:50 -0500 Subject: [PATCH] Expose custorder xref markers for trainwreck --- .../trainwreck/transactions/view.mako | 11 ++++- tailbone/views/trainwreck/base.py | 44 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/tailbone/templates/trainwreck/transactions/view.mako b/tailbone/templates/trainwreck/transactions/view.mako index 601fa053..2be51c7d 100644 --- a/tailbone/templates/trainwreck/transactions/view.mako +++ b/tailbone/templates/trainwreck/transactions/view.mako @@ -1,6 +1,15 @@ ## -*- coding: utf-8; -*- <%inherit file="/master/view.mako" /> -## nb. this exists just so everyone can inherit from it +<%def name="modify_this_page_vars()"> + ${parent.modify_this_page_vars()} + + ${parent.body()} diff --git a/tailbone/views/trainwreck/base.py b/tailbone/views/trainwreck/base.py index 8a610104..a1bfbe0a 100644 --- a/tailbone/views/trainwreck/base.py +++ b/tailbone/views/trainwreck/base.py @@ -91,6 +91,7 @@ class TransactionView(MasterView): 'shopper_id', 'shopper_name', 'shopper_level_number', + 'custorder_xref_markers', 'subtotal', 'discounted_subtotal', 'tax', @@ -136,6 +137,7 @@ class TransactionView(MasterView): 'subdepartment_number', 'subdepartment_name', 'description', + 'custorder_item_xref', 'unit_quantity', 'subtotal', 'discounts', @@ -196,6 +198,9 @@ class TransactionView(MasterView): f.set_type('total', 'currency') f.set_type('patronage', 'currency') + # custorder_xref_markers + f.set_renderer('custorder_xref_markers', self.render_custorder_xref_markers) + # label overrides f.set_label('system_id', "System ID") f.set_label('terminal_id', "Terminal") @@ -203,6 +208,45 @@ class TransactionView(MasterView): f.set_label('customer_id', "Customer ID") f.set_label('shopper_id', "Shopper ID") + def render_custorder_xref_markers(self, txn, field): + markers = getattr(txn, field) + if not markers: + return + + route_prefix = self.get_route_prefix() + factory = self.get_grid_factory() + use_buefy = self.get_use_buefy() + + g = factory( + key='{}.custorder_xref_markers'.format(route_prefix), + data=[] if use_buefy else txn.custorder_xref_markers, + columns=['custorder_xref', 'custorder_item_xref'], + request=self.request) + + if use_buefy: + return HTML.literal( + g.render_buefy_table_element(data_prop='custorderXrefMarkersData')) + else: + return HTML.literal(g.render_grid()) + + def template_kwargs_view(self, **kwargs): + kwargs = super(TransactionView, self).template_kwargs_view(**kwargs) + + use_buefy = self.get_use_buefy() + if use_buefy: + form = kwargs['form'] + if 'custorder_xref_markers' in form: + txn = kwargs['instance'] + markers = [] + for marker in txn.custorder_xref_markers: + markers.append({ + 'custorder_xref': marker.custorder_xref, + 'custorder_item_xref': marker.custorder_item_xref, + }) + kwargs['custorder_xref_markers_data'] = markers + + return kwargs + def get_row_data(self, transaction): return self.Session.query(self.model_row_class)\ .filter(self.model_row_class.transaction == transaction)