Sélectionner une révision Git
acc_repartition_keys_compute_wizard.py

Julien - Le Filament authored
acc_repartition_keys_compute_wizard.py 3,19 Kio
# Copyright 2021- Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import _, fields, models
from odoo.exceptions import UserError, ValidationError
class AccRepartitionKeysComputeWizard(models.TransientModel):
_name = "acc.repartition.keys.compute.wizard"
_description = "Import fichier de clés de répartition"
# ------------------------------------------------------
# Default methods
# ------------------------------------------------------
def _default_operation_id(self):
return self.env.context.get("active_id")
# ------------------------------------------------------
# Fields declaration
# ------------------------------------------------------
operation_id = fields.Many2one(
"acc.operation", "Opération", default=_default_operation_id
)
# ------------------------------------------------------
# SQL Constraints
# ------------------------------------------------------
# ------------------------------------------------------
# Computed fields / Search Fields
# ------------------------------------------------------
# ------------------------------------------------------
# Onchange / Constraints
# ------------------------------------------------------
# ------------------------------------------------------
# CRUD methods (ORM overrides)
# ------------------------------------------------------
def ignore(self):
return {"type": "ir.actions.act_window_close"}
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
# ------------------------------------------------------
# Business methods
# ------------------------------------------------------
def send_keys(self):
if not self.operation_id.acc_priority_group_ids:
raise ValidationError(
_("Aucune priorité n'est définie pour cette opération.")
)
self.operation_id.action_send_repartition_keys()
def get_csv(self):
if not self.operation_id.acc_priority_group_ids:
raise ValidationError(
_("Aucune priorité n'est définie pour cette opération.")
)
job_description = f"{self.operation_id.name} - Generate repartition CSV "
try:
self.operation_id.with_delay(
description=job_description
).export_repartition()
except ValidationError as exc:
raise UserError(_(str(exc))) from exc
return {"type": "ir.actions.act_window_close"}
def compute_keys(self):
if not self.operation_id.acc_priority_group_ids:
raise ValidationError(
_("Aucune priorité n'est définie pour cette opération.")
)
job_description = f"{self.operation_id.name} - Generate repartition key "
try:
self.operation_id.with_delay(
description=job_description
).compute_repartition()
except ValidationError as exc:
raise UserError(_(str(exc))) from exc
return {"type": "ir.actions.act_window_close"}