diff --git a/modules/purchase_request_quotation/CHANGELOG b/modules/purchase_request_quotation/CHANGELOG
index cc5d50ea79..a1f4d92a47 100644
--- a/modules/purchase_request_quotation/CHANGELOG
+++ b/modules/purchase_request_quotation/CHANGELOG
@@ -1,3 +1,4 @@
+* Open requests for quotations created from wizard
Version 7.6.0 - 2025-04-28
--------------------------
diff --git a/modules/purchase_request_quotation/purchase.py b/modules/purchase_request_quotation/purchase.py
index 06141e1576..dc505b72b4 100644
--- a/modules/purchase_request_quotation/purchase.py
+++ b/modules/purchase_request_quotation/purchase.py
@@ -17,7 +17,8 @@ from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval, Id, If
from trytond.tools import sortable_values
from trytond.transaction import Transaction
-from trytond.wizard import Button, StateTransition, StateView, Wizard
+from trytond.wizard import (
+ Button, StateAction, StateTransition, StateView, Wizard)
from .exceptions import PreviousQuotation
@@ -478,13 +479,8 @@ class CreatePurchaseRequestQuotation(Wizard):
Button('Cancel', 'end', 'tryton-cancel'),
Button('Process', 'create_quotations', 'tryton-ok', default=True),
])
- create_quotations = StateTransition()
- succeed = StateView(
- 'purchase.request.quotation.create.succeed',
- 'purchase_request_quotation.'
- 'purchase_request_quotation_create_succeed', [
- Button('Close', 'end', 'tryton-close', True),
- ])
+ create_quotations = StateAction(
+ 'purchase_request_quotation.act_purchase_request_quotation_form')
def transition_start(self):
pool = Pool()
@@ -521,7 +517,7 @@ class CreatePurchaseRequestQuotation(Wizard):
def _group_request_key(self, request):
return (('company', request.company),)
- def transition_create_quotations(self):
+ def do_create_quotations(self, action):
pool = Pool()
Quotation = pool.get('purchase.request.quotation')
QuotationLine = pool.get('purchase.request.quotation.line')
@@ -547,8 +543,12 @@ class CreatePurchaseRequestQuotation(Wizard):
QuotationLine.save(lines)
self.model.update_state(requests)
- self.succeed.number_quotations = len(quotations)
- return 'succeed'
+ action['domain'] = []
+ if len(quotations) == 1:
+ action['views'].reverse()
+ return action, {
+ 'res_id': list(map(int, quotations))
+ }
def get_quotation(self, supplier, key):
pool = Pool()
diff --git a/modules/purchase_request_quotation/purchase.xml b/modules/purchase_request_quotation/purchase.xml
index 53cf72333d..df39ab78f8 100644
--- a/modules/purchase_request_quotation/purchase.xml
+++ b/modules/purchase_request_quotation/purchase.xml
@@ -90,12 +90,6 @@ this repository contains the full copyright notices and license terms. -->
reject
-
- purchase.request.quotation.create.succeed
- form
- purchase_request_quotation_create_succeed_form
-
purchase.request.quotation.create.ask_suppliers
diff --git a/modules/purchase_request_quotation/tests/scenario_purchase_request_quotation.rst b/modules/purchase_request_quotation/tests/scenario_purchase_request_quotation.rst
index 6058391399..2ee3b102e3 100644
--- a/modules/purchase_request_quotation/tests/scenario_purchase_request_quotation.rst
+++ b/modules/purchase_request_quotation/tests/scenario_purchase_request_quotation.rst
@@ -108,24 +108,20 @@ add another supplier::
>>> assertEqual(create_quotation.form.suppliers, [supplier])
>>> create_quotation.form.suppliers.append(Party(supplier2.id))
>>> create_quotation.execute('create_quotations')
- >>> create_quotation.execute('end')
+ >>> quotations = create_quotation.actions[0]
+ >>> len(quotations)
+ 2
>>> purchase_request.state
'quotation'
Check Quotation Lines (1 Request with 2 Suppliers = 2 Quotation Lines)::
- >>> QuotationLine = Model.get('purchase.request.quotation.line')
- >>> quotation_lines = QuotationLine.find(
- ... [('quotation_state', '=', 'draft')])
- >>> len(quotation_lines)
- 2
+ >>> len(quotations[0].lines), len(quotations[1].lines)
+ (1, 1)
Send Quotations::
>>> Quotation = Model.get('purchase.request.quotation')
- >>> quotations = Quotation.find([('state', '=', 'draft')])
- >>> len(quotations)
- 2
>>> for quotation in quotations:
... quotation.click('send')
>>> quotations = Quotation.find([('state', '=', 'sent')])
diff --git a/modules/purchase_request_quotation/tryton.cfg b/modules/purchase_request_quotation/tryton.cfg
index 04dc1233f3..628066f3c4 100644
--- a/modules/purchase_request_quotation/tryton.cfg
+++ b/modules/purchase_request_quotation/tryton.cfg
@@ -21,7 +21,6 @@ model:
purchase.Quotation
purchase.QuotationLine
purchase.CreatePurchaseRequestQuotationAskSuppliers
- purchase.CreatePurchaseRequestQuotationSucceed
purchase.PurchaseRequest
wizard:
purchase.CreatePurchaseRequestQuotation
diff --git a/modules/purchase_request_quotation/view/purchase_request_quotation_create_succeed_form.xml b/modules/purchase_request_quotation/view/purchase_request_quotation_create_succeed_form.xml
deleted file mode 100644
index 28d982bdea..0000000000
--- a/modules/purchase_request_quotation/view/purchase_request_quotation_create_succeed_form.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-