# -*- coding: utf-8 -*- # Copyright 2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) # # /fp/job/ — scan-redirect endpoint for native fp.job stickers. # # The fp.job sticker (Phase 5) embeds a QR encoding this URL. When a # warehouse user scans it, this controller redirects them to either # the fp.job form (for managers) or the upcoming process-tree client # action (for operators — Phase 6 expansion). from odoo import http from odoo.http import request class FpJobScanController(http.Controller): @http.route('/fp/job/', type='http', auth='user', website=False) def fp_job_scan(self, job_id, **kwargs): Job = request.env['fp.job'].sudo() job = Job.browse(job_id).exists() if not job: return request.redirect('/odoo/plating-jobs') # If user is a plating manager → land on the form. # Otherwise (operator) → land on process tree client action # (will be wired once process tree is added). user = request.env.user is_manager = user.has_group('fusion_plating.group_fusion_plating_manager') if is_manager: return request.redirect( '/odoo/action-fusion_plating.action_fp_job/%d' % job.id ) # Operator path: same form for now (process tree action will replace # this once it's registered). return request.redirect( '/odoo/action-fusion_plating.action_fp_job/%d' % job.id )