Use PySON

This commit is contained in:
Cédric Krier committed 2010-01-20 10:58:31 +01:00
1 parent a136a2ddb3
commit feef8dc53b
2 files changed
+24 -22

No files matched your search

+15 -14
View File
@@ -3,6 +3,7 @@
"Account"
from trytond.model import ModelView, ModelSQL, fields
from trytond.wizard import Wizard
from trytond.pyson import Equal, Eval, Not, PYSONEncoder
from decimal import Decimal
import copy
@@ -27,22 +28,22 @@ class Account(ModelSQL, ModelView):
root = fields.Many2One('analytic_account.account', 'Root', select=2,
domain=[('parent', '=', False)],
states={
'invisible': "type == 'root'",
'required': "type != 'root'",
'invisible': Equal(Eval('type'), 'root'),
'required': Not(Equal(Eval('type'), 'root')),
})
parent = fields.Many2One('analytic_account.account', 'Parent', select=2,
domain=["('parent', 'child_of', root)"],
domain=[('parent', 'child_of', Eval('root'))],
states={
'invisible': "type == 'root'",
'required': "type != 'root'",
'invisible': Equal(Eval('type'), 'root'),
'required': Not(Equal(Eval('type'), 'root')),
})
childs = fields.One2Many('analytic_account.account', 'parent', 'Children')
balance = fields.Function('get_balance', digits="(16, currency_digits)",
string='Balance')
credit = fields.Function('get_credit_debit', digits="(16, currency_digits)",
string='Credit')
debit = fields.Function('get_credit_debit', digits="(16, currency_digits)",
string='Debit')
balance = fields.Function('get_balance',
digits=(16, Eval('currency_digits', 1)), string='Balance')
credit = fields.Function('get_credit_debit',
digits=(16, Eval('currency_digits', 2)), string='Credit')
debit = fields.Function('get_credit_debit',
digits=(16, Eval('currency_digits', 2)), string='Debit')
state = fields.Selection([
('draft', 'Draft'),
('opened', 'Opened'),
@@ -54,7 +55,7 @@ class Account(ModelSQL, ModelView):
('credit-debit', 'Credit - Debit'),
], 'Display Balance', required=True)
mandatory = fields.Boolean('Mandatory', states={
'invisible': "type != 'root'",
'invisible': Not(Equal(Eval('type'), 'root')),
})
def __init__(self):
@@ -353,9 +354,9 @@ class OpenChartAccount(Wizard):
model_data = model_data_obj.browse(cursor, user, model_data_ids[0],
context=context)
res = act_window_obj.read(cursor, user, model_data.db_id, context=context)
res['context'] = str({
res['pyson_context'] = PYSONEncoder().encode({
'start_date': data['form']['start_date'],
'end_date': data['form']['end_date']
'end_date': data['form']['end_date'],
})
return res
+9 -8
View File
@@ -1,9 +1,10 @@
#This file is part of Tryton. The COPYRIGHT file at the top level
#of this repository contains the full copyright notices and license terms.
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
"Line"
from trytond.model import ModelView, ModelSQL, fields
from trytond.wizard import Wizard
from trytond.backend import TableHandler
from trytond.pyson import Eval, PYSONEncoder
import time
@@ -13,9 +14,9 @@ class Line(ModelSQL, ModelView):
_description = __doc__
name = fields.Char('Name', required=True)
debit = fields.Numeric('Debit', digits="(16, currency_digits)",
debit = fields.Numeric('Debit', digits=(16, Eval('currency_digits', 2)),
depends=['currency_digits'])
credit = fields.Numeric('Credit', digits="(16, currency_digits)",
credit = fields.Numeric('Credit', digits=(16, Eval('currency_digits', 2)),
depends=['currency_digits'])
currency = fields.Function('get_currency', type='many2one',
relation='currency.currency', string='Currency',
@@ -161,15 +162,15 @@ class OpenAccount(Wizard):
model_data = model_data_obj.browse(cursor, user, model_data_ids[0],
context=context)
res = act_window_obj.read(cursor, user, model_data.db_id, context=context)
res['domain'] = [
res['pyson_domain'] = [
('account', '=', data['id']),
]
if context.get('start_date'):
res['domain'].append(('date', '>=', context['start_date']))
res['pyson_domain'].append(('date', '>=', context['start_date']))
if context.get('end_date'):
res['domain'].append(('date', '<=', context['end_date']))
res['domain'] = str(res['domain'])
res['pyson_domain'].append(('date', '<=', context['end_date']))
res['pyson_domain'] = PYSONEncoder().encode(res['pyson_domain'])
return res
OpenAccount()