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.")