Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
c91e312
[ADD] queue_job_batch
etobella Jul 9, 2019
4a7f849
[MIG] queue_job_batch, test_queue_job_batch: Migration to 12.0
LoisRForgeFlow Oct 31, 2019
3ff734d
Added translation using Weblate (French)
ypapouin Nov 20, 2020
7b02cb0
[IMP] queue_job_batch, test_queue_job_batch: black, isort, prettier
anothingguy Dec 3, 2021
a2c9453
[14.0][MIG] queue_job_batch, test_queue_job_batch: Migration to 14.0
anothingguy Dec 3, 2021
669cd4b
[MIG] queue_job_batch, test_queue_job_batch: Migration to 15.0
amh-mw Jan 22, 2023
9bd64b8
[IMP] queue_job_batch, test_queue_job_batch: black, isort, prettier
JasminSForgeFlow Nov 1, 2023
08bb3cc
[MIG] queue_job_batch, test_queue_job_batch: Migration to 16.0
JasminSForgeFlow Nov 9, 2023
759d671
Added translation using Weblate (Italian)
mymage Jan 9, 2024
4d49f2e
[IMP] queue_job_batch, test_queue_job_batch: pre-commit auto fixes
yankinmax Jan 8, 2025
ffc02e8
[MIG] queue_job_batch, test_queue_job_batch: Migration to 18.0
yankinmax Jan 8, 2025
bafee29
[UPD] Update test_queue_job_batch.pot
Feb 20, 2025
bc3216c
[BOT] post-merge updates
OCA-git-bot Feb 20, 2025
837417c
Update translation files
weblate Feb 20, 2025
dcb451e
[ADD] queue_job_batch
etobella Jul 9, 2019
d3e9896
[11.0][FIX] queue_job_batch: view all in the systray not working
LoisRForgeFlow Jul 10, 2019
f93a69c
[11.0][FIX] queue_job_batch:
LoisRForgeFlow Jul 12, 2019
6825180
[MIG] queue_job_batch, test_queue_job_batch: Migration to 12.0
LoisRForgeFlow Oct 31, 2019
bd702fd
[12.0] [FIX] Allow users from group queue_job_batch_user to write on …
qgroulard Jan 2, 2020
7730482
Added translation using Weblate (French)
ypapouin Nov 20, 2020
7d58192
[IMP] queue_job_batch, test_queue_job_batch: black, isort, prettier
anothingguy Dec 3, 2021
705849d
[14.0][MIG] queue_job_batch, test_queue_job_batch: Migration to 14.0
anothingguy Dec 3, 2021
5951537
[MIG] queue_job_batch, test_queue_job_batch: Migration to 15.0
amh-mw Jan 22, 2023
995dde7
[IMP] queue_job_batch, test_queue_job_batch: black, isort, prettier
JasminSForgeFlow Nov 1, 2023
020b1c1
[MIG] queue_job_batch, test_queue_job_batch: Migration to 16.0
JasminSForgeFlow Nov 9, 2023
7a30033
Added translation using Weblate (Spanish)
Ivorra78 Dec 1, 2023
62221ca
Added translation using Weblate (Italian)
mymage Jan 9, 2024
460aec1
[IMP] queue_job_batch: Fix systray icon visibility for allowed group …
JasminSForgeFlow Mar 18, 2024
d1eab42
[IMP] queue_job_batch, test_queue_job_batch: pre-commit auto fixes
yankinmax Jan 8, 2025
e9c8398
[MIG] queue_job_batch, test_queue_job_batch: Migration to 18.0
yankinmax Jan 8, 2025
2927a08
[UPD] Update queue_job_batch.pot
Feb 20, 2025
b4fd678
[BOT] post-merge updates
OCA-git-bot Feb 20, 2025
737efe4
Update translation files
weblate Feb 20, 2025
8a90419
Translated using Weblate (Italian)
mymage Feb 21, 2025
411eeb3
[MIG] queue_job_batch: Migration to 17.0
Jun 9, 2025
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
137 changes: 137 additions & 0 deletions queue_job_batch/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
===============
Job Queue Batch
===============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b6e605728ea05be0bf98dbe6e94c197bab21882e965286ef214f719e252b444e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fqueue-lightgray.png?logo=github
:target: https://github.com/OCA/queue/tree/17.0/queue_job_batch
:alt: OCA/queue
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/queue-17-0/queue-17-0-queue_job_batch
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/queue&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This addon adds an a grouper for queue jobs.

It allows to show your jobs in a batched form in order to know better
the results.

Example:

.. code:: python

from odoo import models, fields, api


class MyModel(models.Model):
_name = 'my.model'

def my_method(self, a, k=None):
_logger.info('executed with a: %s and k: %s', a, k)


class MyOtherModel(models.Model):
_name = 'my.other.model'

@api.multi
def button_do_stuff(self):
batch = self.env['queue.job.batch'].get_new_batch('Group')
model = self.env['my.model'].with_context(job_batch=batch)
for i in range(1, 100):
model.with_delay().my_method('a', k=i)

In the snippet of code above, when we call ``button_do_stuff``, 100 jobs
capturing the method and arguments will be postponed. It will be
executed as soon as the Jobrunner has a free bucket, which can be
instantaneous if no other job is running.

Once all the jobs have finished, the grouper will be marked as finished.

**Table of contents**

.. contents::
:local:

Usage
=====

You can manage your batch jobs from the Systray. A new button will be
shown with your currently executing job batches and the recently
finished job groups.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/queue/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/queue/issues/new?body=module:%20queue_job_batch%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Creu Blanca

Contributors
------------

- Enric Tobella <etobella@creublanca.es>

- `Trobz <https://trobz.com>`__:

- Hoang Diep <hoang@trobz.com>

- `ForgeFlow <https://forgeflow.com>`__:

- Lois Rilo <lois.rilo@forgeflow.com>
- Jasmin Solanki <jasmin.solanki@forgeflow.com>

- `Camptocamp <https://camptocamp.com>`__:

- Maksym Yankin <maksym.yankin@camptocamp.com>
- Iván Todorovich <ivan.todorovich@camptocamp.com>

Other credits
-------------

The migration of this module from 12.0 to 14.0 was financially supported
by Camptocamp

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/queue <https://github.com/OCA/queue/tree/17.0/queue_job_batch>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions queue_job_batch/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import controllers
from . import models
33 changes: 33 additions & 0 deletions queue_job_batch/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright 2019 Creu Blanca
# Copyright 2023 ForgeFlow S.L. (http://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)

{
"name": "Job Queue Batch",
"version": "17.0.1.0.0",
"author": "Creu Blanca,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/queue",
"license": "AGPL-3",
"category": "Generic Modules",
"depends": [
"queue_job",
],
"data": [
# data
"data/queue_job_channel_data.xml",
"data/queue_job_function_data.xml",
# security
"security/security.xml",
"security/ir.model.access.csv",
# views
"views/queue_job_views.xml",
"views/queue_job_batch_views.xml",
],
"assets": {
"web.assets_backend": [
"queue_job_batch/static/src/**/*.js",
"queue_job_batch/static/src/**/*.xml",
"queue_job_batch/static/src/**/*.scss",
],
},
}
1 change: 1 addition & 0 deletions queue_job_batch/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import webclient
23 changes: 23 additions & 0 deletions queue_job_batch/controllers/webclient.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2025 Camptocamp SA (https://www.camptocamp.com).
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo.http import request

from odoo.addons.mail.controllers.webclient import WebclientController


class WebClient(WebclientController):
def _process_request_for_internal_user(self, store, **kwargs):
res = super()._process_request_for_internal_user(store, **kwargs)

Check warning on line 11 in queue_job_batch/controllers/webclient.py

View check run for this annotation

Codecov / codecov/patch

queue_job_batch/controllers/webclient.py#L11

Added line #L11 was not covered by tests
if kwargs.get("systray_get_queue_job_batches"):
# sudo: bus.bus: reading non-sensitive last id
bus_last_id = request.env["bus.bus"].sudo()._bus_last_id()
batches = request.env.user._get_queue_job_batches()
store.add(batches)
store.add(

Check warning on line 17 in queue_job_batch/controllers/webclient.py

View check run for this annotation

Codecov / codecov/patch

queue_job_batch/controllers/webclient.py#L14-L17

Added lines #L14 - L17 were not covered by tests
{
"queueJobBatchCounter": len(batches),
"queueJobBatchCounterBusId": bus_last_id,
}
)
return res

Check warning on line 23 in queue_job_batch/controllers/webclient.py

View check run for this annotation

Codecov / codecov/patch

queue_job_batch/controllers/webclient.py#L23

Added line #L23 was not covered by tests
6 changes: 6 additions & 0 deletions queue_job_batch/data/queue_job_channel_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<odoo noupdate="1">
<record model="queue.job.channel" id="channel_queue_job_batch">
<field name="name">queue.job.batch</field>
<field name="parent_id" ref="queue_job.channel_root" />
</record>
</odoo>
7 changes: 7 additions & 0 deletions queue_job_batch/data/queue_job_function_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<odoo noupdate="1">
<record id="job_function_queue_job_check_state" model="queue.job.function">
<field name="model_id" ref="queue_job_batch.model_queue_job_batch" />
<field name="channel_id" ref="queue_job_batch.channel_queue_job_batch" />
<field name="method">check_state</field>
</record>
</odoo>
Loading