Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
db84c57
[ADD] portal_ux: grant portal access to all contacts in one click
gal-adhoc Jul 2, 2026
09cf71e
[I18N] portal_ux: export source terms
adhoc-transbot Jul 22, 2026
a4c571b
[FIX] portal_backend: include subcategories in Advanced Portal catego…
gal-adhoc Jul 15, 2026
8a13e2b
[ADD] whatsapp_ux: add new module
lef-adhoc Jul 2, 2026
cc416f8
[BOT] Bump version: whatsapp_ux 19.0.1.1.0
roboadhoc Jul 23, 2026
a133450
[I18N] whatsapp_ux: export source terms
adhoc-transbot Jul 23, 2026
c98a5a6
[I18N] base_import_ux: add Spanish (es) translation
les-adhoc Jul 21, 2026
5587ae0
[BOT] Bump version: base_import_ux 19.0.1.1.0
roboadhoc Jul 23, 2026
fba6b26
[FIX] base_ux: keep quick activity badges when editing an activity
zaoral Jul 25, 2026
8ca99e6
[BOT] Bump version: base_ux 19.0.1.8.0
roboadhoc Jul 31, 2026
a30e348
[I18N] base_ux: export source terms
adhoc-transbot Jul 31, 2026
5188b13
Update translation files
weblate Jul 31, 2026
5bccf38
[IMP] base_bg: backoff transient run errors, optional concurrency cap…
joa-adhoc Aug 3, 2026
db723d7
[IMP] base_bg: harden retry/backoff and concurrency cap (self-review)
joa-adhoc Aug 3, 2026
1a31d83
[REF] base_bg: simplify per self-review (reuse, dedup, separation of …
joa-adhoc Aug 3, 2026
476ca7c
[REF] base_bg: tighten docstrings and comments
joa-adhoc Aug 3, 2026
3bfddde
[REF] base_bg: drop the optional concurrency cap
joa-adhoc Aug 3, 2026
6457471
[IMP] base_bg: drop the ORM cache after each job (runner memory cleanup)
joa-adhoc Aug 4, 2026
079a60a
[I18N] base_bg: export source terms
adhoc-transbot Aug 4, 2026
e667dc5
Update translation files
weblate Aug 4, 2026
a8ff1f5
[UPD] copier: sync template 4c4a3ee
adhoc-cicd-bot Aug 10, 2026
50157aa
[FIX] base_company_dependent: skip company check on comodels without …
mav-adhoc Aug 11, 2026
ea602fd
[FIX] portal_holidays: grant the portal backend group access to emplo…
nicomacr Aug 13, 2026
81987ca
[I18N] portal_holidays: export source terms
adhoc-transbot Aug 13, 2026
f0faa38
Update translation files
weblate Aug 13, 2026
93f8cd6
[ADD] base_import_mobile_ux: show import action on small screens
gal-adhoc Jul 6, 2026
91beebb
[FIX] base_bg: do not let one job break the whole reaper
nicomacr Aug 19, 2026
43ea88f
[IMP] base_import_ux: don't abort import on first bad number/date
les-adhoc Jul 29, 2026
e7140b9
[I18N] base_import_ux: export source terms
adhoc-transbot Aug 21, 2026
d808dfe
Update translation files
weblate Aug 21, 2026
6d1ad28
[FIX] base_bg: cancel orphaned jobs instead of failing them
nicomacr Aug 21, 2026
f710bb4
[I18N] base_bg: export source terms
adhoc-transbot Aug 21, 2026
965eb0b
Update translation files
weblate Aug 21, 2026
5800f0d
[UPD] copier: sync template 1173c5f
adhoc-cicd-bot Aug 24, 2026
928cafc
Create sync-19.0.yml
sireko Aug 26, 2026
f6e3e92
Merge pull request #10 from ingadhoc/19.0
btl-bot Aug 26, 2026
a480ee6
[FIX] portal_backend: assert the parent menus group on registry load
rov-adhoc Aug 18, 2026
3a75a14
[BOT] Bump version: portal_backend 19.0.1.3.0
roboadhoc Aug 26, 2026
2e8a989
Merge pull request #12 from ingadhoc/19.0
btl-bot Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Do NOT update manually; changes here will be overwritten by Copier
_commit: 8677dea
_commit: 1173c5f
_src_path: https://github.com/ingadhoc/addons-repo-template.git
description: ''
is_private: false
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/sync-19.0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: "Sync Fork Branch 19.0"

on:
schedule:
- cron: '0 8 * * 4' # weekly on Thursday at 8am
workflow_dispatch: # on button click

jobs:
sync:

runs-on: ubuntu-latest

steps:
- uses: tgymnich/fork-sync@v1.3
with:
owner: ingadhoc
github_token: ${{ secrets.FORK_SYNC_TOKEN }}
personal_token: ${{ secrets.FORK_SYNC_SIREKO_TOKEN }}
base: "19.0"
head: "19.0"
merge_method: merge
pr_title: "Fork Sync Branch 19.0"
auto_approve: true
3 changes: 2 additions & 1 deletion base_bg/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Job States
* **Running**: Job is currently being executed
* **Done**: Job completed successfully
* **Failed**: Job failed after all retry attempts
* **Canceled**: Job was manually canceled
* **Canceled**: Job was manually canceled, or every record it pointed to was deleted before it could run (orphan job)

Usage
=====
Expand Down Expand Up @@ -239,6 +239,7 @@ A separate scheduled action monitors running jobs:

* Detects jobs running longer than 5 hours (configurable)
* Automatically marks them as failed with timeout error
* Cancels (instead of failing) jobs whose records no longer exist
* Prevents stuck jobs from blocking the queue

Security and Permissions
Expand Down
2 changes: 1 addition & 1 deletion base_bg/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
##############################################################################
{
"name": "Base Background Jobs",
"version": "19.0.1.0.1",
"version": "19.0.1.1.0",
"category": "Technical",
"author": "ADHOC SA",
"website": "https://www.adhoc.com.ar",
Expand Down
48 changes: 41 additions & 7 deletions base_bg/i18n/base_bg.pot
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-27 18:42+0000\n"
"PO-Revision-Date: 2026-02-27 18:42+0000\n"
"POT-Creation-Date: 2026-08-21 20:53+0000\n"
"PO-Revision-Date: 2026-08-21 20:53+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand All @@ -20,6 +20,13 @@ msgstr ""
msgid "Args Json"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__transient_retry_count
msgid ""
"Attempts lost to transient DB contention, counted separately from the normal"
" retry budget."
msgstr ""

#. module: base_bg
#: model:ir.model,name:base_bg.model_bg_job
#: model_terms:ir.ui.view,arch_db:base_bg.view_bg_job_form
Expand Down Expand Up @@ -119,11 +126,6 @@ msgstr ""
msgid "Creation Date"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__retry_count
msgid "Current number of retry attempts"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__state
msgid "Current state of the job"
Expand All @@ -146,6 +148,11 @@ msgstr ""
msgid "Duration"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__next_retry_at
msgid "Earliest time this job may be retried after a transient failure."
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__end_time
msgid "End Time"
Expand Down Expand Up @@ -278,6 +285,11 @@ msgstr ""
msgid "Next Job"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__next_retry_at
msgid "Next Retry At"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__next_job_id
msgid "Next job in the batch sequence"
Expand Down Expand Up @@ -323,6 +335,12 @@ msgstr ""
msgid "Previous job in batch failed"
msgstr ""

#. module: base_bg
#. odoo-python
#: code:addons/base_bg/models/bg_job.py:0
msgid "Previous job in batch was canceled"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__priority
msgid "Priority"
Expand Down Expand Up @@ -388,6 +406,12 @@ msgstr ""
msgid "The model name on which the job method will be executed"
msgstr ""

#. module: base_bg
#. odoo-python
#: code:addons/base_bg/models/bg_job.py:0
msgid "The records of this job no longer exist"
msgstr ""

#. module: base_bg
#: model_terms:ir.ui.view,arch_db:base_bg.view_bg_job_search
msgid "This Week"
Expand All @@ -398,6 +422,16 @@ msgstr ""
msgid "Today"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__retry_count
msgid "Total number of attempts made so far (transient + non-transient)."
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__transient_retry_count
msgid "Transient Retry Count"
msgstr ""

#. module: base_bg
#: model_terms:ir.ui.view,arch_db:base_bg.view_bg_job_search
msgid "User"
Expand Down
49 changes: 43 additions & 6 deletions base_bg/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-27 18:42+0000\n"
"POT-Creation-Date: 2026-08-21 20:53+0000\n"
"PO-Revision-Date: 2025-12-11 18:10+0000\n"
"Last-Translator: BAF <baf@adhoc.inc>\n"
"Language-Team: Spanish <https://translation.dev-adhoc.com/projects/"
Expand All @@ -24,6 +24,13 @@ msgstr ""
msgid "Args Json"
msgstr "Args Json"

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__transient_retry_count
msgid ""
"Attempts lost to transient DB contention, counted separately from the normal "
"retry budget."
msgstr ""

#. module: base_bg
#: model:ir.model,name:base_bg.model_bg_job
#: model_terms:ir.ui.view,arch_db:base_bg.view_bg_job_form
Expand Down Expand Up @@ -130,11 +137,6 @@ msgstr "Creado el"
msgid "Creation Date"
msgstr "Fecha de Creación"

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__retry_count
msgid "Current number of retry attempts"
msgstr "Número actual de intentos de reintento"

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__state
msgid "Current state of the job"
Expand All @@ -157,6 +159,11 @@ msgstr "Hecho"
msgid "Duration"
msgstr "Duración"

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__next_retry_at
msgid "Earliest time this job may be retried after a transient failure."
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__end_time
msgid "End Time"
Expand Down Expand Up @@ -290,6 +297,11 @@ msgstr "Modelo"
msgid "Next Job"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__next_retry_at
msgid "Next Retry At"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__next_job_id
msgid "Next job in the batch sequence"
Expand Down Expand Up @@ -335,6 +347,12 @@ msgstr ""
msgid "Previous job in batch failed"
msgstr ""

#. module: base_bg
#. odoo-python
#: code:addons/base_bg/models/bg_job.py:0
msgid "Previous job in batch was canceled"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__priority
msgid "Priority"
Expand Down Expand Up @@ -400,6 +418,12 @@ msgstr ""
msgid "The model name on which the job method will be executed"
msgstr ""

#. module: base_bg
#. odoo-python
#: code:addons/base_bg/models/bg_job.py:0
msgid "The records of this job no longer exist"
msgstr ""

#. module: base_bg
#: model_terms:ir.ui.view,arch_db:base_bg.view_bg_job_search
msgid "This Week"
Expand All @@ -410,6 +434,16 @@ msgstr ""
msgid "Today"
msgstr ""

#. module: base_bg
#: model:ir.model.fields,help:base_bg.field_bg_job__retry_count
msgid "Total number of attempts made so far (transient + non-transient)."
msgstr ""

#. module: base_bg
#: model:ir.model.fields,field_description:base_bg.field_bg_job__transient_retry_count
msgid "Transient Retry Count"
msgstr ""

#. module: base_bg
#: model_terms:ir.ui.view,arch_db:base_bg.view_bg_job_search
msgid "User"
Expand Down Expand Up @@ -452,6 +486,9 @@ msgstr ""
msgid "You will be notified when they are done."
msgstr ""

#~ msgid "Current number of retry attempts"
#~ msgstr "Número actual de intentos de reintento"

#~ msgid "Only enqueued jobs can be executed"
#~ msgstr "Solo se pueden ejecutar los trabajos encolados"

Expand Down
9 changes: 6 additions & 3 deletions base_bg/models/base_bg.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,17 @@ def bg_enqueue(self, method: str, threshold: int | None = None, *args, **kwargs)
"""
return self.bg_enqueue_records(self, method, threshold, *args, **kwargs)

def _trigger_crons(self):
def _trigger_crons(self, at=None):
"""
Trigger cron jobs to process enqueued background jobs
Trigger the background-job runner cron(s).

:param at: when the runner should fire (default now). Pass a future time to
schedule a wake-up for a backing-off job.
"""
code = "_cron_run_enqueued_jobs("
crons = self.env["ir.cron"].search([("code", "ilike", code)])
for cron in crons:
cron._trigger()
cron._trigger(at=at)

@api.model
def is_serializable(self, value: Any) -> bool:
Expand Down
Loading