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 @@ - - -
- -