Use sequence_ordered

issue5105
This commit is contained in:
Sergi Almacellas Abellana committed 2016-09-13 14:08:49 +02:00
1 parent 8bf8bc3c19
commit b002f13553
2 files changed
+9 -37

No files matched your search

+6 -27
View File
@@ -2,11 +2,11 @@
# this repository contains the full copyright notices and license terms.
import datetime
from sql import Literal, Null
from sql import Literal
from sql.aggregate import Count
from sql.conditionals import Case
from trytond.model import ModelView, ModelSQL, MatchMixin, fields
from trytond.model import ModelView, ModelSQL, MatchMixin, fields, \
sequence_ordered
from trytond.pyson import Eval, If
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
@@ -157,7 +157,7 @@ class Product:
return prices
class ProductSupplier(ModelSQL, ModelView, MatchMixin):
class ProductSupplier(sequence_ordered(), ModelSQL, ModelView, MatchMixin):
'Product Supplier'
__name__ = 'purchase.product_supplier'
product = fields.Many2One('product.template', 'Product', required=True,
@@ -166,7 +166,6 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
ondelete='CASCADE', select=True)
name = fields.Char('Name', size=None, translate=True, select=True)
code = fields.Char('Code', size=None, select=True)
sequence = fields.Integer('Sequence')
prices = fields.One2Many('purchase.product_supplier.price',
'product_supplier', 'Prices')
company = fields.Many2One('company.company', 'Company', required=True,
@@ -179,11 +178,6 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
currency = fields.Many2One('currency.currency', 'Currency', required=True,
ondelete='RESTRICT')
@classmethod
def __setup__(cls):
super(ProductSupplier, cls).__setup__()
cls._order.insert(0, ('sequence', 'ASC'))
@classmethod
def __register__(cls, module_name):
TableHandler = backend.get('TableHandler')
@@ -236,11 +230,6 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
where=sql_table.id == id_))
table.drop_column('delivery_time')
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
return [Case((table.sequence == Null, 0), else_=1), table.sequence]
@staticmethod
def default_company():
return Transaction().context.get('company')
@@ -314,7 +303,8 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
}
class ProductSupplierPrice(ModelSQL, ModelView, MatchMixin):
class ProductSupplierPrice(
sequence_ordered(), ModelSQL, ModelView, MatchMixin):
'Product Supplier Price'
__name__ = 'purchase.product_supplier.price'
product_supplier = fields.Many2One('purchase.product_supplier',
@@ -322,12 +312,6 @@ class ProductSupplierPrice(ModelSQL, ModelView, MatchMixin):
quantity = fields.Float('Quantity', required=True, help='Minimal quantity')
unit_price = fields.Numeric('Unit Price', required=True,
digits=price_digits)
sequence = fields.Integer('Sequence')
@classmethod
def __setup__(cls):
super(ProductSupplierPrice, cls).__setup__()
cls._order.insert(0, ('sequence', 'ASC'))
@classmethod
def __register__(cls, module_name):
@@ -345,11 +329,6 @@ class ProductSupplierPrice(ModelSQL, ModelView, MatchMixin):
cursor.execute(*sql_table.update(
[sql_table.sequence], [sql_table.quantity]))
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
return [Case((table.sequence == Null, 0), else_=1), table.sequence]
@staticmethod
def default_quantity():
return 0.0
+3 -10
View File
@@ -8,9 +8,9 @@ from sql import Table, Literal, Null
from sql.functions import Overlay, Position
from sql.aggregate import Count
from sql.operators import Concat
from sql.conditionals import Case
from trytond.model import Workflow, ModelView, ModelSQL, fields
from trytond.model import Workflow, ModelView, ModelSQL, fields, \
sequence_ordered
from trytond.modules.company import CompanyReport
from trytond.wizard import Wizard, StateAction, StateView, StateTransition, \
Button
@@ -847,7 +847,7 @@ class PurchaseRecreadtedInvoice(ModelSQL):
ondelete='RESTRICT', select=True, required=True)
class PurchaseLine(ModelSQL, ModelView):
class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
'Purchase Line'
__name__ = 'purchase.line'
_rec_name = 'description'
@@ -858,7 +858,6 @@ class PurchaseLine(ModelSQL, ModelView):
& Bool(Eval('purchase'))),
},
depends=['purchase_state'])
sequence = fields.Integer('Sequence')
type = fields.Selection([
('line', 'Line'),
('subtotal', 'Subtotal'),
@@ -969,7 +968,6 @@ class PurchaseLine(ModelSQL, ModelView):
@classmethod
def __setup__(cls):
super(PurchaseLine, cls).__setup__()
cls._order.insert(0, ('sequence', 'ASC'))
cls._error_messages.update({
'supplier_location_required': ('Purchase "%(purchase)s" '
'misses the supplier location for line "%(line)s".'),
@@ -997,11 +995,6 @@ class PurchaseLine(ModelSQL, ModelView):
# Migration from 2.4: drop required on sequence
table.not_null_action('sequence', action='remove')
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
return [Case((table.sequence == Null, 0), else_=1), table.sequence]
@staticmethod
def default_type():
return 'line'