From 2da0074d2b7cebec658cf66076d47ce575383ad7 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 8 Nov 2022 16:29:19 +0100 Subject: [PATCH 01/24] Version 6.0.1 --- README.rst | 4 ++++ tryton.cfg | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 7b12126..08c1908 100644 --- a/README.rst +++ b/README.rst @@ -14,6 +14,10 @@ Requires Changes ======= +*6.0.1 - 08.11.2022* + +- works + *6.0.0 - 07.11.2022* - init diff --git a/tryton.cfg b/tryton.cfg index ba1dc2c..c65b757 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.0 +version=6.0.1 depends: cashbook xml: From f1ae2932a3a2fcd3c43d3ee9e0f64a46612d469f Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 8 Nov 2022 16:56:25 +0100 Subject: [PATCH 03/24] =?UTF-8?q?ansicht=20der=20verbundenen=20kassenb?= =?UTF-8?q?=C3=BCcher=20an=20der=20kategorie=20+=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book.py | 3 +-- category.py | 4 ++++ locale/de.po | 8 ++++++++ locale/en.po | 8 ++++++++ tests/test_category.py | 3 +++ view/category_form.xml | 3 +++ 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/book.py b/book.py index 65f0839..8390766 100644 --- a/book.py +++ b/book.py @@ -3,8 +3,7 @@ # this repository contains the full copyright notices and license terms. from trytond.model import ModelSQL, fields -from trytond.transaction import Transaction -from trytond.pool import Pool, PoolMeta +from trytond.pool import PoolMeta class Cashbook(metaclass=PoolMeta): diff --git a/category.py b/category.py index 06160cc..c5fa3a8 100644 --- a/category.py +++ b/category.py @@ -23,6 +23,10 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): left = fields.Integer(string='Left', required=True, select=True) right = fields.Integer(string='Right', required=True, select=True) + cashbooks = fields.Many2Many(string='Cashbooks', + relation_name='cashbook.bookcategory-rel', + origin='category', target='cashbook') + @classmethod def __setup__(cls): super(Category, cls).__setup__() diff --git a/locale/de.po b/locale/de.po index 2372d4e..94fce9d 100644 --- a/locale/de.po +++ b/locale/de.po @@ -54,6 +54,10 @@ msgctxt "view:cashbook.bookcategory:" msgid "General Information" msgstr "Allgemein" +msgctxt "view:cashbook.bookcategory:" +msgid "Cashbooks" +msgstr "Kassenbücher" + msgctxt "field:cashbook.bookcategory,name:" msgid "Name" msgstr "Name" @@ -78,6 +82,10 @@ msgctxt "field:cashbook.bookcategory,right:" msgid "Right" msgstr "Rechts" +msgctxt "field:cashbook.bookcategory,cashbooks:" +msgid "Cashbooks" +msgstr "Kassenbücher" + ################# # cashbook.book # diff --git a/locale/en.po b/locale/en.po index 97cfcf1..7374def 100644 --- a/locale/en.po +++ b/locale/en.po @@ -38,6 +38,10 @@ msgctxt "view:cashbook.bookcategory:" msgid "General Information" msgstr "General Information" +msgctxt "view:cashbook.bookcategory:" +msgid "Cashbooks" +msgstr "Cashbooks" + msgctxt "field:cashbook.bookcategory,name:" msgid "Name" msgstr "Name" @@ -62,6 +66,10 @@ msgctxt "field:cashbook.bookcategory,right:" msgid "Right" msgstr "Right" +msgctxt "field:cashbook.bookcategory,cashbooks:" +msgid "Cashbooks" +msgstr "Cashbooks" + msgctxt "view:cashbook.book:" msgid "Categories" msgstr "Categories" diff --git a/tests/test_category.py b/tests/test_category.py index 9677d39..6ec3c31 100644 --- a/tests/test_category.py +++ b/tests/test_category.py @@ -78,6 +78,9 @@ class CategoryTestCase(CashbookTestCase): self.assertEqual(len(book.categories), 1) self.assertEqual(book.categories[0].rec_name, 'Cat 0') + self.assertEqual(len(category.cashbooks), 1) + self.assertEqual(category.cashbooks[0].rec_name, 'Book 1 | 0.00 usd | Open') + # replace category Book.write(*[ [book], diff --git a/view/category_form.xml b/view/category_form.xml index 5366dfc..2d6d58d 100644 --- a/view/category_form.xml +++ b/view/category_form.xml @@ -12,6 +12,9 @@ full copyright notices and license terms. --> + + + From a9c627a63b7e382729e95ff66b11b08a5e5a1e30 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 8 Nov 2022 16:56:25 +0100 Subject: [PATCH 04/24] =?UTF-8?q?ansicht=20der=20verbundenen=20kassenb?= =?UTF-8?q?=C3=BCcher=20an=20der=20kategorie=20+=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book.py | 3 +-- category.py | 4 ++++ locale/de.po | 8 ++++++++ locale/en.po | 8 ++++++++ tests/test_category.py | 3 +++ view/category_form.xml | 3 +++ 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/book.py b/book.py index 65f0839..8390766 100644 --- a/book.py +++ b/book.py @@ -3,8 +3,7 @@ # this repository contains the full copyright notices and license terms. from trytond.model import ModelSQL, fields -from trytond.transaction import Transaction -from trytond.pool import Pool, PoolMeta +from trytond.pool import PoolMeta class Cashbook(metaclass=PoolMeta): diff --git a/category.py b/category.py index 06160cc..c5fa3a8 100644 --- a/category.py +++ b/category.py @@ -23,6 +23,10 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): left = fields.Integer(string='Left', required=True, select=True) right = fields.Integer(string='Right', required=True, select=True) + cashbooks = fields.Many2Many(string='Cashbooks', + relation_name='cashbook.bookcategory-rel', + origin='category', target='cashbook') + @classmethod def __setup__(cls): super(Category, cls).__setup__() diff --git a/locale/de.po b/locale/de.po index 2372d4e..94fce9d 100644 --- a/locale/de.po +++ b/locale/de.po @@ -54,6 +54,10 @@ msgctxt "view:cashbook.bookcategory:" msgid "General Information" msgstr "Allgemein" +msgctxt "view:cashbook.bookcategory:" +msgid "Cashbooks" +msgstr "Kassenbücher" + msgctxt "field:cashbook.bookcategory,name:" msgid "Name" msgstr "Name" @@ -78,6 +82,10 @@ msgctxt "field:cashbook.bookcategory,right:" msgid "Right" msgstr "Rechts" +msgctxt "field:cashbook.bookcategory,cashbooks:" +msgid "Cashbooks" +msgstr "Kassenbücher" + ################# # cashbook.book # diff --git a/locale/en.po b/locale/en.po index 97cfcf1..7374def 100644 --- a/locale/en.po +++ b/locale/en.po @@ -38,6 +38,10 @@ msgctxt "view:cashbook.bookcategory:" msgid "General Information" msgstr "General Information" +msgctxt "view:cashbook.bookcategory:" +msgid "Cashbooks" +msgstr "Cashbooks" + msgctxt "field:cashbook.bookcategory,name:" msgid "Name" msgstr "Name" @@ -62,6 +66,10 @@ msgctxt "field:cashbook.bookcategory,right:" msgid "Right" msgstr "Right" +msgctxt "field:cashbook.bookcategory,cashbooks:" +msgid "Cashbooks" +msgstr "Cashbooks" + msgctxt "view:cashbook.book:" msgid "Categories" msgstr "Categories" diff --git a/tests/test_category.py b/tests/test_category.py index 9677d39..6ec3c31 100644 --- a/tests/test_category.py +++ b/tests/test_category.py @@ -78,6 +78,9 @@ class CategoryTestCase(CashbookTestCase): self.assertEqual(len(book.categories), 1) self.assertEqual(book.categories[0].rec_name, 'Cat 0') + self.assertEqual(len(category.cashbooks), 1) + self.assertEqual(category.cashbooks[0].rec_name, 'Book 1 | 0.00 usd | Open') + # replace category Book.write(*[ [book], diff --git a/view/category_form.xml b/view/category_form.xml index 5366dfc..2d6d58d 100644 --- a/view/category_form.xml +++ b/view/category_form.xml @@ -12,6 +12,9 @@ full copyright notices and license terms. --> + + + From bda363b1e1dcc52b0c736a5f69e95781b7d7cb47 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 8 Nov 2022 16:57:35 +0100 Subject: [PATCH 05/24] Version 6.0.2 --- README.rst | 4 ++++ tryton.cfg | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 08c1908..a983488 100644 --- a/README.rst +++ b/README.rst @@ -14,6 +14,10 @@ Requires Changes ======= +*6.0.2 - 08.11.2022* + +- add: show linked cashbook on category-form + *6.0.1 - 08.11.2022* - works diff --git a/tryton.cfg b/tryton.cfg index c65b757..c5f5393 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.1 +version=6.0.2 depends: cashbook xml: From abcb15c20f7306d36e1397a9d6dd6d5f16f5cc62 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Sun, 5 Feb 2023 14:07:54 +0100 Subject: [PATCH 07/24] category: remove left/right --- category.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/category.py b/category.py index c5fa3a8..42e1ec7 100644 --- a/category.py +++ b/category.py @@ -16,30 +16,26 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): name = fields.Char(string='Name', required=True, translate=True) parent = fields.Many2One(string='Parent', select=True, - model_name='cashbook.bookcategory', ondelete='CASCADE', - left='left', right='right') + model_name='cashbook.bookcategory', ondelete='CASCADE') childs = fields.One2Many(string='Children', field='parent', model_name='cashbook.bookcategory') - left = fields.Integer(string='Left', required=True, select=True) - right = fields.Integer(string='Right', required=True, select=True) cashbooks = fields.Many2Many(string='Cashbooks', relation_name='cashbook.bookcategory-rel', origin='category', target='cashbook') + @classmethod + def __register__(cls, module_name): + super(Category, cls).__register__(module_name) + table = cls.__table_handler__(module_name) + table.drop_column('left') + table.drop_column('right') + @classmethod def __setup__(cls): super(Category, cls).__setup__() cls._order.insert(0, ('rec_name', 'ASC')) - @staticmethod - def default_left(): - return 0 - - @staticmethod - def default_right(): - return 0 - @staticmethod def default_company(): return Transaction().context.get('company') or None From 68961c4675488d7deaa07822de841fb628b08649 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Sun, 5 Feb 2023 14:07:54 +0100 Subject: [PATCH 08/24] category: remove left/right --- category.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/category.py b/category.py index c5fa3a8..42e1ec7 100644 --- a/category.py +++ b/category.py @@ -16,30 +16,26 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): name = fields.Char(string='Name', required=True, translate=True) parent = fields.Many2One(string='Parent', select=True, - model_name='cashbook.bookcategory', ondelete='CASCADE', - left='left', right='right') + model_name='cashbook.bookcategory', ondelete='CASCADE') childs = fields.One2Many(string='Children', field='parent', model_name='cashbook.bookcategory') - left = fields.Integer(string='Left', required=True, select=True) - right = fields.Integer(string='Right', required=True, select=True) cashbooks = fields.Many2Many(string='Cashbooks', relation_name='cashbook.bookcategory-rel', origin='category', target='cashbook') + @classmethod + def __register__(cls, module_name): + super(Category, cls).__register__(module_name) + table = cls.__table_handler__(module_name) + table.drop_column('left') + table.drop_column('right') + @classmethod def __setup__(cls): super(Category, cls).__setup__() cls._order.insert(0, ('rec_name', 'ASC')) - @staticmethod - def default_left(): - return 0 - - @staticmethod - def default_right(): - return 0 - @staticmethod def default_company(): return Transaction().context.get('company') or None From 07df52b6e91a5041d86eaf7a7e39c8836feb43f3 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Sun, 5 Feb 2023 18:13:45 +0100 Subject: [PATCH 09/24] Version 6.0.3 --- README.rst | 4 ++++ tryton.cfg | 2 +- versiondep.txt | 3 +-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index a983488..f6d59d2 100644 --- a/README.rst +++ b/README.rst @@ -14,6 +14,10 @@ Requires Changes ======= +*6.0.3 - 05.02.2023* + +- updt: remove left/right fields + *6.0.2 - 08.11.2022* - add: show linked cashbook on category-form diff --git a/tryton.cfg b/tryton.cfg index c5f5393..5186781 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.2 +version=6.0.3 depends: cashbook xml: diff --git a/versiondep.txt b/versiondep.txt index e56514a..453e18c 100644 --- a/versiondep.txt +++ b/versiondep.txt @@ -1,2 +1 @@ -cashbook;6.0.19;6.0.999;mds - +cashbook;6.0.24;6.0.999;mds From 6457a8a4acefe6f65212e3c5ef1c2cda12bbab3e Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 14 Feb 2023 10:37:25 +0100 Subject: [PATCH 11/24] setup.py --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 235b3ab..139b476 100644 --- a/setup.py +++ b/setup.py @@ -68,6 +68,7 @@ setup(name='%s_%s' % (PREFIX, MODULE), description='Tryton module to add categories for cashbooks.', long_description=long_description, url='https://www.m-ds.de/', + download_url='https://scmdev.m-ds.de/Tryton/Extra/cashbook_bookcategory', author='martin-data services', author_email='service@m-ds.de', license='GPL-3', From 7cf82a82ba6d69c1d84249c8f2326c800eeeb959 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 14 Feb 2023 10:37:25 +0100 Subject: [PATCH 12/24] setup.py --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 235b3ab..139b476 100644 --- a/setup.py +++ b/setup.py @@ -68,6 +68,7 @@ setup(name='%s_%s' % (PREFIX, MODULE), description='Tryton module to add categories for cashbooks.', long_description=long_description, url='https://www.m-ds.de/', + download_url='https://scmdev.m-ds.de/Tryton/Extra/cashbook_bookcategory', author='martin-data services', author_email='service@m-ds.de', license='GPL-3', From 91674d81e316ff4b46ce4d3455ffd86e78bcdf42 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 14 Feb 2023 10:39:35 +0100 Subject: [PATCH 13/24] setup 2nd --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 139b476..728ff37 100644 --- a/setup.py +++ b/setup.py @@ -67,6 +67,7 @@ setup(name='%s_%s' % (PREFIX, MODULE), version=info.get('version', '0.0.1'), description='Tryton module to add categories for cashbooks.', long_description=long_description, + long_description_content_type='text/x-rst', url='https://www.m-ds.de/', download_url='https://scmdev.m-ds.de/Tryton/Extra/cashbook_bookcategory', author='martin-data services', From 2a4fbbabdd005f104cc99a04f77f9a6500f1b599 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Tue, 14 Feb 2023 10:39:35 +0100 Subject: [PATCH 14/24] setup 2nd --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 139b476..728ff37 100644 --- a/setup.py +++ b/setup.py @@ -67,6 +67,7 @@ setup(name='%s_%s' % (PREFIX, MODULE), version=info.get('version', '0.0.1'), description='Tryton module to add categories for cashbooks.', long_description=long_description, + long_description_content_type='text/x-rst', url='https://www.m-ds.de/', download_url='https://scmdev.m-ds.de/Tryton/Extra/cashbook_bookcategory', author='martin-data services', From 4ae07b962fe3588f92a50f7eebb02d156840a493 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 5 Jun 2023 21:06:03 +0200 Subject: [PATCH 15/24] formatting --- __init__.py | 1 + book.py | 9 ++++++--- category.py | 12 ++++++++---- tests/__init__.py | 16 +++++++++------- tests/test_category.py | 13 ++++++------- 5 files changed, 30 insertions(+), 21 deletions(-) diff --git a/__init__.py b/__init__.py index 11bfdee..e8af3da 100644 --- a/__init__.py +++ b/__init__.py @@ -7,6 +7,7 @@ from trytond.pool import Pool from .category import Category from .book import CategoryCashbookRel, Cashbook + def register(): Pool.register( Category, diff --git a/book.py b/book.py index 8390766..00a2d5e 100644 --- a/book.py +++ b/book.py @@ -9,7 +9,8 @@ from trytond.pool import PoolMeta class Cashbook(metaclass=PoolMeta): __name__ = 'cashbook.book' - categories = fields.Many2Many(string='Categories', + categories = fields.Many2Many( + string='Categories', relation_name='cashbook.bookcategory-rel', origin='cashbook', target='category') @@ -20,9 +21,11 @@ class CategoryCashbookRel(ModelSQL): 'Category Cashbook Relation' __name__ = 'cashbook.bookcategory-rel' - category = fields.Many2One(string='Category', required=True, select=True, + category = fields.Many2One( + string='Category', required=True, select=True, model_name='cashbook.bookcategory', ondelete='CASCADE') - cashbook = fields.Many2One(string='Cashbook', required=True, select=True, + cashbook = fields.Many2One( + string='Cashbook', required=True, select=True, model_name='cashbook.book', ondelete='CASCADE') # end CategoryCashbookRel diff --git a/category.py b/category.py index 42e1ec7..b428e51 100644 --- a/category.py +++ b/category.py @@ -11,16 +11,20 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): "Cashbook Category" __name__ = "cashbook.bookcategory" - company = fields.Many2One(string='Company', model_name='company.company', + company = fields.Many2One( + string='Company', model_name='company.company', required=True, ondelete="RESTRICT") name = fields.Char(string='Name', required=True, translate=True) - parent = fields.Many2One(string='Parent', select=True, + parent = fields.Many2One( + string='Parent', select=True, model_name='cashbook.bookcategory', ondelete='CASCADE') - childs = fields.One2Many(string='Children', field='parent', + childs = fields.One2Many( + string='Children', field='parent', model_name='cashbook.bookcategory') - cashbooks = fields.Many2Many(string='Cashbooks', + cashbooks = fields.Many2Many( + string='Cashbooks', relation_name='cashbook.bookcategory-rel', origin='category', target='cashbook') diff --git a/tests/__init__.py b/tests/__init__.py index ead6f2c..a6930ba 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,24 +1,26 @@ -# This file is part of Tryton. The COPYRIGHT file at the top level of -# this repository contains the full copyright notices and license terms. +# -*- coding: utf-8 -*- +# 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 trytond.modules.cashbook_bookcategory.tests.test_category import CategoryTestCase +from .test_category import CategoryTestCase __all__ = ['suite'] -class CashbookCategoryTestCase(\ - CategoryTestCase,\ - ): +class CashbookCategoryTestCase(CategoryTestCase): 'Test cashbook module' module = 'cashbook_bookcategory' # end CashbookCategoryTestCase + def suite(): suite = trytond.tests.test_tryton.suite() - suite.addTests(unittest.TestLoader().loadTestsFromTestCase(CashbookCategoryTestCase)) + suite.addTests(unittest.TestLoader().loadTestsFromTestCase( + CashbookCategoryTestCase)) return suite diff --git a/tests/test_category.py b/tests/test_category.py index 6ec3c31..4bf63d5 100644 --- a/tests/test_category.py +++ b/tests/test_category.py @@ -3,10 +3,9 @@ # The COPYRIGHT file at the top level of this repository contains the # full copyright notices and license terms. -from trytond.tests.test_tryton import ModuleTestCase, with_transaction +from trytond.tests.test_tryton import with_transaction from trytond.pool import Pool from trytond.transaction import Transaction -from trytond.exceptions import UserError from trytond.modules.cashbook.tests import CashbookTestCase @@ -22,8 +21,7 @@ class CategoryTestCase(CashbookTestCase): company = self.prep_company() with Transaction().set_context({ - 'company': company.id, - }): + 'company': company.id}): categories, = BookCategory.create([{ 'name': 'Cat 0', 'childs': [('create', [{ @@ -56,8 +54,7 @@ class CategoryTestCase(CashbookTestCase): types = self.prep_type() company = self.prep_company() with Transaction().set_context({ - 'company': company.id, - }): + 'company': company.id}): category, = BookCategory.create([{ 'name': 'Cat 0', 'childs': [('create', [{ @@ -79,7 +76,9 @@ class CategoryTestCase(CashbookTestCase): self.assertEqual(book.categories[0].rec_name, 'Cat 0') self.assertEqual(len(category.cashbooks), 1) - self.assertEqual(category.cashbooks[0].rec_name, 'Book 1 | 0.00 usd | Open') + self.assertEqual( + category.cashbooks[0].rec_name, + 'Book 1 | 0.00 usd | Open') # replace category Book.write(*[ From f4597378c3c0975562b546cf1ce4abcb9327cc5d Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 5 Jun 2023 21:06:03 +0200 Subject: [PATCH 16/24] formatting --- __init__.py | 1 + book.py | 9 ++++++--- category.py | 12 ++++++++---- tests/__init__.py | 16 +++++++++------- tests/test_category.py | 13 ++++++------- 5 files changed, 30 insertions(+), 21 deletions(-) diff --git a/__init__.py b/__init__.py index 11bfdee..e8af3da 100644 --- a/__init__.py +++ b/__init__.py @@ -7,6 +7,7 @@ from trytond.pool import Pool from .category import Category from .book import CategoryCashbookRel, Cashbook + def register(): Pool.register( Category, diff --git a/book.py b/book.py index 8390766..00a2d5e 100644 --- a/book.py +++ b/book.py @@ -9,7 +9,8 @@ from trytond.pool import PoolMeta class Cashbook(metaclass=PoolMeta): __name__ = 'cashbook.book' - categories = fields.Many2Many(string='Categories', + categories = fields.Many2Many( + string='Categories', relation_name='cashbook.bookcategory-rel', origin='cashbook', target='category') @@ -20,9 +21,11 @@ class CategoryCashbookRel(ModelSQL): 'Category Cashbook Relation' __name__ = 'cashbook.bookcategory-rel' - category = fields.Many2One(string='Category', required=True, select=True, + category = fields.Many2One( + string='Category', required=True, select=True, model_name='cashbook.bookcategory', ondelete='CASCADE') - cashbook = fields.Many2One(string='Cashbook', required=True, select=True, + cashbook = fields.Many2One( + string='Cashbook', required=True, select=True, model_name='cashbook.book', ondelete='CASCADE') # end CategoryCashbookRel diff --git a/category.py b/category.py index 42e1ec7..b428e51 100644 --- a/category.py +++ b/category.py @@ -11,16 +11,20 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): "Cashbook Category" __name__ = "cashbook.bookcategory" - company = fields.Many2One(string='Company', model_name='company.company', + company = fields.Many2One( + string='Company', model_name='company.company', required=True, ondelete="RESTRICT") name = fields.Char(string='Name', required=True, translate=True) - parent = fields.Many2One(string='Parent', select=True, + parent = fields.Many2One( + string='Parent', select=True, model_name='cashbook.bookcategory', ondelete='CASCADE') - childs = fields.One2Many(string='Children', field='parent', + childs = fields.One2Many( + string='Children', field='parent', model_name='cashbook.bookcategory') - cashbooks = fields.Many2Many(string='Cashbooks', + cashbooks = fields.Many2Many( + string='Cashbooks', relation_name='cashbook.bookcategory-rel', origin='category', target='cashbook') diff --git a/tests/__init__.py b/tests/__init__.py index ead6f2c..a6930ba 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,24 +1,26 @@ -# This file is part of Tryton. The COPYRIGHT file at the top level of -# this repository contains the full copyright notices and license terms. +# -*- coding: utf-8 -*- +# 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 trytond.modules.cashbook_bookcategory.tests.test_category import CategoryTestCase +from .test_category import CategoryTestCase __all__ = ['suite'] -class CashbookCategoryTestCase(\ - CategoryTestCase,\ - ): +class CashbookCategoryTestCase(CategoryTestCase): 'Test cashbook module' module = 'cashbook_bookcategory' # end CashbookCategoryTestCase + def suite(): suite = trytond.tests.test_tryton.suite() - suite.addTests(unittest.TestLoader().loadTestsFromTestCase(CashbookCategoryTestCase)) + suite.addTests(unittest.TestLoader().loadTestsFromTestCase( + CashbookCategoryTestCase)) return suite diff --git a/tests/test_category.py b/tests/test_category.py index 6ec3c31..4bf63d5 100644 --- a/tests/test_category.py +++ b/tests/test_category.py @@ -3,10 +3,9 @@ # The COPYRIGHT file at the top level of this repository contains the # full copyright notices and license terms. -from trytond.tests.test_tryton import ModuleTestCase, with_transaction +from trytond.tests.test_tryton import with_transaction from trytond.pool import Pool from trytond.transaction import Transaction -from trytond.exceptions import UserError from trytond.modules.cashbook.tests import CashbookTestCase @@ -22,8 +21,7 @@ class CategoryTestCase(CashbookTestCase): company = self.prep_company() with Transaction().set_context({ - 'company': company.id, - }): + 'company': company.id}): categories, = BookCategory.create([{ 'name': 'Cat 0', 'childs': [('create', [{ @@ -56,8 +54,7 @@ class CategoryTestCase(CashbookTestCase): types = self.prep_type() company = self.prep_company() with Transaction().set_context({ - 'company': company.id, - }): + 'company': company.id}): category, = BookCategory.create([{ 'name': 'Cat 0', 'childs': [('create', [{ @@ -79,7 +76,9 @@ class CategoryTestCase(CashbookTestCase): self.assertEqual(book.categories[0].rec_name, 'Cat 0') self.assertEqual(len(category.cashbooks), 1) - self.assertEqual(category.cashbooks[0].rec_name, 'Book 1 | 0.00 usd | Open') + self.assertEqual( + category.cashbooks[0].rec_name, + 'Book 1 | 0.00 usd | Open') # replace category Book.write(*[ From e0e1fd07a797f1e235cf32f1e15caa250387cf9c Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 5 Jun 2023 21:28:09 +0200 Subject: [PATCH 17/24] Tryton 6.8: indexes + tests changed --- README.rst | 6 +++--- book.py | 4 ++-- category.py | 2 +- setup.py | 3 ++- tests/__init__.py | 22 ---------------------- tests/test_category.py | 5 ++++- tryton.cfg | 2 +- versiondep.txt | 2 +- 8 files changed, 14 insertions(+), 32 deletions(-) diff --git a/README.rst b/README.rst index 7b12126..49aa477 100644 --- a/README.rst +++ b/README.rst @@ -9,11 +9,11 @@ pip install mds-cashbook-bookcategory Requires ======== -- Tryton 6.0 +- Tryton 6.8 Changes ======= -*6.0.0 - 07.11.2022* +*6.8.4 - 05.06.2023* -- init +- code optimized, porting to Tryton 6.8 diff --git a/book.py b/book.py index 00a2d5e..ee219a4 100644 --- a/book.py +++ b/book.py @@ -22,10 +22,10 @@ class CategoryCashbookRel(ModelSQL): __name__ = 'cashbook.bookcategory-rel' category = fields.Many2One( - string='Category', required=True, select=True, + string='Category', required=True, model_name='cashbook.bookcategory', ondelete='CASCADE') cashbook = fields.Many2One( - string='Cashbook', required=True, select=True, + string='Cashbook', required=True, model_name='cashbook.book', ondelete='CASCADE') # end CategoryCashbookRel diff --git a/category.py b/category.py index b428e51..7b97dcb 100644 --- a/category.py +++ b/category.py @@ -17,7 +17,7 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): name = fields.Char(string='Name', required=True, translate=True) parent = fields.Many2One( - string='Parent', select=True, + string='Parent', model_name='cashbook.bookcategory', ondelete='CASCADE') childs = fields.One2Many( string='Children', field='parent', diff --git a/setup.py b/setup.py index 728ff37..23a7db4 100644 --- a/setup.py +++ b/setup.py @@ -40,7 +40,7 @@ with open(path.join(here, 'versiondep.txt'), encoding='utf-8') as f: # tryton-version major_version = 6 -minor_version = 0 +minor_version = 8 requires = [] for dep in info.get('depends', []): @@ -89,6 +89,7 @@ setup(name='%s_%s' % (PREFIX, MODULE), '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 category', diff --git a/tests/__init__.py b/tests/__init__.py index a6930ba..cf7e957 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -2,25 +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_category import CategoryTestCase - - -__all__ = ['suite'] - - -class CashbookCategoryTestCase(CategoryTestCase): - 'Test cashbook module' - module = 'cashbook_bookcategory' - -# end CashbookCategoryTestCase - - -def suite(): - suite = trytond.tests.test_tryton.suite() - suite.addTests(unittest.TestLoader().loadTestsFromTestCase( - CashbookCategoryTestCase)) - return suite diff --git a/tests/test_category.py b/tests/test_category.py index 4bf63d5..ddc689d 100644 --- a/tests/test_category.py +++ b/tests/test_category.py @@ -6,7 +6,7 @@ from trytond.tests.test_tryton import with_transaction from trytond.pool import Pool from trytond.transaction import Transaction -from trytond.modules.cashbook.tests import CashbookTestCase +from trytond.modules.cashbook.tests.test_module import CashbookTestCase class CategoryTestCase(CashbookTestCase): @@ -98,3 +98,6 @@ class CategoryTestCase(CashbookTestCase): self.assertEqual(len(book.categories), 0) # end CategoryTestCase + + +del CashbookTestCase diff --git a/tryton.cfg b/tryton.cfg index ba1dc2c..458dffc 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.0 +version=6.8.4 depends: cashbook xml: diff --git a/versiondep.txt b/versiondep.txt index e56514a..4191fe8 100644 --- a/versiondep.txt +++ b/versiondep.txt @@ -1,2 +1,2 @@ -cashbook;6.0.19;6.0.999;mds +cashbook;6.8.28;6.8.999;mds From 282917a6178f57fb9f95043ea8f72a9da6977f76 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 5 Jun 2023 21:39:00 +0200 Subject: [PATCH 18/24] Version 6.0.4 --- README.rst | 4 ++++ tryton.cfg | 2 +- versiondep.txt | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index f6d59d2..207238b 100644 --- a/README.rst +++ b/README.rst @@ -14,6 +14,10 @@ Requires Changes ======= +*6.0.4 - 05.06.2023* + +- code optimized + *6.0.3 - 05.02.2023* - updt: remove left/right fields diff --git a/tryton.cfg b/tryton.cfg index 5186781..706d511 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.3 +version=6.0.4 depends: cashbook xml: diff --git a/versiondep.txt b/versiondep.txt index 453e18c..834317e 100644 --- a/versiondep.txt +++ b/versiondep.txt @@ -1 +1 @@ -cashbook;6.0.24;6.0.999;mds +cashbook;6.0.28;6.0.999;mds From 126daacf0aa22a76453c353e73d59af48e83de04 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Fri, 1 Dec 2023 12:13:39 +0100 Subject: [PATCH 20/24] formatting --- setup.py | 69 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/setup.py b/setup.py index 23a7db4..b9b4bd6 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,7 +36,7 @@ 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 @@ -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 categories for cashbooks.', long_description=long_description, @@ -74,36 +76,33 @@ 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', - 'Programming Language :: Python :: 3.9', + '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 category', 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', - 'view/*.xml', - 'versiondep.txt', 'README.rst']), + 'trytond.modules.%s' % MODULE: (info.get('xml', []) + [ + 'tryton.cfg', 'locale/*.po', 'tests/*.py', + 'view/*.xml', 'versiondep.txt', 'README.rst']), }, - install_requires=requires, zip_safe=False, entry_points=""" From 176c8d93a7b37aa33f4c6fcaf08d4275f63a36e7 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Fri, 1 Dec 2023 12:15:17 +0100 Subject: [PATCH 21/24] Tryton 7.0 --- README.rst | 6 +++--- setup.py | 4 ++-- tryton.cfg | 2 +- versiondep.txt | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.rst b/README.rst index 49aa477..8ef20d6 100644 --- a/README.rst +++ b/README.rst @@ -9,11 +9,11 @@ pip install mds-cashbook-bookcategory Requires ======== -- Tryton 6.8 +- Tryton 7.0 Changes ======= -*6.8.4 - 05.06.2023* +*7.0.0 - 01.12.2023* -- code optimized, porting to Tryton 6.8 +- compatibilty to Tryton 7.0 diff --git a/setup.py b/setup.py index b9b4bd6..043ba3f 100644 --- a/setup.py +++ b/setup.py @@ -39,8 +39,8 @@ with open(path.join(here, 'versiondep.txt'), encoding='utf-8') as f: modversion[l2[0]] = {'min': l2[1], 'max': l2[2], 'prefix': l2[3]} # tryton-version -major_version = 6 -minor_version = 8 +major_version = 7 +minor_version = 0 requires = [] for dep in info.get('depends', []): diff --git a/tryton.cfg b/tryton.cfg index 458dffc..8fb9398 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.8.4 +version=7.0.0 depends: cashbook xml: diff --git a/versiondep.txt b/versiondep.txt index 4191fe8..afb67b8 100644 --- a/versiondep.txt +++ b/versiondep.txt @@ -1,2 +1,2 @@ -cashbook;6.8.28;6.8.999;mds +cashbook;7.0.31;7.0.999;mds From a98b4387c4bac042d3d801b31f45b4e055b9a299 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 4 Dec 2023 20:05:06 +0100 Subject: [PATCH 22/24] ir-rule: condition --> Eval('user_id', -1) --- __init__.py | 2 ++ category.xml | 2 +- ir.py | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 ir.py diff --git a/__init__.py b/__init__.py index e8af3da..e5bafe6 100644 --- a/__init__.py +++ b/__init__.py @@ -6,6 +6,7 @@ from trytond.pool import Pool from .category import Category from .book import CategoryCashbookRel, Cashbook +from .ir import Rule def register(): @@ -13,4 +14,5 @@ def register(): Category, Cashbook, CategoryCashbookRel, + Rule, module='cashbook_bookcategory', type_='model') diff --git a/category.xml b/category.xml index eab3ea6..41b5fbb 100644 --- a/category.xml +++ b/category.xml @@ -115,7 +115,7 @@ diff --git a/ir.py b/ir.py new file mode 100644 index 0000000..0e71a97 --- /dev/null +++ b/ir.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# This file is part of the cashbook-module from m-ds.de for Tryton. +# The COPYRIGHT file at the top level of this repository contains the +# full copyright notices and license terms. + +from trytond.transaction import Transaction +from trytond.pool import PoolMeta + + +class Rule(metaclass=PoolMeta): + __name__ = 'ir.rule' + + @classmethod + def _context_modelnames(cls): + """ list of models to add 'user_id' to context + """ + return super(Rule, cls)._context_modelnames() + [ + 'cashbook.bookcategory'] + +# end Rule From f7fee173d7a7fea0d6e80c0d45497fdfff0bce50 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Fri, 19 Jul 2024 16:01:44 +0200 Subject: [PATCH 23/24] update gitignore --- .hgignore => .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .hgignore => .gitignore (87%) diff --git a/.hgignore b/.gitignore similarity index 87% rename from .hgignore rename to .gitignore index e2b39b0..88532e8 100644 --- a/.hgignore +++ b/.gitignore @@ -1,4 +1,4 @@ -syntax: glob +*.pyc build/* mds_cashbook_bookcategory.egg-info/* dist/* From 1bfa98774620c0b2593cbfbc2fd1a15cce3c9718 Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Fri, 19 Jul 2024 16:02:19 +0200 Subject: [PATCH 24/24] Use 'irrulecontext' to add 'user_id' to context of ir.rule --- ir.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ir.py b/ir.py index 0e71a97..182092e 100644 --- a/ir.py +++ b/ir.py @@ -3,7 +3,6 @@ # The COPYRIGHT file at the top level of this repository contains the # full copyright notices and license terms. -from trytond.transaction import Transaction from trytond.pool import PoolMeta @@ -14,7 +13,9 @@ class Rule(metaclass=PoolMeta): def _context_modelnames(cls): """ list of models to add 'user_id' to context """ - return super(Rule, cls)._context_modelnames() + [ - 'cashbook.bookcategory'] + result = super(Rule, cls)._context_modelnames() + return result | { + 'cashbook.bookcategory', + } # end Rule