fix: fetch all odoo tickets deterministically
This commit is contained in:
@@ -15,6 +15,7 @@ DEFAULT_TIMEOUT = 30
|
||||
DEFAULT_TICKET_FIELDS = ["id", "name", "stage_id", "partner_id", "user_id", "write_date"]
|
||||
DEFAULT_MAX_NOTIFIED_TICKETS = 50
|
||||
DEFAULT_TICKET_URL_TEMPLATE = "{odoo_url}/web#id={id}&model={model}&view_type=form"
|
||||
DEFAULT_ODOO_ORDER = "id asc"
|
||||
|
||||
|
||||
def get_config_path():
|
||||
@@ -37,6 +38,8 @@ def audit():
|
||||
tickets = fetch_odoo_tickets(conf_wapt)
|
||||
previous_tickets_state = load_tickets_state(get_state_path())
|
||||
tickets_updated = get_updated_tickets(tickets, previous_tickets_state)
|
||||
print("Tickets recuperes depuis Odoo : %s" % len(tickets))
|
||||
print("Tickets modifies detectes : %s" % len(tickets_updated))
|
||||
message = build_notification_message(
|
||||
tickets_updated,
|
||||
previous_tickets_state,
|
||||
@@ -118,6 +121,14 @@ def get_ticket_url_template(conf_wapt):
|
||||
return conf_wapt.get("notification", "ticket_url_template", fallback=DEFAULT_TICKET_URL_TEMPLATE)
|
||||
|
||||
|
||||
def get_odoo_limit(conf_wapt):
|
||||
return conf_wapt.getint("odoo", "limit", fallback=0)
|
||||
|
||||
|
||||
def get_odoo_order(conf_wapt):
|
||||
return conf_wapt.get("odoo", "order", fallback=DEFAULT_ODOO_ORDER)
|
||||
|
||||
|
||||
def build_odoo_payload(service, method, args):
|
||||
return {
|
||||
"jsonrpc": "2.0",
|
||||
@@ -186,7 +197,11 @@ def fetch_odoo_tickets(conf_wapt):
|
||||
conf_wapt.get("odoo", "model", fallback="helpdesk.ticket"),
|
||||
"search_read",
|
||||
[[]],
|
||||
{"fields": get_odoo_fields(conf_wapt)},
|
||||
{
|
||||
"fields": get_odoo_fields(conf_wapt),
|
||||
"limit": get_odoo_limit(conf_wapt),
|
||||
"order": get_odoo_order(conf_wapt),
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user