feat(fusion_accounting_bank_rec): transient model for widget round-trip data
Made-with: Cursor
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
'name': 'Fusion Accounting — Bank Reconciliation',
|
||||
'version': '19.0.1.0.2',
|
||||
'version': '19.0.1.0.3',
|
||||
'category': 'Accounting/Accounting',
|
||||
'sequence': 28,
|
||||
'summary': 'Native V19 bank reconciliation widget with AI confidence scoring + behavioural learning.',
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from . import fusion_reconcile_pattern
|
||||
from . import fusion_reconcile_precedent
|
||||
from . import fusion_reconcile_suggestion
|
||||
from . import fusion_bank_rec_widget
|
||||
|
||||
33
fusion_accounting_bank_rec/models/fusion_bank_rec_widget.py
Normal file
33
fusion_accounting_bank_rec/models/fusion_bank_rec_widget.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""Per-request widget state. Holds the kanban-load response shape so the
|
||||
controller can return one well-typed object.
|
||||
|
||||
This is a TransientModel (no DB persistence beyond the request). The OWL
|
||||
widget reads pre-computed fusion.reconcile.suggestion rows directly via
|
||||
the controller; this model is just a typed envelope for the kanban-open
|
||||
action."""
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class FusionBankRecWidget(models.TransientModel):
|
||||
_name = "fusion.bank.rec.widget"
|
||||
_description = "Bank reconciliation widget state (transient)"
|
||||
|
||||
journal_id = fields.Many2one('account.journal',
|
||||
domain="[('type', '=', 'bank')]")
|
||||
statement_line_ids = fields.Many2many('account.bank.statement.line')
|
||||
summary_count = fields.Integer(
|
||||
help="Number of unreconciled lines visible in this widget")
|
||||
summary_unreconciled_balance = fields.Monetary(currency_field='currency_id')
|
||||
currency_id = fields.Many2one('res.currency',
|
||||
related='journal_id.currency_id',
|
||||
store=False, readonly=True)
|
||||
|
||||
def action_open_kanban(self):
|
||||
"""Return a window action opening the OWL kanban for this journal."""
|
||||
self.ensure_one()
|
||||
return {
|
||||
'type': 'ir.actions.client',
|
||||
'tag': 'fusion_bank_rec_kanban',
|
||||
'params': {'journal_id': self.journal_id.id},
|
||||
}
|
||||
@@ -5,3 +5,4 @@ access_fusion_reconcile_precedent_user,precedent user,model_fusion_reconcile_pre
|
||||
access_fusion_reconcile_precedent_admin,precedent admin,model_fusion_reconcile_precedent,fusion_accounting_core.group_fusion_accounting_admin,1,1,1,1
|
||||
access_fusion_reconcile_suggestion_user,suggestion user,model_fusion_reconcile_suggestion,fusion_accounting_core.group_fusion_accounting_user,1,0,0,0
|
||||
access_fusion_reconcile_suggestion_admin,suggestion admin,model_fusion_reconcile_suggestion,fusion_accounting_core.group_fusion_accounting_admin,1,1,1,1
|
||||
access_fusion_bank_rec_widget_user,bank rec widget user,model_fusion_bank_rec_widget,fusion_accounting_core.group_fusion_accounting_user,1,1,1,1
|
||||
|
||||
|
Reference in New Issue
Block a user