changeset 4b2579af7316 in modules/purchase_request:default
details: 
https://hg.tryton.org/modules/purchase_request?cmd=changeset&node=4b2579af7316
description:
        Use declarative index definition for ModelSQL

        issue5757
        review361251002
diffstat:

 purchase_request.py |  18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diffs (59 lines):

diff -r e4daac0ddd78 -r 4b2579af7316 purchase_request.py
--- a/purchase_request.py       Sun Aug 28 12:31:58 2022 +0200
+++ b/purchase_request.py       Tue Oct 11 00:44:50 2022 +0200
@@ -6,7 +6,7 @@
 from itertools import groupby
 
 from trytond.i18n import gettext
-from trytond.model import ModelSQL, ModelView, fields
+from trytond.model import Index, ModelSQL, ModelView, fields
 from trytond.model.exceptions import AccessError
 from trytond.modules.company.model import (
     employee_field, reset_employee, set_employee)
@@ -27,7 +27,7 @@
     __name__ = 'purchase.request'
 
     product = fields.Many2One(
-        'product.product', "Product", select=True, readonly=True,
+        'product.product', "Product", readonly=True,
         domain=[('purchasable', '=', True)],
         context={
             'company': Eval('company', -1),
@@ -36,15 +36,15 @@
     description = fields.Text('Description', readonly=True, states=STATES)
     summary = fields.Function(fields.Char('Summary'), 'on_change_with_summary')
     party = fields.Many2One(
-        'party.party', "Party", select=True, states=STATES,
+        'party.party', "Party", states=STATES,
         context={
             'company': Eval('company', -1),
             },
         depends={'company'})
     quantity = fields.Float('Quantity', required=True, states=STATES,
         digits=(16, Eval('uom_digits', 2)))
-    uom = fields.Many2One('product.uom', 'UOM', select=True,
-        ondelete='RESTRICT',
+    uom = fields.Many2One(
+        'product.uom', "UOM", ondelete='RESTRICT',
         domain=[
             If(Bool(Eval('product_uom_category')),
                 ('category', '=', Eval('product_uom_category')),
@@ -96,11 +96,17 @@
             ('done', "Done"),
             ('cancelled', "Cancelled"),
             ('exception', "Exception"),
-            ], "State", required=True, readonly=True, select=True, sort=False)
+            ], "State", required=True, readonly=True, sort=False)
 
     @classmethod
     def __setup__(cls):
         super(PurchaseRequest, cls).__setup__()
+        t = cls.__table__()
+        cls._sql_indexes.add(
+            Index(
+                t,
+                (t.state, Index.Equality()),
+                where=t.state.in_(['draft', 'purchased', 'exception'])))
         cls._order[0] = ('id', 'DESC')
         cls._buttons.update({
                 'handle_purchase_cancellation_exception': {

Reply via email to