[tryton-debian-vcs] tryton-modules-analytic-sale branch upstream updated. upstream/3.0.0-1-gd965cd3
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Tue Apr 22 13:06:18 UTC 2014
The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-analytic-sale.git;a=commitdiff;h=upstream/3.0.0-1-gd965cd3
commit d965cd34bf0de89a2cea1c8899f873e98f7fb8c8
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Tue Apr 22 14:21:10 2014 +0200
Adding upstream version 3.2.0.
diff --git a/CHANGELOG b/CHANGELOG
index 09d92d7..c4f3c28 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 3.2.0 - 2014-04-21
+* Bug fixes (see mercurial logs for details)
+
Version 3.0.0 - 2013-10-21
* Bug fixes (see mercurial logs for details)
diff --git a/COPYRIGHT b/COPYRIGHT
index da9ef80..fc71a1a 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,6 +1,6 @@
-Copyright (C) 2008-2013 Cédric Krier.
+Copyright (C) 2008-2014 Cédric Krier.
Copyright (C) 2008-2011 Bertrand Chenal.
-Copyright (C) 2008-2013 B2CK SPRL.
+Copyright (C) 2008-2014 B2CK SPRL.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/INSTALL b/INSTALL
index fac5369..111b387 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ Installing trytond_analytic_sale
Prerequisites
-------------
- * Python 2.6 or later (http://www.python.org/)
+ * Python 2.7 or later (http://www.python.org/)
* trytond (http://www.tryton.org/)
* trytond_sale (http://www.tryton.org/)
* trytond_analytic_account (http://www.tryton.org/)
diff --git a/MANIFEST.in b/MANIFEST.in
index 18ce53c..4cf1634 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,11 +1,9 @@
include INSTALL
include README
-include TODO
include COPYRIGHT
include CHANGELOG
include LICENSE
include tryton.cfg
include *.xml
include view/*.xml
-include *.odt
include locale/*.po
diff --git a/PKG-INFO b/PKG-INFO
index b8545c4..a0ada66 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_analytic_sale
-Version: 3.0.0
+Version: 3.2.0
Summary: Tryton module to add analytic accounting on sale
Home-page: http://www.tryton.org/
Author: Tryton
-Author-email: UNKNOWN
+Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.0/
+Download-URL: http://downloads.tryton.org/3.2/
Description: trytond_analytic_sale
=====================
@@ -43,6 +43,7 @@ Description: trytond_analytic_sale
http://www.tryton.org/
+Keywords: tryton analytic account sale
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
@@ -61,7 +62,6 @@ Classifier: Natural Language :: Russian
Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Office/Business
Classifier: Topic :: Office/Business :: Financial :: Accounting
diff --git a/sale.py b/sale.py
index 5c021b8..25b27c1 100644
--- a/sale.py
+++ b/sale.py
@@ -42,10 +42,10 @@ class SaleLine:
return res
@classmethod
- def default_get(cls, fields, with_rec_name=True):
+ def default_get(cls, fields, with_rec_name=True, with_on_change=True):
fields = [x for x in fields if not x.startswith('analytic_account_')]
return super(SaleLine, cls).default_get(fields,
- with_rec_name=with_rec_name)
+ with_rec_name=with_rec_name, with_on_change=with_on_change)
@classmethod
def read(cls, ids, fields_names=None):
@@ -110,42 +110,53 @@ class SaleLine:
return super(SaleLine, cls).create(vlist)
@classmethod
- def write(cls, lines, vals):
+ def write(cls, *args):
Selection = Pool().get('analytic_account.account.selection')
- vals = vals.copy()
- selection_vals = {}
- for field in vals.keys():
- if field.startswith('analytic_account_'):
- root_id = int(field[len('analytic_account_'):])
- selection_vals[root_id] = vals[field]
- del vals[field]
- if selection_vals:
- for line in lines:
- if line.type != 'line':
- continue
- accounts = []
- if not line.analytic_accounts:
- # Create missing selection
- with Transaction().set_user(0):
- selection, = Selection.create([{}])
- cls.write([line], {
- 'analytic_accounts': selection.id,
- })
- for account in line.analytic_accounts.accounts:
- if account.root.id in selection_vals:
- value = selection_vals[account.root.id]
- if value:
- accounts.append(value)
- else:
- accounts.append(account.id)
- for account_id in selection_vals.values():
- if account_id \
- and account_id not in accounts:
- accounts.append(account_id)
- Selection.write([line.analytic_accounts], {
- 'accounts': [('set', accounts)],
- })
- return super(SaleLine, cls).write(lines, vals)
+
+ actions = iter(args)
+ args = []
+ for lines, values in zip(actions, actions):
+ values = values.copy()
+ selection_vals = {}
+ for field, value in values.items():
+ if field.startswith('analytic_account_'):
+ root_id = int(field[len('analytic_account_'):])
+ selection_vals[root_id] = value
+ del values[field]
+ if selection_vals:
+ for line in lines:
+ if line.type != 'line':
+ continue
+ accounts = []
+ if not line.analytic_accounts:
+ # Create missing selection
+ with Transaction().set_user(0):
+ selection, = Selection.create([{}])
+ cls.write([line], {
+ 'analytic_accounts': selection.id,
+ })
+ for account in line.analytic_accounts.accounts:
+ if account.root.id in selection_vals:
+ value = selection_vals[account.root.id]
+ if value:
+ accounts.append(value)
+ else:
+ accounts.append(account.id)
+ for account_id in selection_vals.values():
+ if account_id \
+ and account_id not in accounts:
+ accounts.append(account_id)
+ to_remove = list(
+ set((a.id for a in line.analytic_accounts.accounts))
+ - set(accounts))
+ Selection.write([line.analytic_accounts], {
+ 'accounts': [
+ ('remove', to_remove),
+ ('add', accounts),
+ ],
+ })
+ args.extend((lines, values))
+ return super(SaleLine, cls).write(*args)
@classmethod
def delete(cls, lines):
@@ -207,8 +218,8 @@ class Account:
return accounts
@classmethod
- def write(cls, accounts, vals):
+ def write(cls, accounts, values, *args):
SaleLine = Pool().get('sale.line')
- super(Account, cls).write(accounts, vals)
+ super(Account, cls).write(accounts, values, *args)
# Restart the cache on the fields_view_get method of sale.line
SaleLine._fields_view_get_cache.clear()
diff --git a/setup.py b/setup.py
index 870d755..b45d82a 100644
--- a/setup.py
+++ b/setup.py
@@ -11,33 +11,51 @@ import ConfigParser
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+def get_require_version(name):
+ if minor_version % 2:
+ require = '%s >= %s.%s.dev0, < %s.%s'
+ else:
+ require = '%s >= %s.%s, < %s.%s'
+ require %= (name, major_version, minor_version,
+ major_version, minor_version + 1)
+ return require
+
config = ConfigParser.ConfigParser()
config.readfp(open('tryton.cfg'))
info = dict(config.items('tryton'))
for key in ('depends', 'extras_depend', 'xml'):
if key in info:
info[key] = info[key].strip().splitlines()
-major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
+version = info.get('version', '0.0.1')
+major_version, minor_version, _ = version.split('.', 2)
major_version = int(major_version)
minor_version = int(minor_version)
+name = 'trytond_analytic_sale'
+
+download_url = 'http://downloads.tryton.org/%s.%s/' % (
+ major_version, minor_version)
+if minor_version % 2:
+ version = '%s.%s.dev0' % (major_version, minor_version)
+ download_url = (
+ 'hg+http://hg.tryton.org/modules/%s#egg=%s-%s' % (
+ name[8:], name, version))
requires = []
for dep in info.get('depends', []):
if not re.match(r'(ir|res|webdav)(\W|$)', dep):
- requires.append('trytond_%s >= %s.%s, < %s.%s' %
- (dep, major_version, minor_version, major_version,
- minor_version + 1))
-requires.append('trytond >= %s.%s, < %s.%s' %
- (major_version, minor_version, major_version, minor_version + 1))
+ requires.append(get_require_version('trytond_%s' % dep))
+requires.append(get_require_version('trytond'))
-setup(name='trytond_analytic_sale',
- version=info.get('version', '0.0.1'),
+setup(name=name,
+ version=version,
description='Tryton module to add analytic accounting on sale',
long_description=read('README'),
author='Tryton',
+ author_email='issue_tracker at tryton.org',
url='http://www.tryton.org/',
- download_url=("http://downloads.tryton.org/" +
- info.get('version', '0.0.1').rsplit('.', 1)[0] + '/'),
+ download_url=download_url,
+ keywords='tryton analytic account sale',
package_dir={'trytond.modules.analytic_sale': '.'},
packages=[
'trytond.modules.analytic_sale',
@@ -65,7 +83,6 @@ setup(name='trytond_analytic_sale',
'Natural Language :: Slovenian',
'Natural Language :: Spanish',
'Operating System :: OS Independent',
- 'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Topic :: Office/Business',
'Topic :: Office/Business :: Financial :: Accounting',
diff --git a/tests/test_analytic_sale.py b/tests/test_analytic_sale.py
index bda6d52..252a906 100644
--- a/tests/test_analytic_sale.py
+++ b/tests/test_analytic_sale.py
@@ -1,37 +1,22 @@
-#!/usr/bin/env python
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
-
-import sys
-import os
-DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
- '..', '..', '..', '..', '..', 'trytond')))
-if os.path.isdir(DIR):
- sys.path.insert(0, os.path.dirname(DIR))
-
import unittest
import trytond.tests.test_tryton
from trytond.tests.test_tryton import test_view, test_depends
class AnalyticSaleTestCase(unittest.TestCase):
- '''
- Test AnalyticSale module.
- '''
+ 'Test AnalyticSale module'
def setUp(self):
trytond.tests.test_tryton.install_module('analytic_sale')
def test0005views(self):
- '''
- Test views.
- '''
+ 'Test views'
test_view('analytic_sale')
def test0006depends(self):
- '''
- Test depends.
- '''
+ 'Test depends'
test_depends()
@@ -40,6 +25,3 @@ def suite():
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
AnalyticSaleTestCase))
return suite
-
-if __name__ == '__main__':
- unittest.TextTestRunner(verbosity=2).run(suite())
diff --git a/tryton.cfg b/tryton.cfg
index 44e7839..4021350 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.0.0
+version=3.2.0
depends:
analytic_account
analytic_invoice
diff --git a/trytond_analytic_sale.egg-info/PKG-INFO b/trytond_analytic_sale.egg-info/PKG-INFO
index 1f11c3b..bfc3ff9 100644
--- a/trytond_analytic_sale.egg-info/PKG-INFO
+++ b/trytond_analytic_sale.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-analytic-sale
-Version: 3.0.0
+Version: 3.2.0
Summary: Tryton module to add analytic accounting on sale
Home-page: http://www.tryton.org/
Author: Tryton
-Author-email: UNKNOWN
+Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.0/
+Download-URL: http://downloads.tryton.org/3.2/
Description: trytond_analytic_sale
=====================
@@ -43,6 +43,7 @@ Description: trytond_analytic_sale
http://www.tryton.org/
+Keywords: tryton analytic account sale
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
@@ -61,7 +62,6 @@ Classifier: Natural Language :: Russian
Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Office/Business
Classifier: Topic :: Office/Business :: Financial :: Accounting
diff --git a/trytond_analytic_sale.egg-info/requires.txt b/trytond_analytic_sale.egg-info/requires.txt
index 946384c..3c8f9d5 100644
--- a/trytond_analytic_sale.egg-info/requires.txt
+++ b/trytond_analytic_sale.egg-info/requires.txt
@@ -1,4 +1,4 @@
-trytond_analytic_account >= 3.0, < 3.1
-trytond_analytic_invoice >= 3.0, < 3.1
-trytond_sale >= 3.0, < 3.1
-trytond >= 3.0, < 3.1
\ No newline at end of file
+trytond_analytic_account >= 3.2, < 3.3
+trytond_analytic_invoice >= 3.2, < 3.3
+trytond_sale >= 3.2, < 3.3
+trytond >= 3.2, < 3.3
\ No newline at end of file
--
tryton-modules-analytic-sale
More information about the tryton-debian-vcs
mailing list