diff --git a/fusion_plating/fusion_plating_portal/controllers/portal.py b/fusion_plating/fusion_plating_portal/controllers/portal.py index 91d1383b..79e19ed7 100644 --- a/fusion_plating/fusion_plating_portal/controllers/portal.py +++ b/fusion_plating/fusion_plating_portal/controllers/portal.py @@ -551,7 +551,8 @@ class FpCustomerPortal(CustomerPortal): step=self._FP_ACCOUNT_SUMMARY_PER_PAGE, ) - values = { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_account_summary', 'records': data['records'], 'tabs': self._FP_ACCOUNT_SUMMARY_TABS, @@ -564,7 +565,7 @@ class FpCustomerPortal(CustomerPortal): if commercial.property_account_receivable_id else request.env.company.currency_id, 'pager': pager, 'total': data['total'], - } + }) return request.render('fusion_plating_portal.portal_my_account_summary', values) # ========================================================================== @@ -657,7 +658,8 @@ class FpCustomerPortal(CustomerPortal): ('state', '=', 'ready_to_ship'), ]) - values = { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_dashboard', 'partner': partner, # Quotes @@ -682,7 +684,7 @@ class FpCustomerPortal(CustomerPortal): 'active_job_count': active_job_count, 'awaiting_review_count': awaiting_review_count, 'ready_to_ship_count': ready_to_ship_count, - } + }) return request.render( 'fusion_plating_portal.fp_portal_home_dashboard', values, @@ -745,7 +747,8 @@ class FpCustomerPortal(CustomerPortal): ) request.session['my_fp_quote_requests_history'] = quote_requests.ids[:100] - values = { + values = self._prepare_portal_layout_values() + values.update({ 'quote_requests': quote_requests, 'page_name': 'fp_quote_requests', 'pager': pager, @@ -754,7 +757,7 @@ class FpCustomerPortal(CustomerPortal): 'sortby': sortby, 'searchbar_filters': searchbar_filters, 'filterby': filterby, - } + }) return request.render( 'fusion_plating_portal.portal_my_quote_requests', values, @@ -779,12 +782,14 @@ class FpCustomerPortal(CustomerPortal): except (AccessError, MissingError): return request.redirect('/my') + layout_values = self._prepare_portal_layout_values() values = self._fp_quote_request_get_page_view_values( quote_sudo, access_token, **kw ) + layout_values.update(values) return request.render( 'fusion_plating_portal.portal_my_quote_request', - values, + layout_values, ) # ========================================================================== @@ -988,14 +993,15 @@ class FpCustomerPortal(CustomerPortal): ) request.session['my_fp_jobs_history'] = jobs.ids[:100] - values = { + values = self._prepare_portal_layout_values() + values.update({ 'jobs': jobs, 'page_name': 'fp_jobs', 'pager': pager, 'default_url': '/my/jobs', 'searchbar_sortings': searchbar_sortings, 'sortby': sortby, - } + }) return request.render( 'fusion_plating_portal.portal_my_jobs', values, @@ -1020,6 +1026,7 @@ class FpCustomerPortal(CustomerPortal): except (AccessError, MissingError): return request.redirect('/my') + layout_values = self._prepare_portal_layout_values() values = self._fp_portal_job_get_page_view_values( job_sudo, access_token, **kw ) @@ -1031,9 +1038,10 @@ class FpCustomerPortal(CustomerPortal): done_count = sum(1 for s in values['stage_timeline'] if s['status'] == 'done') active_count = sum(1 for s in values['stage_timeline'] if s['status'] == 'active') values['timeline_spine_pct'] = int(((done_count + 0.5 * active_count) / 5) * 100) + layout_values.update(values) return request.render( 'fusion_plating_portal.portal_my_job', - values, + layout_values, ) # ========================================================================== @@ -1266,14 +1274,15 @@ class FpCustomerPortal(CustomerPortal): offset=pager['offset'], ) - values = { + values = self._prepare_portal_layout_values() + values.update({ 'deliveries': deliveries, 'page_name': 'fp_deliveries', 'pager': pager, 'default_url': '/my/deliveries', 'searchbar_sortings': searchbar_sortings, 'sortby': sortby, - } + }) return request.render( 'fusion_plating_portal.portal_my_deliveries', values, @@ -1324,14 +1333,15 @@ class FpCustomerPortal(CustomerPortal): offset=pager['offset'], ) - values = { + values = self._prepare_portal_layout_values() + values.update({ 'cert_jobs': cert_jobs, 'page_name': 'fp_certifications', 'pager': pager, 'default_url': '/my/certifications', 'searchbar_sortings': searchbar_sortings, 'sortby': sortby, - } + }) return request.render( 'fusion_plating_portal.portal_my_certifications', values, diff --git a/fusion_plating/fusion_plating_portal/controllers/portal_configurator.py b/fusion_plating/fusion_plating_portal/controllers/portal_configurator.py index 99a8023b..8757819f 100644 --- a/fusion_plating/fusion_plating_portal/controllers/portal_configurator.py +++ b/fusion_plating/fusion_plating_portal/controllers/portal_configurator.py @@ -33,10 +33,12 @@ class FpPortalConfigurator(CustomerPortal): [('partner_id', 'child_of', partner.commercial_partner_id.id)], order='create_date desc', limit=10, ) - return request.render('fusion_plating_portal.portal_configurator_landing', { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_configurator', 'quotes': quotes, }) + return request.render('fusion_plating_portal.portal_configurator_landing', values) # ====================================================================== # Step 1 — Upload part or enter manual measurements @@ -118,10 +120,12 @@ class FpPortalConfigurator(CustomerPortal): ('titanium', 'Titanium'), ('other', 'Other'), ] - return request.render('fusion_plating_portal.portal_configurator_step1', { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_configurator', 'materials': materials, }) + return request.render('fusion_plating_portal.portal_configurator_step1', values) # ====================================================================== # Step 2 — Select coating configuration @@ -150,11 +154,13 @@ class FpPortalConfigurator(CustomerPortal): coatings = request.env['fusion.plating.process.type'].sudo().search( [('active', '=', True)], order='sequence, name', ) - return request.render('fusion_plating_portal.portal_configurator_step2', { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_configurator', 'coatings': coatings, 'session_data': session_data, }) + return request.render('fusion_plating_portal.portal_configurator_step2', values) # ====================================================================== # Step 3 — Estimate & submit @@ -181,12 +187,14 @@ class FpPortalConfigurator(CustomerPortal): _logger.info('Skipping price estimate — pricing helper unavailable.', exc_info=True) estimated_price = {'min': 0, 'max': 0, 'available': False} - return request.render('fusion_plating_portal.portal_configurator_step3', { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_configurator', 'session_data': session_data, 'coating': coating, 'estimated_price': estimated_price, }) + return request.render('fusion_plating_portal.portal_configurator_step3', values) # ====================================================================== # Submit — create quote request @@ -265,10 +273,12 @@ class FpPortalConfigurator(CustomerPortal): # Clear session request.session.pop('fp_configurator', None) - return request.render('fusion_plating_portal.portal_configurator_success', { + values = self._prepare_portal_layout_values() + values.update({ 'page_name': 'fp_configurator', 'quote': quote, }) + return request.render('fusion_plating_portal.portal_configurator_success', values) # ====================================================================== # Pricing helper