diff --git a/sale.py b/sale.py
index d64a0fc..cb9eb46 100644
--- a/sale.py
+++ b/sale.py
@@ -243,15 +243,15 @@ class SaleRuleAction(ModelSQL, ModelView):
'sale_forbidden': ('You cannot make this sale because of %s.'),
})
- @fields.depends('account')
+ @fields.depends('rule')
def on_change_with_currency_digits(self, name=None):
- return self.rule.shop and self.rule.shop.currency.digits or 2
+ return (self.rule and self.rule.shop and
+ self.rule.shop.currency.digits or 2)
@fields.depends('rule')
def on_change_action_type(self):
- if self.rule:
- self.currency_digits = (self.rule.shop
- and self.rule.shop.currency.digits or 2)
+ self.currency_digits = (self.rule and self.rule.shop
+ and self.rule.shop.currency.digits or 2)
def get_rec_name(self, name):
for selection in self._fields['action_type'].selection:
@@ -344,15 +344,15 @@ class SaleRuleCondition(ModelSQL, ModelView):
super(SaleRuleCondition, cls).__setup__()
cls._order.insert(0, ('sequence', 'ASC'))
- @fields.depends('account')
+ @fields.depends('rule')
def on_change_with_currency_digits(self, name=None):
- return self.rule.shop and self.rule.shop.currency.digits or 2
+ return (self.rule and self.rule.shop and
+ self.rule.shop.currency.digits or 2)
@fields.depends('rule')
def on_change_criteria(self):
- if self.rule:
- self.currency_digits = (self.rule.shop
- and self.rule.shop.currency.digits or 2)
+ self.currency_digits = (self.rule and self.rule.shop
+ and self.rule.shop.currency.digits or 2)
@staticmethod
def default_condition():
diff --git a/sale.xml b/sale.xml
index 29d66ff..48ff1c6 100644
--- a/sale.xml
+++ b/sale.xml
@@ -43,6 +43,16 @@ copyright notices and license terms. -->
action="act_sale_rule"
id="menu_sale_rule" icon="tryton-list"/>
+
+ apply_rules
+ Apply Rules
+
+
+
+
+
+
+
sale.rule.condition
diff --git a/tests/scenario_sale_rule.rst b/tests/scenario_sale_rule.rst
index eedd9f8..7434d5d 100644
--- a/tests/scenario_sale_rule.rst
+++ b/tests/scenario_sale_rule.rst
@@ -7,6 +7,7 @@ Imports::
>>> import datetime
>>> from decimal import Decimal
>>> from proteus import config, Model, Wizard
+ >>> from trytond.tests.tools import activate_modules
>>> from trytond.modules.company.tests.tools import create_company, \
... get_company
>>> from trytond.modules.account.tests.tools import create_chart, \
@@ -14,19 +15,9 @@ Imports::
>>> from trytond.modules.account_invoice.tests.tools import \
... create_payment_term
-Configure::
-
- >>> config = config.set_trytond()
- >>> config.pool.test = True
-
Install sale_rule::
- >>> Module = Model.get('ir.module')
- >>> module, = Module.find([
- ... ('name', '=', 'sale_rule'),
- ... ])
- >>> module.click('install')
- >>> Wizard('ir.module.install_upgrade').execute('upgrade')
+ >>> config = activate_modules('sale_rule')
Create company::
@@ -63,13 +54,14 @@ Create products::
>>> template.salable = True
>>> template.lead_time = datetime.timedelta(0)
>>> template.list_price = Decimal('20')
- >>> template.cost_price = Decimal('8')
>>> template.account_revenue = revenue
>>> template.save()
>>> product1 = Product()
>>> product1.template = template
+ >>> product1.cost_price = Decimal('8')
>>> product1.save()
>>> product2 = Product()
+ >>> product2.cost_price = Decimal('8')
>>> product2.template = template
>>> product2.save()
diff --git a/tryton.cfg b/tryton.cfg
index c3554a4..a30cc90 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=4.1.0
+version=4.8.0
depends:
ir
res