From 3bf12d7bf4c4b7721105cadc905eb6733f190885 Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Thu, 4 Jun 2020 11:52:11 +0200 Subject: [PATCH] [ADD] emcc: cron to fetch requests --- easy_my_coop_connector/__manifest__.py | 1 + easy_my_coop_connector/data/cron.xml | 19 +++++++++++++ .../models/subscription_request.py | 28 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 easy_my_coop_connector/data/cron.xml diff --git a/easy_my_coop_connector/__manifest__.py b/easy_my_coop_connector/__manifest__.py index 1518676..fbd1e70 100644 --- a/easy_my_coop_connector/__manifest__.py +++ b/easy_my_coop_connector/__manifest__.py @@ -20,6 +20,7 @@ "wizards/emc_history_import_sr.xml", "views/actions.xml", "views/menus.xml", + "data/cron.xml", ], "demo": ["demo/demo.xml"], "installable": True, diff --git a/easy_my_coop_connector/data/cron.xml b/easy_my_coop_connector/data/cron.xml new file mode 100644 index 0000000..f598445 --- /dev/null +++ b/easy_my_coop_connector/data/cron.xml @@ -0,0 +1,19 @@ + + + + + Fetch Subscription Requests + 1 + days + -1 + + + + code + model.fetch_subscription_requests_cron() + 50 + + diff --git a/easy_my_coop_connector/models/subscription_request.py b/easy_my_coop_connector/models/subscription_request.py index f82b7dc..b09c22d 100644 --- a/easy_my_coop_connector/models/subscription_request.py +++ b/easy_my_coop_connector/models/subscription_request.py @@ -2,10 +2,15 @@ # Robin Keunen # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import logging +from datetime import date, timedelta + from odoo import api, fields, models from .subscription_request_adapter import SubscriptionRequestAdapter +_logger = logging.getLogger(__name__) + class SubscriptionRequest(models.Model): _inherit = "subscription.request" @@ -79,3 +84,26 @@ class SubscriptionRequest(models.Model): } ) return srequest + + @api.model + def fetch_subscription_requests_cron(self): + backend = self.env["emc.backend"].search([("active", "=", True)]) + try: + backend.ensure_one() + except ValueError as e: + _logger.error( + "One and only one backend is allowed for the Easy My Coop " + "connector " + ) + raise e + + date_to = date.today() + date_from = date_to - timedelta(days=1) + _logger.info( + "fetching subscription requests at {backend} from {date_from} to " + "{date_to}.".format( + backend=backend.name, date_from=date_from, date_to=date_to + ) + ) + self.fetch_subscription_requests(date_from=date_from, date_to=date_to) + _logger.info("fetch done.")