shopinvader/odoo-shopinvader

View on GitHub
shopinvader/models/track_external_mixin.py

Summary

Maintainability
B
4 hrs
Test Coverage
# -*- coding: utf-8 -*-
# Copyright 2020 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models


class TrackExternalMixin(models.AbstractModel):
    _name = "track.external.mixin"
    _description = "Track external update"

    last_external_update_date = fields.Datetime()

    def is_rest_request(self):
        return self.env.context.get("shopinvader_request", False)

    @api.multi
    def _write(self, vals):
        if self.is_rest_request():
            vals["last_external_update_date"] = fields.Datetime.now()
        return super(TrackExternalMixin, self)._write(vals)

    @api.model
    def create(self, vals):
        if self.is_rest_request():
            vals["last_external_update_date"] = fields.Datetime.now()
        return super(TrackExternalMixin, self).create(vals)