# -*- coding: utf-8 -*- # Copyright 2026 Nexa Systems Inc. # License OPL-1 """Configuration for the Fusion Helpdesk Reporter. Stores the central Odoo Helpdesk endpoint that submissions are forwarded to. Defaults point at erp.nexasystems.ca / nexamain; each client deployment can override per system parameter. """ from odoo import api, fields, models class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' fhd_remote_url = fields.Char( string='Helpdesk Remote URL', config_parameter='fusion_helpdesk.remote_url', help='Base URL of the central Odoo running the Helpdesk app, ' 'e.g. https://erp.nexasystems.ca', ) fhd_remote_db = fields.Char( string='Helpdesk Remote DB', config_parameter='fusion_helpdesk.remote_db', help='Database name on the remote Odoo (e.g. nexamain).', ) fhd_remote_login = fields.Char( string='Helpdesk Remote Login', config_parameter='fusion_helpdesk.remote_login', help='Service-account login on the remote Odoo. Needs create ' 'rights on helpdesk.ticket and ir.attachment.', ) fhd_remote_password = fields.Char( string='Helpdesk Remote Password / API Key', config_parameter='fusion_helpdesk.remote_password', help='Service-account password or API key. Stored in ' 'ir.config_parameter — restrict read access if needed.', ) fhd_remote_team_id = fields.Integer( string='Helpdesk Team ID', config_parameter='fusion_helpdesk.remote_team_id', help='Optional. ID of the helpdesk.team on the remote that ' 'should own all incoming tickets. Leave blank to use ' 'the remote default routing.', ) fhd_client_label = fields.Char( string='Client Label (auto-prepended to subject)', config_parameter='fusion_helpdesk.client_label', help='Short tag prefixed onto the ticket subject so support ' 'can tell which client deployment a ticket came from. ' 'e.g. "ENTECH" → "[ENTECH] My subject"', ) # Owner contact for the central engagement / approval flow. Picked # from the existing res.partner — the owner is already a contact in # the system, no point retyping their email and name. Email + name # are derived from the partner at submit-time and piggybacked on # every ticket payload (see controllers/main.py::submit) so central # always has the latest contact without a dedicated sync endpoint. # Leaving the partner blank disables the "Request Owner Approval" # button on the central side for this client. fhd_owner_partner_id = fields.Many2one( 'res.partner', string='Owner Contact', config_parameter='fusion_helpdesk.owner_partner_id', help='The real decision-maker at your company — the person who ' 'can approve feature requests or bug-fix scope. Used when ' 'central support hits a ticket that needs sign-off. ' 'Email and name are taken from the selected contact. ' 'Leave blank if your deployment doesn\'t require approvals.', )