changeset e54866b2727b in modules/purchase_request_quotation:default
details:
https://hg.tryton.org/modules/purchase_request_quotation?cmd=changeset&node=e54866b2727b
description:
Use declarative index definition for ModelSQL
issue5757
review361251002
diffstat:
purchase.py | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diffs (55 lines):
diff -r e5a666841eff -r e54866b2727b purchase.py
--- a/purchase.py Wed Sep 14 19:27:28 2022 +0200
+++ b/purchase.py Tue Oct 11 00:44:50 2022 +0200
@@ -8,7 +8,7 @@
from sql.functions import CharLength
from trytond.i18n import gettext
-from trytond.model import ModelSQL, ModelView, Workflow, fields
+from trytond.model import Index, ModelSQL, ModelView, Workflow, fields
from trytond.modules.company import CompanyReport
from trytond.modules.currency.fields import Monetary
from trytond.modules.product import price_digits
@@ -95,11 +95,11 @@
help="The unique identifier of the quotation.")
revision = fields.Integer('Revision', readonly=True,
help="Number incremented each time the quotation is sent.")
- reference = fields.Char('Reference', select=True,
+ reference = fields.Char(
+ "Reference",
help="The reference used by the supplier.")
company = fields.Many2One(
- 'company.company', "Company",
- required=True, select=True,
+ 'company.company', "Company", required=True,
states={
'readonly': Eval('state') != 'draft',
})
@@ -132,7 +132,16 @@
@classmethod
def __setup__(cls):
+ cls.number.search_unaccented = False
+ cls.reference.search_unaccented = False
super(Quotation, cls).__setup__()
+ t = cls.__table__()
+ cls._sql_indexes.update({
+ Index(t, (t.reference, Index.Similarity())),
+ Index(
+ t, (t.state, Index.Equality()),
+ where=t.state.in_(['draft', 'sent'])),
+ })
cls._transitions |= set((
('draft', 'cancelled'),
('cancelled', 'draft'),
@@ -293,8 +302,8 @@
states={
'required': Bool(Eval('unit_price')),
})
- request = fields.Many2One('purchase.request', 'Request',
- ondelete='CASCADE', select=True, required=True,
+ request = fields.Many2One(
+ 'purchase.request', "Request", ondelete='CASCADE', required=True,
domain=[
If(Eval('quotation_state') == 'draft',
('state', 'in', ['draft', 'quotation', 'received']), (), ),