diff --git a/README.rst b/README.rst index d18f680..f9ed603 100644 --- a/README.rst +++ b/README.rst @@ -9,33 +9,11 @@ pip install mds-cashbook-dataexchange Requires ======== -- Tryton 6.0 +- Tryton 7.0 Changes ======= -*6.0.5 - 06.06.2023* +*7.0.0 - 01.12.2023* -- optimize code - -*6.0.4 - 14.02.2023* - -- fix: test - -*6.0.3 - 13.09.2022* - -- add: import of split-bookings -- updt: transfers - -*6.0.2 - 05.09.2022* - -- category: qif-export -- party, transactions: qif-import/export - -*6.0.1 - 31.08.2022* - -- add: qif - category - import - -*6.0.0 - 28.08.2022* - -- init +- compatibility to Tryton 7.0 diff --git a/__init__.py b/__init__.py index ca56a2a..eca81a7 100644 --- a/__init__.py +++ b/__init__.py @@ -7,9 +7,11 @@ from trytond.pool import Pool from .category import Category from .book import Book from .qiftool import QifTool -from .qif_import_wiz import ImportQifWizard, ImportQifWizardStart, ImportQifWizardInfo +from .qif_import_wiz import ( + ImportQifWizard, ImportQifWizardStart, ImportQifWizardInfo) from .qif_export import QifCategoryExport, QifBookExport + def register(): Pool.register( QifTool, diff --git a/qif_import_wiz.py b/qif_import_wiz.py index c72d1a8..d79f927 100644 --- a/qif_import_wiz.py +++ b/qif_import_wiz.py @@ -24,8 +24,7 @@ class ImportQifWizardStart(ModelView): string='Cashbook', readonly=True, model_name='cashbook.book', states={ - 'invisible': ~Bool(Eval('book')), - }) + 'invisible': ~Bool(Eval('book'))}) file_ = fields.Binary( string="QIF-File", required=True, help='Quicken Interchange Format') @@ -47,8 +46,7 @@ class ImportQifWizardInfo(ModelView): book = fields.Many2One( string='Cash Book', readonly=True, model_name='cashbook.book', states={ - 'invisible': ~Bool(Eval('book')), - }) + 'invisible': ~Bool(Eval('book'))}) allowimport = fields.Boolean( string='Import Enabled', states={'invisible': True}) @@ -69,8 +67,7 @@ class ImportQifWizard(Wizard): Button(string='Cancel', state='end', icon='tryton-cancel'), Button( string='Read File', state='readf', - icon='tryton-forward', default=True), - ]) + icon='tryton-forward', default=True)]) showinfo = StateView( model_name='cashbook_dataexchange.qif_imp_wiz.info', view='cashbook_dataexchange.qif_imp_wiz_info_form', @@ -79,10 +76,7 @@ class ImportQifWizard(Wizard): Button( string='Import Data', state='importf', icon='tryton-import', default=True, - states={ - 'readonly': Eval('allowimport', False) == False, - }), - ]) + states={'readonly': ~Eval('allowimport', False)})]) readf = StateTransition() importf = StateTransition() @@ -94,8 +88,7 @@ class ImportQifWizard(Wizard): values = { 'company': Transaction().context.get('company'), - 'book': None, - } + 'book': None} model = context.get('active_model', '') if model == 'cashbook.book': @@ -170,8 +163,7 @@ class ImportQifWizard(Wizard): ['%s (in)' % x for x in in_categories] + [''] + ['%s (out)' % x for x in out_categories] - ) - ) + )) if len(to_create) > 0: self.showinfo.allowimport = True else: @@ -182,8 +174,7 @@ class ImportQifWizard(Wizard): qif_content = QifTool.split_by_type(file_content) if 'Bank' in qif_content.keys(): to_create = QifTool.convert_parties_to_create( - QifTool.qif_read_transactions(qif_content['Bank']) - ) + QifTool.qif_read_transactions(qif_content['Bank'])) self.showinfo.info = gettext( 'cashbook_dataexchange.msg_wiz_parties_found', numparties=len(to_create), @@ -266,8 +257,7 @@ class ImportQifWizard(Wizard): Book.create_from_qif(self.showinfo.book, file_content) lines = Line.search([ ('cashbook.id', '=', self.showinfo.book.id), - ('state', '=', 'edit'), - ]) + ('state', '=', 'edit')]) if len(lines) > 0: Line.wfcheck(lines) elif model == 'party.party': diff --git a/setup.py b/setup.py index a6d57aa..e212258 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ """ # Always prefer setuptools over distutils -from setuptools import setup, find_packages +from setuptools import setup # To use a consistent encoding from codecs import open from os import path @@ -36,10 +36,10 @@ with open(path.join(here, 'versiondep.txt'), encoding='utf-8') as f: l2 = i.strip().split(';') if len(l2) < 4: continue - modversion[l2[0]] = {'min':l2[1], 'max':l2[2], 'prefix':l2[3]} + modversion[l2[0]] = {'min': l2[1], 'max': l2[2], 'prefix': l2[3]} # tryton-version -major_version = 6 +major_version = 7 minor_version = 0 requires = ['python-slugify'] @@ -51,19 +51,21 @@ for dep in info.get('depends', []): prefix = modversion[dep]['prefix'] if len(modversion[dep]['max']) > 0: - requires.append('%s_%s >= %s, <= %s' % - (prefix, dep, modversion[dep]['min'], modversion[dep]['max'])) - else : - requires.append('%s_%s >= %s' % - (prefix, dep, modversion[dep]['min'])) - else : - requires.append('%s_%s >= %s.%s, < %s.%s' % - ('trytond', dep, major_version, minor_version, + requires.append('%s_%s >= %s, <= %s' % ( + prefix, dep, modversion[dep]['min'], + modversion[dep]['max'])) + else: + requires.append('%s_%s >= %s' % ( + prefix, dep, modversion[dep]['min'])) + else: + requires.append('%s_%s >= %s.%s, < %s.%s' % ( + 'trytond', 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('trytond >= %s.%s, < %s.%s' % ( + major_version, minor_version, major_version, minor_version + 1)) -setup(name='%s_%s' % (PREFIX, MODULE), +setup( + name='%s_%s' % (PREFIX, MODULE), version=info.get('version', '0.0.1'), description='Tryton module to add import/export to cashbook.', long_description=long_description, @@ -74,35 +76,34 @@ setup(name='%s_%s' % (PREFIX, MODULE), author_email='service@m-ds.de', license='GPL-3', classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Environment :: Plugins', - 'Framework :: Tryton', - 'Intended Audience :: Developers', - 'Intended Audience :: Customer Service', - 'Intended Audience :: Information Technology', - 'Intended Audience :: Financial and Insurance Industry', - 'Topic :: Office/Business', - 'Topic :: Office/Business :: Financial :: Accounting', - 'Natural Language :: German', - 'Natural Language :: English', - 'Operating System :: OS Independent', - 'License :: OSI Approved :: GNU General Public License (GPL)', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', + 'Development Status :: 5 - Production/Stable', + 'Environment :: Plugins', + 'Framework :: Tryton', + 'Intended Audience :: Developers', + 'Intended Audience :: Customer Service', + 'Intended Audience :: Information Technology', + 'Intended Audience :: Financial and Insurance Industry', + 'Topic :: Office/Business', + 'Topic :: Office/Business :: Financial :: Accounting', + 'Natural Language :: German', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'License :: OSI Approved :: GNU General Public License (GPL)', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ], - keywords='tryton cashbook import export', package_dir={'trytond.modules.%s' % MODULE: '.'}, packages=[ 'trytond.modules.%s' % MODULE, ], package_data={ - 'trytond.modules.%s' % MODULE: (info.get('xml', []) - + ['tryton.cfg', 'locale/*.po', 'tests/*.py', - 'report/*.fods', 'view/*.xml', - 'versiondep.txt', 'README.rst']), + 'trytond.modules.%s' % MODULE: (info.get('xml', []) + [ + 'tryton.cfg', 'locale/*.po', 'tests/*.py', + 'report/*.fods', 'view/*.xml', + 'versiondep.txt', 'README.rst']), }, - install_requires=requires, zip_safe=False, entry_points=""" diff --git a/tests/__init__.py b/tests/__init__.py index 9ca41fe..cf7e957 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -2,17 +2,3 @@ # This file is part of the cashbook-module from m-ds for Tryton. # The COPYRIGHT file at the top level of this repository contains the # full copyright notices and license terms. - -import trytond.tests.test_tryton -import unittest - -from .test_module import CashbookExchangeTestCase - -__all__ = ['suite'] - - -def suite(): - suite = trytond.tests.test_tryton.suite() - suite.addTests(unittest.TestLoader().loadTestsFromTestCase( - CashbookExchangeTestCase)) - return suite diff --git a/tests/category.py b/tests/category.py index 7d8d775..fdbd2a6 100644 --- a/tests/category.py +++ b/tests/category.py @@ -21,7 +21,8 @@ class CategoryTestCase(object): """ pool = Pool() Category = pool.get('cashbook.category') - ImportWiz = pool.get('cashbook_dataexchange.qif_imp_wiz', type='wizard') + ImportWiz = pool.get( + 'cashbook_dataexchange.qif_imp_wiz', type='wizard') company = self.prep_company() with Transaction().set_context({ @@ -358,7 +359,8 @@ I 'bookingtype': 'mvout', 'booktransf': books[1].id, 'description': - 'GA NR00002168 BLZ10000000 0; 05.12/06.42UHR TT TELTOW', + 'GA NR00002168 BLZ10000000 0; 05.12/06.42UHR ' + + 'TT TELTOW', }, { 'date': date(2013, 12, 5), 'amount': Decimal('56.37'), @@ -475,7 +477,8 @@ I result = QifTool.qif_read_categories( 'NGehalt\nI\n^\nNGehalt:Zulagen\nI\n^' + - 'NTelekommunikation\nE\n^\nNTelekommunikation:Online-Dienste\nE\n^') + 'NTelekommunikation\nE\n^\nNTelekommunikation:' + + 'Online-Dienste\nE\n^') self.assertEqual(result, { 'in': { 'Gehalt': { diff --git a/tests/party.py b/tests/party.py index 418c816..4a6f113 100644 --- a/tests/party.py +++ b/tests/party.py @@ -19,7 +19,8 @@ class PartyTestCase(object): """ pool = Pool() Party = pool.get('party.party') - ImportWiz = pool.get('cashbook_dataexchange.qif_imp_wiz', type='wizard') + ImportWiz = pool.get( + 'cashbook_dataexchange.qif_imp_wiz', type='wizard') company = self.prep_company() with Transaction().set_context({ @@ -45,8 +46,9 @@ class PartyTestCase(object): self.assertEqual(list(result.keys()), ['view']) self.assertEqual(result['view']['defaults']['company'], company.id) - self.assertEqual(result['view']['defaults']['info'], -"""The following 3 parties are now imported:\n + self.assertEqual( + result['view']['defaults']['info'], + """The following 3 parties are now imported:\n Opening Balance GA NR00002168 BLZ10000000 0 Foodshop Zehlendorf""") @@ -61,7 +63,8 @@ Foodshop Zehlendorf""") self.assertEqual(len(records), 4) self.assertEqual(records[0].rec_name, 'Foodshop Zehlendorf') - self.assertEqual(records[1].rec_name, 'GA NR00002168 BLZ10000000 0') + self.assertEqual( + records[1].rec_name, 'GA NR00002168 BLZ10000000 0') self.assertEqual(records[2].rec_name, 'm-ds') self.assertEqual(records[3].rec_name, 'Opening Balance') diff --git a/tests/test_module.py b/tests/test_module.py index a65b349..42fe0a0 100644 --- a/tests/test_module.py +++ b/tests/test_module.py @@ -4,7 +4,6 @@ # full copyright notices and license terms. -from trytond.tests.test_tryton import ModuleTestCase from trytond.modules.cashbook.tests.test_module import CashbookTestCase from .category import CategoryTestCase from .party import PartyTestCase @@ -15,12 +14,11 @@ class CashbookExchangeTestCase( CashbookTestCase, CategoryTestCase, PartyTestCase, - TransactionTestCase, - ModuleTestCase): + TransactionTestCase): 'Test cashbook exchange module' module = 'cashbook_dataexchange' # end CashbookExchangeTestCase -del ModuleTestCase +del CashbookTestCase diff --git a/tests/transaction.py b/tests/transaction.py index eb5de30..b4448cf 100644 --- a/tests/transaction.py +++ b/tests/transaction.py @@ -84,7 +84,8 @@ class TransactionTestCase(object): Party = pool.get('party.party') Category = pool.get('cashbook.category') Book = pool.get('cashbook.book') - ImportWiz = pool.get('cashbook_dataexchange.qif_imp_wiz', type='wizard') + ImportWiz = pool.get( + 'cashbook_dataexchange.qif_imp_wiz', type='wizard') company = self.prep_company() with Transaction().set_context({ @@ -223,7 +224,8 @@ Mreturn of bottles Party = pool.get('party.party') Category = pool.get('cashbook.category') Book = pool.get('cashbook.book') - ImportWiz = pool.get('cashbook_dataexchange.qif_imp_wiz', type='wizard') + ImportWiz = pool.get( + 'cashbook_dataexchange.qif_imp_wiz', type='wizard') company = self.prep_company() with Transaction().set_context({ diff --git a/tryton.cfg b/tryton.cfg index 9c2b32e..c0d91af 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.5 +version=7.0.0 depends: cashbook xml: diff --git a/versiondep.txt b/versiondep.txt index 834317e..bae9199 100644 --- a/versiondep.txt +++ b/versiondep.txt @@ -1 +1 @@ -cashbook;6.0.28;6.0.999;mds +cashbook;7.0.31;7.0.999;mds