diff --git a/modules/edocument_peppol/CHANGELOG b/modules/edocument_peppol/CHANGELOG
index ae8fc7ba72..260f651100 100644
--- a/modules/edocument_peppol/CHANGELOG
+++ b/modules/edocument_peppol/CHANGELOG
@@ -1,3 +1,4 @@
+* Add an "Update Status" button to the Peppol document
Version 7.8.0 - 2025-12-15
--------------------------
diff --git a/modules/edocument_peppol/edocument.py b/modules/edocument_peppol/edocument.py
index 4c1a26aa03..e35b9ac226 100644
--- a/modules/edocument_peppol/edocument.py
+++ b/modules/edocument_peppol/edocument.py
@@ -146,6 +146,12 @@ class Peppol(Workflow, ModelSQL, ModelView):
'invisible': ~Eval('state').in_(['submitted', 'processing']),
'depends': ['state'],
},
+ update_status={
+ 'invisible': (
+ (Eval('state') != 'processing')
+ | (Eval('direction') != 'out')),
+ 'depends': ['state', 'direction'],
+ },
retry={
'invisible': Eval('state') != 'failed',
'depends': ['state'],
@@ -230,6 +236,7 @@ class Peppol(Workflow, ModelSQL, ModelView):
self.succeed()
@classmethod
+ @ModelView.button
def update_status(cls, documents=None):
if documents is None:
documents = cls.search([
diff --git a/modules/edocument_peppol/edocument.xml b/modules/edocument_peppol/edocument.xml
index cf0806351b..01253a6d0c 100644
--- a/modules/edocument_peppol/edocument.xml
+++ b/modules/edocument_peppol/edocument.xml
@@ -138,6 +138,12 @@ this repository contains the full copyright notices and license terms. -->
Process
+
+ edocument.peppol
+ update_status
+ Update Status
+
+
edocument.peppol
retry
diff --git a/modules/edocument_peppol/view/edocument_peppol_form.xml b/modules/edocument_peppol/view/edocument_peppol_form.xml
index b392dd0120..470ed97a25 100644
--- a/modules/edocument_peppol/view/edocument_peppol_form.xml
+++ b/modules/edocument_peppol/view/edocument_peppol_form.xml
@@ -35,6 +35,7 @@ this repository contains the full copyright notices and license terms. -->
+
diff --git a/modules/edocument_peppol_peppyrus/tests/scenario_edocument_peppol_peppyrus.rst b/modules/edocument_peppol_peppyrus/tests/scenario_edocument_peppol_peppyrus.rst
index 304d707461..c2005fc51d 100644
--- a/modules/edocument_peppol_peppyrus/tests/scenario_edocument_peppol_peppyrus.rst
+++ b/modules/edocument_peppol_peppyrus/tests/scenario_edocument_peppol_peppyrus.rst
@@ -67,12 +67,8 @@ Send out a Peppol document::
Check Peppol status::
- >>> cron, = Cron.find([
- ... ('method', '=', 'edocument.peppol|update_status'),
- ... ], limit=1)
>>> while peppol.state == 'processing':
- ... cron.click('run_once')
- ... peppol.reload()
+ ... peppol.click('update_status')
>>> peppol.state
'succeeded'