From 4cd64ef8aac15d62641d5862c7bd30a76ee0429b Mon Sep 17 00:00:00 2001 From: eloyoussef Date: Thu, 22 Mar 2018 16:47:54 +0100 Subject: [PATCH 1/8] =?UTF-8?q?ajout=20du=20module=20et=20wizard=20=C3=A0?= =?UTF-8?q?=20lancer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- golem_precreation_member/__init__.py | 19 ++ golem_precreation_member/__manifest__.py | 31 +++ golem_precreation_member/models/__init__.py | 19 ++ .../models/golem_member.py | 39 ++++ golem_precreation_member/tests/__init__.py | 18 ++ .../tests/test_golem_member.py | 180 ++++++++++++++++++ .../views/golem_member_views.xml | 37 ++++ golem_precreation_member/wizard/__init__.py | 19 ++ .../wizard/golem_precreation_member_wizard.py | 26 +++ .../golem_precreation_member_wizard_views.xml | 49 +++++ 10 files changed, 437 insertions(+) create mode 100644 golem_precreation_member/__init__.py create mode 100644 golem_precreation_member/__manifest__.py create mode 100644 golem_precreation_member/models/__init__.py create mode 100644 golem_precreation_member/models/golem_member.py create mode 100644 golem_precreation_member/tests/__init__.py create mode 100644 golem_precreation_member/tests/test_golem_member.py create mode 100644 golem_precreation_member/views/golem_member_views.xml create mode 100644 golem_precreation_member/wizard/__init__.py create mode 100644 golem_precreation_member/wizard/golem_precreation_member_wizard.py create mode 100644 golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml diff --git a/golem_precreation_member/__init__.py b/golem_precreation_member/__init__.py new file mode 100644 index 0000000..f95e908 --- /dev/null +++ b/golem_precreation_member/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import models, wizard diff --git a/golem_precreation_member/__manifest__.py b/golem_precreation_member/__manifest__.py new file mode 100644 index 0000000..e402fbc --- /dev/null +++ b/golem_precreation_member/__manifest__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +{ + 'name': 'GOLEM Pre-creation search member', + 'summary': 'Pre-creation search member', + 'version': '10.0.0.0.0', + 'category': 'GOLEM', + 'author': 'Fabien Bourgeois, Youssef El ouahby', + 'license': 'AGPL-3', + 'application': True, + 'installable': True, + 'depends': ['golem_member', 'golem_family'], + 'data': ['views/golem_member_views.xml', + 'wizard/golem_precreation_member_wizard_views.xml'] +} diff --git a/golem_precreation_member/models/__init__.py b/golem_precreation_member/models/__init__.py new file mode 100644 index 0000000..d74b40a --- /dev/null +++ b/golem_precreation_member/models/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import golem_member diff --git a/golem_precreation_member/models/golem_member.py b/golem_precreation_member/models/golem_member.py new file mode 100644 index 0000000..b49d4e4 --- /dev/null +++ b/golem_precreation_member/models/golem_member.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" GOLEM Members """ + +import logging +from odoo import models, fields, api, _ +from odoo.exceptions import UserError +_LOGGER = logging.getLogger(__name__) + + +class GolemMember(models.Model): + """ GOLEM Member model """ + _inherit = 'golem.member' + + @api.multi + def precreation_search(self): + self.ensure_one() + return {'name' : _('Please enter the rejection reason'), + 'type' : 'ir.actions.act_window', + 'res_model' : 'golem.precreation.member.wizard', + #'context': {'default_reservation_id': reservation_id.id}, + 'view_mode': 'form', + 'target': 'new'} diff --git a/golem_precreation_member/tests/__init__.py b/golem_precreation_member/tests/__init__.py new file mode 100644 index 0000000..0f44c19 --- /dev/null +++ b/golem_precreation_member/tests/__init__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import test_golem_member diff --git a/golem_precreation_member/tests/test_golem_member.py b/golem_precreation_member/tests/test_golem_member.py new file mode 100644 index 0000000..d58cb81 --- /dev/null +++ b/golem_precreation_member/tests/test_golem_member.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- + +# Copyright 2017 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" GOLEM member testing """ + +from odoo import exceptions +from odoo.tests.common import TransactionCase +# from psycopg2 import IntegrityError + + +class GolemMemberTestCase(TransactionCase): + """ GOLEM member testing """ + + def setUp(self, *args, **kwargs): + """ Bootstrap season and members """ + super(GolemMemberTestCase, self).setUp(*args, **kwargs) + self.member_numberconfig_model = self.env['golem.member.numberconfig'] + season_mdl = self.env['golem.season'].sudo() + self.season_current = season_mdl.create({'name': u'Current'}) + self.season_current.do_default_season() + self.season_next = season_mdl.create({'name': u'Next'}) + self.member_model = self.env['golem.member'].sudo() + mcrt = self.member_model.create + self.member1 = mcrt({'lastname': u'LAST', 'firstname': u'First'}) + self.member2 = mcrt({'lastname': u'LAST', 'firstname': u'Young', + 'birthdate_date': '2016-01-01'}) + + def test_member_creation_noname(self): + """ Test creation of member without needed parameters """ + with self.assertRaises(exceptions.ValidationError) as exc_cm: + self.member_model.create({}) + self.assertIn('Error(s) with partner', exc_cm.exception.args[0]) + self.assertEqual('No name is set.', exc_cm.exception.args[1]) + + def test_current_season(self): + """ Test if default season if fixed according to setUp and if users + are correctly seen """ + self.assertEqual(self.member_model._default_season(), + self.season_current) + self.assertTrue(self.member1.is_current) + self.assertTrue(self.member2.is_current) + self.season_next.do_default_season() + self.assertFalse(self.member1.is_current) + self.assertFalse(self.member2.is_current) + + def test_member_numbers_manual(self): + """ Tests manual member number generation """ + conf = self.member_numberconfig_model.create({'is_automatic': '0'}) + conf.apply_recompute() + self.assertFalse(self.member1.number) + self.member1.number_manual = u'M01' + self.assertEqual(self.member1.number_manual, self.member1.number) + # **Can not test IntegrityError without Odoo ERROR...** + # with self.assertRaises(IntegrityError) as cm: + # self.member2.number_manual = u'M01' + # self.assertIn('duplicate key value violates unique constraint', + # cm.exception.args[0]) + + def test_member_numbers_auto_season(self): + """ Tests per season automatic member number generation + prefix """ + conf = self.member_numberconfig_model.create({'is_automatic': '1', + 'is_per_season': '1', + 'prefix': u'M'}) + conf.apply_recompute() + self.assertEqual(self.member1.number, u'M1') + self.assertEqual(self.member2.number, u'M2') + + self.member2.season_ids += self.season_next + self.assertEqual(self.member2.number, u'M2') + self.season_next.do_default_season() + self.assertTrue(self.member2.is_current) + self.assertEqual(self.member2.number, u'M1') + self.assertFalse(self.member1.is_current) + self.assertFalse(self.member1.number) + + def test_mnumbers_auto_season_from(self): + """ Tests per season automatic member number + number_from """ + conf = self.member_numberconfig_model.create({'is_automatic': '1', + 'is_per_season': '1', + 'prefix': False, + 'number_from': 100}) + conf.apply_recompute() + self.assertEqual(self.member1.number, u'100') + self.assertEqual(self.member2.number, u'101') + + self.member2.season_ids += self.season_next + self.assertEqual(self.member2.number, u'101') + self.season_next.do_default_season() + self.assertTrue(self.member2.is_current) + self.assertEqual(self.member2.number, u'100') + self.assertFalse(self.member1.is_current) + self.assertFalse(self.member1.number) + + def test_member_numbers_auto_global(self): + """ Tests global automatic member number generation """ + conf = self.member_numberconfig_model.create({'is_automatic': '1', + 'is_per_season': '0'}) + conf.apply_recompute() + self.assertEqual(self.member1.number, u'1') + self.assertEqual(self.member2.number, u'2') + new_m = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Buddy', + 'season_ids': [self.season_next]}) + self.assertEqual(new_m.number, u'3') + + def test_mnumbers_auto_global_from(self): + """ Tests global automatic member number generation + number_from """ + conf = self.member_numberconfig_model.create({'is_automatic': '1', + 'is_per_season': '0', + 'number_from': 50}) + conf.apply_recompute() + self.assertEqual(self.member1.number, u'50') + self.assertEqual(self.member2.number, u'51') + new_m = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Buddy', + 'season_ids': [self.season_next]}) + self.assertEqual(new_m.number, u'52') + + def test_mnumbers_manual_to_auto(self): + """ Tests generation change withtout whole recompute """ + conf = self.member_numberconfig_model.create({'is_automatic': '0'}) + conf.apply_recompute() + self.assertFalse(self.member1.number) + self.member1.number_manual = u'M01' + self.assertEqual(self.member1.number_manual, self.member1.number) + + # Without number_from + conf = self.member_numberconfig_model.create({'is_automatic': '1', + 'is_per_season': '0', + 'prefix': False}) + conf.apply_nocompute() + self.assertEqual(self.member1.number, u'M01') + new_m = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Dewie', + 'season_ids': [self.season_current]}) + new_m2 = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Dowa', + 'season_ids': [self.season_current]}) + self.assertEqual(new_m.number, u'1') + self.assertEqual(new_m2.number, u'2') + + # With number_from + conf = self.member_numberconfig_model.create({'is_automatic': '1', + 'is_per_season': '0', + 'prefix': False, + 'number_from': 50}) + conf.apply_nocompute() + self.assertEqual(self.member1.number, u'M01') + new_m = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Buddy', + 'season_ids': [self.season_current]}) + new_m2 = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Bobby', + 'season_ids': [self.season_current]}) + self.assertEqual(new_m.number, u'50') + self.assertEqual(new_m2.number, u'51') + # After season changing + self.season_next.do_default_season() + self.assertEqual(self.member1.number, u'M01') + self.assertEqual(new_m.number, u'50') + self.member1.season_ids += self.season_next + self.assertEqual(self.member1.number, u'M01') + new_m3 = self.member_model.create({'lastname': 'NEW', + 'firstname': 'Barny', + 'season_ids': [self.season_current]}) + self.assertEqual(new_m3.number, u'52') diff --git a/golem_precreation_member/views/golem_member_views.xml b/golem_precreation_member/views/golem_member_views.xml new file mode 100644 index 0000000..92c560e --- /dev/null +++ b/golem_precreation_member/views/golem_member_views.xml @@ -0,0 +1,37 @@ + + + + + + + + GOLEM Member Precreation extention Form + golem.member + + + +
+
+
+
+
+ +
+
diff --git a/golem_precreation_member/wizard/__init__.py b/golem_precreation_member/wizard/__init__.py new file mode 100644 index 0000000..b554785 --- /dev/null +++ b/golem_precreation_member/wizard/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from . import golem_precreation_member_wizard diff --git a/golem_precreation_member/wizard/golem_precreation_member_wizard.py b/golem_precreation_member/wizard/golem_precreation_member_wizard.py new file mode 100644 index 0000000..f1401fc --- /dev/null +++ b/golem_precreation_member/wizard/golem_precreation_member_wizard.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +""" GOLEM Precreation member wizard""" + +from odoo import models, fields, api + +class GolemPrecreationMemberWizard(models.TransientModel): + """GOLEM Precreation member wizard """ + _name = "golem.precreation.member.wizard" + + name = fields.Char() diff --git a/golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml b/golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml new file mode 100644 index 0000000..e1493fb --- /dev/null +++ b/golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml @@ -0,0 +1,49 @@ + + + + + + + + Golem Precreation Member Wizard Form + golem.precreation.member.wizard + +
+ + + +
+
+
+
+
+ +
+
From 79c8d501a0f17fea0fc9c99793f4155ac0a5a4c0 Mon Sep 17 00:00:00 2001 From: eloyoussef Date: Fri, 23 Mar 2018 15:44:37 +0100 Subject: [PATCH 2/8] Fonction de recherche de membres --- golem_precreation_member/__manifest__.py | 3 +- .../models/golem_member.py | 27 +++++--- golem_precreation_member/wizard/__init__.py | 2 +- ...golem_precreation_member_request_wizard.py | 46 ++++++++++++++ ...ecreation_member_request_wizard_views.xml} | 22 ++----- ...golem_precreation_member_result_wizard.py} | 9 +-- ...precreation_member_result_wizard_views.xml | 61 +++++++++++++++++++ 7 files changed, 140 insertions(+), 30 deletions(-) create mode 100644 golem_precreation_member/wizard/golem_precreation_member_request_wizard.py rename golem_precreation_member/wizard/{golem_precreation_member_wizard_views.xml => golem_precreation_member_request_wizard_views.xml} (63%) rename golem_precreation_member/wizard/{golem_precreation_member_wizard.py => golem_precreation_member_result_wizard.py} (77%) create mode 100644 golem_precreation_member/wizard/golem_precreation_member_result_wizard_views.xml diff --git a/golem_precreation_member/__manifest__.py b/golem_precreation_member/__manifest__.py index e402fbc..140181c 100644 --- a/golem_precreation_member/__manifest__.py +++ b/golem_precreation_member/__manifest__.py @@ -27,5 +27,6 @@ 'installable': True, 'depends': ['golem_member', 'golem_family'], 'data': ['views/golem_member_views.xml', - 'wizard/golem_precreation_member_wizard_views.xml'] + 'wizard/golem_precreation_member_request_wizard_views.xml', + 'wizard/golem_precreation_member_result_wizard_views.xml'] } diff --git a/golem_precreation_member/models/golem_member.py b/golem_precreation_member/models/golem_member.py index b49d4e4..20347b1 100644 --- a/golem_precreation_member/models/golem_member.py +++ b/golem_precreation_member/models/golem_member.py @@ -18,10 +18,9 @@ """ GOLEM Members """ -import logging -from odoo import models, fields, api, _ -from odoo.exceptions import UserError -_LOGGER = logging.getLogger(__name__) + +from odoo import models, api, _ + class GolemMember(models.Model): @@ -30,10 +29,24 @@ class GolemMember(models.Model): @api.multi def precreation_search(self): + """ Precreation member search """ self.ensure_one() - return {'name' : _('Please enter the rejection reason'), + return {'name' : _('Please enter member searched'), 'type' : 'ir.actions.act_window', - 'res_model' : 'golem.precreation.member.wizard', - #'context': {'default_reservation_id': reservation_id.id}, + 'res_model' : 'golem.precreation.member.request.wizard', 'view_mode': 'form', 'target': 'new'} + @api.multi + def open_line(self): + """ open member form """ + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Member', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': self._name, + 'res_id': self.id, + 'flags': {'initial_mode': 'edit'}, + 'target': 'current', + } diff --git a/golem_precreation_member/wizard/__init__.py b/golem_precreation_member/wizard/__init__.py index b554785..349cc69 100644 --- a/golem_precreation_member/wizard/__init__.py +++ b/golem_precreation_member/wizard/__init__.py @@ -16,4 +16,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from . import golem_precreation_member_wizard +from . import golem_precreation_member_request_wizard, golem_precreation_member_result_wizard diff --git a/golem_precreation_member/wizard/golem_precreation_member_request_wizard.py b/golem_precreation_member/wizard/golem_precreation_member_request_wizard.py new file mode 100644 index 0000000..dc5a31a --- /dev/null +++ b/golem_precreation_member/wizard/golem_precreation_member_request_wizard.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Youssef El Ouahby +# Copyright 2018 Fabien Bourgeois +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +""" GOLEM Precreation Member Request wizard""" + +from odoo import models, fields, api + +class GolemPrecreationMemberRequestWizard(models.TransientModel): + """GOLEM Precreation Request Member Wizard """ + _name = "golem.precreation.member.request.wizard" + + name = fields.Char() + + @api.multi + def search_members(self): + """ Search members """ + self.ensure_one() + domain = ['|', + ('name', 'ilike', self.name), + ('email', 'ilike', self.name)] + members = self.env['golem.member'].search(domain) + + if members: + ids = members.mapped('id') + + return {'name' : ('Member search result "{}"'.format(self.name)), + 'type' : 'ir.actions.act_window', + 'res_model' : 'golem.precreation.member.result.wizard', + 'context': {'default_member_ids': ids}, + 'view_mode': 'form', + 'flags': {'initial_mode': 'view'}, + 'target': 'new'} diff --git a/golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml b/golem_precreation_member/wizard/golem_precreation_member_request_wizard_views.xml similarity index 63% rename from golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml rename to golem_precreation_member/wizard/golem_precreation_member_request_wizard_views.xml index e1493fb..3ded94e 100644 --- a/golem_precreation_member/wizard/golem_precreation_member_wizard_views.xml +++ b/golem_precreation_member/wizard/golem_precreation_member_request_wizard_views.xml @@ -18,32 +18,20 @@ along with this program. If not, see . --> - - - - Golem Precreation Member Wizard Form - golem.precreation.member.wizard - -
+
+
-
diff --git a/golem_precreation_member/wizard/golem_precreation_member_wizard.py b/golem_precreation_member/wizard/golem_precreation_member_result_wizard.py similarity index 77% rename from golem_precreation_member/wizard/golem_precreation_member_wizard.py rename to golem_precreation_member/wizard/golem_precreation_member_result_wizard.py index f1401fc..5365377 100644 --- a/golem_precreation_member/wizard/golem_precreation_member_wizard.py +++ b/golem_precreation_member/wizard/golem_precreation_member_result_wizard.py @@ -19,8 +19,9 @@ from odoo import models, fields, api -class GolemPrecreationMemberWizard(models.TransientModel): - """GOLEM Precreation member wizard """ - _name = "golem.precreation.member.wizard" +class GolemPrecreationMemberResultWizard(models.TransientModel): + """GOLEM Precreation member Result Wizard """ + _name = "golem.precreation.member.result.wizard" - name = fields.Char() + member_ids = fields.Many2many('golem.member') + name_searched = fields.Char(default="test") diff --git a/golem_precreation_member/wizard/golem_precreation_member_result_wizard_views.xml b/golem_precreation_member/wizard/golem_precreation_member_result_wizard_views.xml new file mode 100644 index 0000000..dc110db --- /dev/null +++ b/golem_precreation_member/wizard/golem_precreation_member_result_wizard_views.xml @@ -0,0 +1,61 @@ + + + + + + + + Golem Precreation Member result Wizard Form + golem.precreation.member.result.wizard + +
+ +