2
0
account-financial-tools/account_asset_batch_compute/wizards/account_asset_compute.py

40 lines
1.2 KiB
Python

# Copyright 2016-2017 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
from odoo import _, api, fields, models
_logger = logging.getLogger(__name__)
try:
from odoo.addons.queue_job.job import job
except ImportError:
_logger.debug("Can not `import queue_job`.")
class AccountAssetCompute(models.TransientModel):
_inherit = "account.asset.compute"
batch_processing = fields.Boolean()
@api.multi
@job(default_channel="root.account_asset_batch_compute")
def asset_compute(self):
self.ensure_one()
if not self.batch_processing:
return super(AccountAssetCompute, self).asset_compute()
if not self.env.context.get("job_uuid") and not self.env.context.get(
"test_queue_job_no_delay"
):
description = _("Creating jobs to create moves for assets to %s") % (
self.date_end,
)
job = self.with_delay(description=description).asset_compute()
return u"Job created with uuid {}".format(job.uuid)
else:
return super(
AccountAssetCompute, self.with_context(asset_batch_processing=True)
).asset_compute()