forked from Yaltik/golem
Compare commits
211 Commits
ameliorati
...
master
Author | SHA1 | Date | |
---|---|---|---|
b00598eaaa | |||
ab07a57270 | |||
c441499d9d | |||
301f88f537 | |||
f695e36811 | |||
0434781cd0 | |||
4a27a16c90 | |||
06f04b5f82 | |||
f34787e46b | |||
5ad4ee5e70 | |||
5e7a418848 | |||
71f933fdb3 | |||
e0901a879e | |||
51b88463bb | |||
fab585d247 | |||
dfd4b97f84 | |||
2201a3b87f | |||
adc449fca5 | |||
60d9e37d9b | |||
7147abcc50 | |||
dec23148ae | |||
c95a54bd6c | |||
3ad9263f68 | |||
73f53fdec3 | |||
a73eafbc02 | |||
165830363a | |||
d0d8d15799 | |||
17ddecbbfb | |||
3c4ba1beae | |||
9f36b0a365 | |||
481ca0994d | |||
cd2afd3b22 | |||
cbb4c92b5a | |||
e3f7a6c626 | |||
1561a47a83 | |||
a533a6b7f8 | |||
5a4e46f9a5 | |||
e1ff683494 | |||
4898a0d93d | |||
1c3f10ad0a | |||
9705eb0f5a | |||
d895203d1a | |||
9bc6ffd6bb | |||
fed5da9535 | |||
7254c2f737 | |||
408dc00e1b | |||
6482489aa9 | |||
48507f10d6 | |||
f1725b2096 | |||
953d0bca3d | |||
5318431970 | |||
0d5238fca8 | |||
e63feb99c9 | |||
00eafb7837 | |||
6e81fd3026 | |||
58717a8e79 | |||
c46d91bc50 | |||
06e0116283 | |||
89eb287ee1 | |||
cfd6eca541 | |||
fecb1df3e2 | |||
d6320b7b1a | |||
e00dccf50e | |||
9c3dd1c421 | |||
761370b0ca | |||
56a48a311d | |||
c2e6476a2e | |||
07c345f67c | |||
c06eda9a63 | |||
af1bb8966c | |||
703c51c03e | |||
bf088d413e | |||
2c237ce6db | |||
5b338e0704 | |||
3277a0c476 | |||
4a762f83e9 | |||
fc943bf71e | |||
3764bb0f9e | |||
6a7c9beee9 | |||
3bdc141dad | |||
78238bd562 | |||
1c156fe667 | |||
596ec855e8 | |||
f7ceab753f | |||
a11675fe35 | |||
c8ccf3e4fa | |||
41cd2e863a | |||
92370db734 | |||
9390ad88ce | |||
e68bd4c5b2 | |||
6bab130eff | |||
6038b5c807 | |||
7911a9c630 | |||
95426c0e90 | |||
2ae88b9905 | |||
88a28b0091 | |||
96b844b6af | |||
8fa32e185e | |||
5cc81003da | |||
51ab81f916 | |||
a9888427ec | |||
5ca2a14e64 | |||
34a697d5dc | |||
a8807a9798 | |||
2599eb55fb | |||
e3d2c63402 | |||
3dcdd23d90 | |||
d057579378 | |||
55cf4080fb | |||
e146cab234 | |||
0a035ce504 | |||
da07c202f3 | |||
aa9eb113f1 | |||
d78bac1c83 | |||
9fec3aeaef | |||
7b9cbb4145 | |||
64a1fac6c8 | |||
b9639ebef6 | |||
9deb04a196 | |||
41c7339221 | |||
353a920ee0 | |||
473e3da65d | |||
e5285ecebc | |||
519d0ef2ea | |||
452867d084 | |||
5363078872 | |||
b288d83fc0 | |||
c966acc556 | |||
04f383a951 | |||
9735571967 | |||
66b851692e | |||
a0fbf3ac31 | |||
cc479d3908 | |||
0bdf720b02 | |||
4c61b8c342 | |||
942414eaac | |||
6780f279ce | |||
97f5b25534 | |||
45ef7f483f | |||
759a9c957d | |||
c891152b2c | |||
850aeb51ce | |||
35ac9babf0 | |||
44fca4bd4f | |||
1d66f540d0 | |||
201109021d | |||
1bcb4ff5bb | |||
ace87392db | |||
71f7299aaf | |||
03819f5f3c | |||
35c54abc15 | |||
2eda76a20d | |||
6d8863565e | |||
61411705eb | |||
667de88bd8 | |||
0d24d6d69d | |||
561786430a | |||
6307329e98 | |||
5ac1331652 | |||
afddb3c58d | |||
841d91bb41 | |||
9a36a90c80 | |||
3793e1dda3 | |||
ec2b1c5c49 | |||
f82ffa68dd | |||
17eb52ac28 | |||
d0a5bbe6a0 | |||
a0f56faac4 | |||
722756b2a1 | |||
9af857a553 | |||
308ee2e7bd | |||
eaf48497b2 | |||
709f73a7d1 | |||
66b5057709 | |||
459972669c | |||
5e983043e5 | |||
429302448f | |||
6cb4d02808 | |||
18957c4568 | |||
661aabcfe8 | |||
223bc581fd | |||
08927bba53 | |||
87e7bccb57 | |||
4d889a3eba | |||
ba375e62dd | |||
0f07bb09eb | |||
0f92e44b5c | |||
d00462aa41 | |||
518749b78f | |||
e8c38a09ef | |||
206041d3be | |||
59d8b897f6 | |||
425ddd4f02 | |||
cbfccd5515 | |||
0c3a62cac8 | |||
85a734f9c2 | |||
0924ac6437 | |||
2c9e7f2442 | |||
20919252d1 | |||
6dd9652dc1 | |||
ab3c97143e | |||
2720d50099 | |||
fdbae8aa3b | |||
c1116fa129 | |||
4e33afff0b | |||
a4ae56277a | |||
fdf95b6aa5 | |||
6949825e01 | |||
fb626e4885 | |||
656ffd6aa2 | |||
cdefa64770 |
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2016-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -19,7 +19,7 @@
|
||||
'name': 'GOLEM activities',
|
||||
'summary': 'Extends Odoo products for multi-activity',
|
||||
'description': 'Extends Odoo products for multi-activity',
|
||||
'version': '10.0.2.6.1',
|
||||
'version': '10.0.2.8.2',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois, Michel Dessenne',
|
||||
'license': 'AGPL-3',
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-09 13:33+0000\n"
|
||||
"PO-Revision-Date: 2018-08-09 15:47+0200\n"
|
||||
"POT-Creation-Date: 2018-11-01 15:16+0000\n"
|
||||
"PO-Revision-Date: 2018-11-01 16:17+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -173,13 +173,13 @@ msgid "Activity audience"
|
||||
msgstr "Public"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:160
|
||||
#: code:addons/golem_activity/models/golem_activity.py:167
|
||||
#, python-format
|
||||
msgid "Activity end date can not be set after linked season end."
|
||||
msgstr "La date de fin ne peut pas être apprêt la date de fin de la saison."
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:156
|
||||
#: code:addons/golem_activity/models/golem_activity.py:163
|
||||
#, python-format
|
||||
msgid "Activity start date can not be set before linked season start."
|
||||
msgstr "La date de début ne peut pas être avant la date de début de la saison."
|
||||
@ -194,6 +194,12 @@ msgstr "Type d'activité"
|
||||
msgid "Adults"
|
||||
msgstr "Adultes"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_res_partner_animator_activity_ids
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_res_users_animator_activity_ids
|
||||
msgid "Animated activities"
|
||||
msgstr "Activités animées"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_animator_id
|
||||
msgid "Animator"
|
||||
@ -205,7 +211,7 @@ msgid "Arts martiaux"
|
||||
msgstr "Arts martiaux"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4516
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4022
|
||||
msgid "Audience"
|
||||
msgstr "Public"
|
||||
|
||||
@ -392,7 +398,7 @@ msgid "Expense Account"
|
||||
msgstr "Compte de dépenses"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:178
|
||||
#: code:addons/golem_activity/models/golem_activity.py:185
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Friday"
|
||||
@ -573,7 +579,7 @@ msgid "Membership Start Date"
|
||||
msgstr "Date de début d'adhésion"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:174
|
||||
#: code:addons/golem_activity/models/golem_activity.py:181
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Monday"
|
||||
@ -590,6 +596,11 @@ msgstr "Nom"
|
||||
msgid "Others"
|
||||
msgstr "Autres"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "Partenaire"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_price
|
||||
msgid "Price"
|
||||
@ -655,12 +666,6 @@ msgstr "Description achat"
|
||||
msgid "Purchase Unit of Measure"
|
||||
msgstr "Unité de mesure d'achat"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_resource_ids
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_product_product_resource_ids
|
||||
msgid "Resource ids"
|
||||
msgstr "Resources"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description_sale
|
||||
msgid "Sale Description"
|
||||
@ -672,7 +677,7 @@ msgid "Sale Price"
|
||||
msgstr "Prix de vente"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:179
|
||||
#: code:addons/golem_activity/models/golem_activity.py:186
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Saturday"
|
||||
@ -725,8 +730,8 @@ msgid "Start date"
|
||||
msgstr "Date de début"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:153
|
||||
#: code:addons/golem_activity/models/golem_activity.py:205
|
||||
#: code:addons/golem_activity/models/golem_activity.py:160
|
||||
#: code:addons/golem_activity/models/golem_activity.py:212
|
||||
#, python-format
|
||||
msgid "Start of the period cannot be after end of the period."
|
||||
msgstr "Le début de la période ne peut être antérieure à sa fin"
|
||||
@ -742,7 +747,7 @@ msgid "Stop time"
|
||||
msgstr "Heure de fin"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:180
|
||||
#: code:addons/golem_activity/models/golem_activity.py:187
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Sunday"
|
||||
@ -793,7 +798,7 @@ msgid "This field holds the image used as image for the activity."
|
||||
msgstr "This field holds the image used as image for the activity."
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:177
|
||||
#: code:addons/golem_activity/models/golem_activity.py:184
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Thursday"
|
||||
@ -810,14 +815,14 @@ msgid "True"
|
||||
msgstr "True"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:175
|
||||
#: code:addons/golem_activity/models/golem_activity.py:182
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Tuesday"
|
||||
msgstr "Mardi"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3929
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3987
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
@ -854,7 +859,7 @@ msgid "Warranty"
|
||||
msgstr "Garantie"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:176
|
||||
#: code:addons/golem_activity/models/golem_activity.py:183
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Wednesday"
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-09 13:33+0000\n"
|
||||
"PO-Revision-Date: 2018-08-09 13:33+0000\n"
|
||||
"POT-Creation-Date: 2018-11-01 15:16+0000\n"
|
||||
"PO-Revision-Date: 2018-11-01 15:16+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -170,13 +170,13 @@ msgid "Activity audience"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:160
|
||||
#: code:addons/golem_activity/models/golem_activity.py:167
|
||||
#, python-format
|
||||
msgid "Activity end date can not be set after linked season end."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:156
|
||||
#: code:addons/golem_activity/models/golem_activity.py:163
|
||||
#, python-format
|
||||
msgid "Activity start date can not be set before linked season start."
|
||||
msgstr ""
|
||||
@ -191,6 +191,12 @@ msgstr ""
|
||||
msgid "Adults"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_res_partner_animator_activity_ids
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_res_users_animator_activity_ids
|
||||
msgid "Animated activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_animator_id
|
||||
msgid "Animator"
|
||||
@ -202,7 +208,7 @@ msgid "Arts martiaux"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4516
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4022
|
||||
msgid "Audience"
|
||||
msgstr ""
|
||||
|
||||
@ -389,7 +395,7 @@ msgid "Expense Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:178
|
||||
#: code:addons/golem_activity/models/golem_activity.py:185
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Friday"
|
||||
@ -570,7 +576,7 @@ msgid "Membership Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:174
|
||||
#: code:addons/golem_activity/models/golem_activity.py:181
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Monday"
|
||||
@ -587,6 +593,11 @@ msgstr ""
|
||||
msgid "Others"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_price
|
||||
msgid "Price"
|
||||
@ -652,12 +663,6 @@ msgstr ""
|
||||
msgid "Purchase Unit of Measure"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_resource_ids
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_product_product_resource_ids
|
||||
msgid "Resource ids"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description_sale
|
||||
msgid "Sale Description"
|
||||
@ -669,7 +674,7 @@ msgid "Sale Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:179
|
||||
#: code:addons/golem_activity/models/golem_activity.py:186
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Saturday"
|
||||
@ -722,8 +727,8 @@ msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:153
|
||||
#: code:addons/golem_activity/models/golem_activity.py:205
|
||||
#: code:addons/golem_activity/models/golem_activity.py:160
|
||||
#: code:addons/golem_activity/models/golem_activity.py:212
|
||||
#, python-format
|
||||
msgid "Start of the period cannot be after end of the period."
|
||||
msgstr ""
|
||||
@ -739,7 +744,7 @@ msgid "Stop time"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:180
|
||||
#: code:addons/golem_activity/models/golem_activity.py:187
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Sunday"
|
||||
@ -790,7 +795,7 @@ msgid "This field holds the image used as image for the activity."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:177
|
||||
#: code:addons/golem_activity/models/golem_activity.py:184
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Thursday"
|
||||
@ -807,14 +812,14 @@ msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:175
|
||||
#: code:addons/golem_activity/models/golem_activity.py:182
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3929
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3987
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
@ -851,7 +856,7 @@ msgid "Warranty"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:176
|
||||
#: code:addons/golem_activity/models/golem_activity.py:183
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Wednesday"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2016-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -15,4 +15,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_activity
|
||||
from . import golem_activity, golem_season
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -105,8 +105,7 @@ class GolemActivity(models.Model):
|
||||
index=True, auto_join=True,
|
||||
ondelete='restrict')
|
||||
is_default = fields.Boolean('Default season?',
|
||||
compute='_compute_is_default',
|
||||
search='_search_is_default')
|
||||
compute='_compute_is_default', store=True)
|
||||
|
||||
@api.depends('season_id')
|
||||
def _compute_is_default(self):
|
||||
@ -115,18 +114,6 @@ class GolemActivity(models.Model):
|
||||
for activity in self:
|
||||
activity.is_default = (default_season == activity.season_id)
|
||||
|
||||
@api.multi
|
||||
def _search_is_default(self, operator, value):
|
||||
""" Search function for is default """
|
||||
if operator in ('in', '='):
|
||||
operator = '=' if value else '!='
|
||||
elif operator in ('not in', '!='):
|
||||
operator = '!=' if value else '='
|
||||
else:
|
||||
err = _('Unsupported operator for defautl season search')
|
||||
raise NotImplementedError(err)
|
||||
return [('season_id', operator, self.default_season().id)]
|
||||
|
||||
animator_id = fields.Many2one('res.partner', string='Animator',
|
||||
index=True, auto_join=True,
|
||||
domain=[('is_company', '=', False)])
|
||||
@ -221,3 +208,11 @@ class ProductCategory(models.Model):
|
||||
|
||||
property_account_income_categ_id = fields.Many2one(required=True)
|
||||
property_account_expense_categ_id = fields.Many2one(required=True)
|
||||
|
||||
class ResPartner(models.Model):
|
||||
""" GOLEM Member partner adaptations """
|
||||
_inherit = 'res.partner'
|
||||
|
||||
animator_activity_ids = fields.One2many('golem.activity', 'animator_id',
|
||||
string='Animated activities',
|
||||
auto_join=True)
|
||||
|
34
golem_activity/models/golem_season.py
Normal file
34
golem_activity/models/golem_season.py
Normal file
@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Season adaptations """
|
||||
|
||||
from odoo import models, api
|
||||
|
||||
|
||||
class GolemSeason(models.Model):
|
||||
""" GOLEM Season adaptations """
|
||||
_inherit = 'golem.season'
|
||||
|
||||
@api.multi
|
||||
def do_default_season(self):
|
||||
""" Regenerates is_default when season changes """
|
||||
self.ensure_one()
|
||||
res = super(GolemSeason, self).do_default_season()
|
||||
all_activities = self.env['golem.activity'].search([])
|
||||
all_activities._compute_is_default()
|
||||
return res
|
@ -1,15 +1,22 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_product_template_auditor,Access Product Template Auditor,product.model_product_template,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_product_template_user,Access Product Template User,product.model_product_template,golem_base.group_golem_user,1,1,1,0
|
||||
access_product_template_manager,Access Product Template Manager,product.model_product_template,golem_base.group_golem_manager,1,1,1,1
|
||||
access_product_product_auditor,Access Product Product Auditor,product.model_product_product,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_product_product_user,Access Product Product User,product.model_product_product,golem_base.group_golem_user,1,1,1,0
|
||||
access_product_product_manager,Access Product Product Manager,product.model_product_product,golem_base.group_golem_manager,1,1,1,1
|
||||
access_product_price_history_auditor,Access Product Price History Auditor,product.model_product_price_history,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_product_price_history_user,Access Product Price History User,product.model_product_price_history,golem_base.group_golem_user,1,1,1,0
|
||||
access_product_price_history_manager,Access Product Price History Manager,product.model_product_price_history,golem_base.group_golem_manager,1,1,1,1
|
||||
access_product_category_auditor,Access Product Category Auditor,product.model_product_category,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_product_category_user,Access Product Category User,product.model_product_category,golem_base.group_golem_user,1,0,0,0
|
||||
access_product_category_manager,Access Product Category Manager,product.model_product_category,golem_base.group_golem_manager,1,1,1,1
|
||||
access_golem_activity_auditor,Access GOLEM Activity Auditor,model_golem_activity,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_activity_user,Access GOLEM Activity User,model_golem_activity,golem_base.group_golem_user,1,1,1,0
|
||||
access_golem_activity_manager,Access GOLEM Activity Manager,model_golem_activity,golem_base.group_golem_manager,1,1,1,1
|
||||
access_golem_activity_type_auditor,Access GOLEM Activity Type Auditor,model_golem_activity_type,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_activity_type_user,Access GOLEM Activity Type User,model_golem_activity_type,golem_base.group_golem_user,1,1,1,0
|
||||
access_golem_activity_type_manager,Access GOLEM Activity Type Manager,model_golem_activity_type,golem_base.group_golem_manager,1,1,1,1
|
||||
access_golem_activity_audience_auditor,Access GOLEM Activity Audience Auditor,model_golem_activity_audience,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_activity_audience_user,Access GOLEM Activity Audience User,model_golem_activity_audience,golem_base.group_golem_user,1,1,1,0
|
||||
access_golem_activity_audience_manager,Access GOLEM Activity Audience Manager,model_golem_activity_audience,golem_base.group_golem_manager,1,1,1,1
|
||||
|
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2020 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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
|
||||
@ -187,7 +188,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<!-- Actions -->
|
||||
<act_window id="golem_activity_action" name="GOLEM Activities"
|
||||
res_model="golem.activity" view_mode="tree,form,calendar" />
|
||||
res_model="golem.activity" view_mode="tree,form,calendar"
|
||||
context="{'search_default_season_default': 1}"/>
|
||||
<act_window id="golem_activity_type_action" name="GOLEM Activity Types"
|
||||
res_model="golem.activity.type" view_mode="tree" />
|
||||
<act_window id="golem_activity_audience_action" name="GOLEM Activity Audiences"
|
||||
@ -201,25 +203,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<!-- Menus -->
|
||||
<menuitem id="golem_activity_menu" name="Activities" sequence="30"
|
||||
groups="golem_base.group_golem_user"
|
||||
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
|
||||
web_icon="golem_activity,static/description/icon.png" />
|
||||
<menuitem id="golem_activity_menu_list" name="Activities"
|
||||
groups="golem_base.group_golem_user"
|
||||
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
|
||||
parent="golem_activity_menu" sequence="1" action="golem_activity_action" />
|
||||
<menuitem id="golem_activity_menu_configuration" name="Configuration"
|
||||
parent="golem_activity_menu" sequence="90"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
|
||||
<menuitem id="golem_activity_type_menu_list" name="Activity Types"
|
||||
groups="golem_base.group_golem_manager"
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
|
||||
parent="golem_activity_menu_configuration" sequence="5"
|
||||
action="golem_activity_type_action" />
|
||||
<menuitem id="golem_activity_audience_menu_list" name="Activity Audiences"
|
||||
groups="golem_base.group_golem_manager"
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
|
||||
parent="golem_activity_menu_configuration" sequence="7"
|
||||
action="golem_activity_audience_action" />
|
||||
<menuitem id="product_category_menu" name="Categories"
|
||||
parent="golem_activity_menu_configuration" sequence="10"
|
||||
groups="golem_base.group_golem_manager"
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
|
||||
action="product_category_action" />
|
||||
|
||||
</data>
|
||||
|
@ -1,3 +1,4 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
golem_activity_queue_auditor_rule,GOLEM Activity Queue Auditor Rule,model_golem_activity_queue,golem_base.group_golem_auditor,1,0,0,0
|
||||
golem_activity_queue_user_rule,GOLEM Activity Queue User Rule,model_golem_activity_queue,golem_base.group_golem_user,1,1,1,1
|
||||
golem_activity_queue_manager_rule,GOLEM Activity Queue Manager Rule,model_golem_activity_queue,golem_base.group_golem_manager,1,1,1,1
|
||||
|
|
@ -15,4 +15,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import models
|
||||
from . import models, wizard
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -18,7 +18,7 @@
|
||||
{
|
||||
'name': 'GOLEM Activity Member Registrations',
|
||||
'summary': 'GOLEM Activities Member Registrations management',
|
||||
'version': '10.0.1.4.5',
|
||||
'version': '10.0.1.6.5',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois, Michel Dessenne',
|
||||
'license': 'AGPL-3',
|
||||
@ -30,5 +30,7 @@
|
||||
'views/golem_activity_views.xml',
|
||||
'report/golem_member_card_templates.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'report/golem_activity_report_templates.xml']
|
||||
'report/golem_activity_report_templates.xml',
|
||||
'wizard/golem_activity_registration_analysis_wizard_views.xml',
|
||||
'wizard/golem_member_analysis_views.xml']
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-09 14:23+0000\n"
|
||||
"PO-Revision-Date: 2018-08-09 16:38+0200\n"
|
||||
"POT-Creation-Date: 2019-01-21 10:49+0000\n"
|
||||
"PO-Revision-Date: 2019-01-21 11:51+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -53,6 +53,7 @@ msgstr "Activités de la saison par défaut"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_activity_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_analysis_activity_id
|
||||
msgid "Activity"
|
||||
msgstr "Activité"
|
||||
|
||||
@ -61,16 +62,46 @@ msgstr "Activité"
|
||||
msgid "Activity registrations"
|
||||
msgstr "Inscriptions"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_age_computing
|
||||
msgid "Age"
|
||||
msgstr "Âge"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids
|
||||
msgid "All activities"
|
||||
msgstr "Toutes les activités"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
|
||||
msgid "Analyse Registrations"
|
||||
msgstr "Analyse des inscriptions"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_analyse_type
|
||||
msgid "Analyse type"
|
||||
msgstr "Type d'analyse"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.actions.act_window,name:golem_activity_registration.golem_registrations_analysis_action
|
||||
msgid "Analysis"
|
||||
msgstr "Analyse"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Animator"
|
||||
msgstr "Intervenant"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
|
||||
msgid "At season start"
|
||||
msgstr "Au début de la saison"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
|
||||
msgid "At season stop"
|
||||
msgstr "À la fin de la saison"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
|
||||
msgid "Base price"
|
||||
@ -79,7 +110,12 @@ msgstr "Prix de base"
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,help:golem_activity_registration.field_golem_activity_registration_activity_price
|
||||
msgid "Base price to compute the customer price. Sometimes called the catalog price."
|
||||
msgstr "Prix de base pour calculer le prix usager. Parfois appelé prix catalogue."
|
||||
msgstr "Prix de base pour calculer le prix client. Parfois appelé prix catalogue."
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,analyse_type:0
|
||||
msgid "By area and activity"
|
||||
msgstr "Par territoire et activité"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search
|
||||
@ -87,11 +123,13 @@ msgid "By season"
|
||||
msgstr "Par saison"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_date
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
@ -117,6 +155,7 @@ msgid "Default season?"
|
||||
msgstr "Saison par défaut?"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nom affiché"
|
||||
@ -141,6 +180,11 @@ msgstr "Activité"
|
||||
msgid "GOLEM Activity Registration"
|
||||
msgstr "Inscription à l'activité"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model,name:golem_activity_registration.model_golem_activity_registration_analysis_wizard
|
||||
msgid "GOLEM Activity Registration Analysis Wizard Adaptation "
|
||||
msgstr "GOLEM Activity Registration Analysis Wizard Adaptation "
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action
|
||||
msgid "GOLEM Activity Registration List"
|
||||
@ -151,12 +195,18 @@ msgstr "Liste des inscriptions aux activités"
|
||||
msgid "GOLEM Member"
|
||||
msgstr "Adhérent"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model,name:golem_activity_registration.model_golem_member_analysis
|
||||
msgid "GOLEM Members Analysis Adaption"
|
||||
msgstr "GOLEM Members Analysis Adaption"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Hours"
|
||||
msgstr "Horaires"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
@ -168,19 +218,28 @@ msgstr "Fixe :"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière Modification le"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
|
||||
#, python-format
|
||||
msgid "Member Analysis"
|
||||
msgstr "Analyse des usagers"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration
|
||||
@ -188,10 +247,16 @@ msgid "Members"
|
||||
msgstr "Adhérents"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_name
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
|
||||
msgid "Now"
|
||||
msgstr "Ce jour"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:39
|
||||
#: sql_constraint:golem.activity:0
|
||||
@ -204,6 +269,22 @@ msgstr "Le nombre de places ne peut pas être négatif"
|
||||
msgid "On default season, there is no activity for this member."
|
||||
msgstr "Sur la saison par défaut, il n'y a pas d'activité pour cet usager."
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_only_for_subscriber
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_search_inherit_registration
|
||||
msgid "Only for subscriber"
|
||||
msgstr "Réservé aux adhérents"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_end
|
||||
msgid "Period end"
|
||||
msgstr "Fin de la période"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_start
|
||||
msgid "Period start"
|
||||
msgstr "Début de la période"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places
|
||||
msgid "Places"
|
||||
@ -219,6 +300,16 @@ msgstr "Places prises"
|
||||
msgid "Practiced activities"
|
||||
msgstr "Activités pratiquées"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:36
|
||||
#: model:ir.ui.menu,name:golem_activity_registration.golem_activity_registration_analysis_menu
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_end_activity_area
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_now_activity_area
|
||||
#, python-format
|
||||
msgid "Registration Analysis"
|
||||
msgstr "Analyse des inscriptions"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration
|
||||
msgid "Remain"
|
||||
@ -235,17 +326,23 @@ msgid "Sale Price"
|
||||
msgstr "Prix de vente"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_season_id
|
||||
msgid "Season"
|
||||
msgstr "Saison"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_start_activity_area
|
||||
msgid "Service User Analysis"
|
||||
msgstr "Analyse des usagers"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
|
||||
msgid "Service user"
|
||||
msgstr "Usager"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:70
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:71
|
||||
#, python-format
|
||||
msgid "Sorry, there is no more place !"
|
||||
msgstr "Désolé, il n'y a plus de place disponible !"
|
||||
@ -256,13 +353,19 @@ msgid "Subscription"
|
||||
msgstr "Inscription"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:100
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:119
|
||||
#, python-format
|
||||
msgid "Subscription can not be executed : the targeted activity is only for subscriber."
|
||||
msgstr "L'inscription n'a pas pu être faite : l'activité choisie est réservée aux adhérents."
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:123
|
||||
#, python-format
|
||||
msgid "Subscription can not be executed : the targeted member is not on the same season as the activity."
|
||||
msgstr "L'inscription n'a pas pu être enregistrée : l'usager visé n'est pas ahdérant pour la même saison que celle pendant laquelle se déroule l'activité."
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:92
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:93
|
||||
#: sql_constraint:golem.activity.registration:0
|
||||
#, python-format
|
||||
msgid "This member has already been registered for this activity."
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-09 14:23+0000\n"
|
||||
"PO-Revision-Date: 2018-08-09 14:23+0000\n"
|
||||
"POT-Creation-Date: 2019-01-21 10:49+0000\n"
|
||||
"PO-Revision-Date: 2019-01-21 10:49+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -53,6 +53,7 @@ msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_activity_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_analysis_activity_id
|
||||
msgid "Activity"
|
||||
msgstr ""
|
||||
|
||||
@ -61,16 +62,46 @@ msgstr ""
|
||||
msgid "Activity registrations"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_age_computing
|
||||
msgid "Age"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids
|
||||
msgid "All activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
|
||||
msgid "Analyse Registrations"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_analyse_type
|
||||
msgid "Analyse type"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.actions.act_window,name:golem_activity_registration.golem_registrations_analysis_action
|
||||
msgid "Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Animator"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
|
||||
msgid "At season start"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
|
||||
msgid "At season stop"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
|
||||
msgid "Base price"
|
||||
@ -81,17 +112,24 @@ msgstr ""
|
||||
msgid "Base price to compute the customer price. Sometimes called the catalog price."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,analyse_type:0
|
||||
msgid "By area and activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search
|
||||
msgid "By season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
@ -117,6 +155,7 @@ msgid "Default season?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
@ -141,6 +180,11 @@ msgstr ""
|
||||
msgid "GOLEM Activity Registration"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model,name:golem_activity_registration.model_golem_activity_registration_analysis_wizard
|
||||
msgid "GOLEM Activity Registration Analysis Wizard Adaptation "
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action
|
||||
msgid "GOLEM Activity Registration List"
|
||||
@ -151,12 +195,18 @@ msgstr ""
|
||||
msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model,name:golem_activity_registration.model_golem_member_analysis
|
||||
msgid "GOLEM Members Analysis Adaption"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
@ -168,19 +218,28 @@ msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
|
||||
#, python-format
|
||||
msgid "Member Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration
|
||||
@ -188,10 +247,16 @@ msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_name
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
|
||||
msgid "Now"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:39
|
||||
#: sql_constraint:golem.activity:0
|
||||
@ -204,6 +269,22 @@ msgstr ""
|
||||
msgid "On default season, there is no activity for this member."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_only_for_subscriber
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_search_inherit_registration
|
||||
msgid "Only for subscriber"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_end
|
||||
msgid "Period end"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_start
|
||||
msgid "Period start"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places
|
||||
msgid "Places"
|
||||
@ -219,6 +300,16 @@ msgstr ""
|
||||
msgid "Practiced activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:36
|
||||
#: model:ir.ui.menu,name:golem_activity_registration.golem_activity_registration_analysis_menu
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_end_activity_area
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_now_activity_area
|
||||
#, python-format
|
||||
msgid "Registration Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration
|
||||
msgid "Remain"
|
||||
@ -235,17 +326,23 @@ msgid "Sale Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_season_id
|
||||
msgid "Season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_start_activity_area
|
||||
msgid "Service User Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
|
||||
msgid "Service user"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:70
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:71
|
||||
#, python-format
|
||||
msgid "Sorry, there is no more place !"
|
||||
msgstr ""
|
||||
@ -256,13 +353,19 @@ msgid "Subscription"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:100
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:119
|
||||
#, python-format
|
||||
msgid "Subscription can not be executed : the targeted activity is only for subscriber."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:123
|
||||
#, python-format
|
||||
msgid "Subscription can not be executed : the targeted member is not on the same season as the activity."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:92
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:93
|
||||
#: sql_constraint:golem.activity.registration:0
|
||||
#, python-format
|
||||
msgid "This member has already been registered for this activity."
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -43,6 +43,7 @@ class GolemActivity(models.Model):
|
||||
index=True)
|
||||
places_used = fields.Integer('Places used', compute='compute_places_used',
|
||||
store=True)
|
||||
only_for_subscriber = fields.Boolean(default=False)
|
||||
|
||||
@api.multi
|
||||
@api.depends('activity_registration_ids')
|
||||
@ -75,7 +76,7 @@ class GolemActivityRegistration(models.Model):
|
||||
""" GOLEM Activity Registration """
|
||||
_name = 'golem.activity.registration'
|
||||
_description = 'GOLEM Activity Registration'
|
||||
_rec_name ='activity_id'
|
||||
_rec_name = 'activity_id'
|
||||
|
||||
member_id = fields.Many2one('golem.member', string='Service user',
|
||||
required=True, ondelete='cascade', index=True)
|
||||
@ -91,11 +92,33 @@ class GolemActivityRegistration(models.Model):
|
||||
('registration_uniq', 'UNIQUE (member_id, activity_id)',
|
||||
_('This member has already been registered for this activity.'))]
|
||||
|
||||
@api.onchange('activity_id', 'activity_id.only_for_subscriber')
|
||||
def onchange_activity_subcrib(self):
|
||||
""" If activity only for subscribers : do not allow non subscribers """
|
||||
domain = [('is_default', '=', True)]
|
||||
if self.activity_id.only_for_subscriber:
|
||||
domain.append(('membership_state', 'not in', ('none', 'canceled', 'old')))
|
||||
return {'domain': {'member_id': domain}}
|
||||
|
||||
@api.onchange('member_id')
|
||||
def onchange_member_subcrib(self):
|
||||
""" If not subscriber : do not show subscribers only activities """
|
||||
domain = [('is_default', '=', True)]
|
||||
if self.member_id and self.member_id.membership_state in ('none', 'canceled', 'old'):
|
||||
domain.append(('only_for_subscriber', '=', False))
|
||||
return {'domain': {'activity_id': domain}}
|
||||
|
||||
|
||||
@api.constrains('member_id', 'activity_id')
|
||||
def _check_season_reliability(self):
|
||||
""" Forbid registration when member season if not coherent with
|
||||
activity season or are duplicates """
|
||||
for reg in self:
|
||||
if (reg.activity_id.only_for_subscriber and \
|
||||
reg.member_id.membership_state in ['none', 'canceled', 'old']):
|
||||
emsg = _('Subscription can not be executed : the targeted '
|
||||
'activity is only for subscriber.')
|
||||
raise models.ValidationError(emsg)
|
||||
if reg.activity_id.season_id not in reg.member_id.season_ids:
|
||||
emsg = _('Subscription can not be executed : the targeted '
|
||||
'member is not on the same season as the activity.')
|
||||
|
@ -1,3 +1,4 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_golem_activity_registration_auditor,Access GOLEM Activity Registration Auditor,model_golem_activity_registration,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_activity_registration_user,Access GOLEM Activity Registration User,model_golem_activity_registration,golem_base.group_golem_user,1,1,1,1
|
||||
access_golem_activity_registration_manager,Access GOLEM Activity Registration Manager,model_golem_activity_registration,golem_base.group_golem_manager,1,1,1,1
|
||||
|
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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
|
||||
@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="activity_id" domain="[('is_default', '=', True)]"
|
||||
invisible="not context.get('activity_show', 1)" />
|
||||
<field name="activity_price" string="Base price" sum="Total"
|
||||
invisible="not context.get('activity_show', 1)" />
|
||||
invisible="not context.get('activity_show', 1)" readonly="1" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@ -86,7 +86,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<menuitem id="golem_activity_registration_menu" name="Activity registrations"
|
||||
parent="golem_activity.golem_activity_menu"
|
||||
action="golem_activity_registration_action"
|
||||
groups="golem_base.group_golem_user"
|
||||
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
|
||||
sequence="20" />
|
||||
|
||||
</data>
|
||||
|
@ -38,6 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
</group>
|
||||
</page>
|
||||
</page>
|
||||
<field name="audience_id" position="before">
|
||||
<field name="only_for_subscriber"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@ -66,6 +69,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<filter name="season_default" position="after">
|
||||
<filter name="full_activity" string="Full"
|
||||
domain="[('places_remain', '=', 0)]" />
|
||||
<filter name="only_for_subscriber" string="Only for subscriber"
|
||||
domain="[('only_for_subscriber', '=', True)]"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -15,15 +16,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Family Minor glue module"""
|
||||
|
||||
from odoo import models, fields
|
||||
|
||||
LEGAL_DMN = "['&', ('family_id', '=', family_id), ('id', '!=', partner_id)]"
|
||||
|
||||
|
||||
class GolemMember(models.Model):
|
||||
""" Member adaptations """
|
||||
_inherit = 'golem.member'
|
||||
|
||||
legal_guardian_ids = fields.Many2many(domain=LEGAL_DMN)
|
||||
from . import golem_activity_registration_analysis_wizard, golem_member_analysis
|
@ -0,0 +1,106 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Activity Registration Analysis Wizard Management """
|
||||
|
||||
import logging
|
||||
from odoo import models, fields, api, _
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class GolemActivityRegistrationAnalysisWizard(models.TransientModel):
|
||||
""" GOLEM Activity Registration Analysis Wizard Management """
|
||||
_name = 'golem.activity.registration.analysis.wizard'
|
||||
_description = 'GOLEM Activity Registration Analysis Wizard Management '
|
||||
|
||||
def default_season(self):
|
||||
""" Get default season """
|
||||
domain = [('is_default', '=', True)]
|
||||
return self.env['golem.season'].search(domain, limit=1)
|
||||
|
||||
name = fields.Char(default='/')
|
||||
season_id = fields.Many2one('golem.season', 'Season', required=True,
|
||||
default=default_season, ondelete='cascade')
|
||||
season_start = fields.Date(related='season_id.date_start')
|
||||
season_end = fields.Date(related='season_id.date_end')
|
||||
analyse_type = fields.Selection([('activity_area', 'By area and activity')],
|
||||
default='activity_area', required=True)
|
||||
age_computing = fields.Selection([('season_start', 'At season start'),
|
||||
('season_end', 'At season stop'),
|
||||
('now', 'Now')], required=True,
|
||||
default='season_start', string='Age')
|
||||
|
||||
@api.multi
|
||||
def get_pivot_view(self):
|
||||
""" get pivot view """
|
||||
self.ensure_one()
|
||||
rec = self[0]
|
||||
ref = u''
|
||||
if rec.age_computing == 'season_start':
|
||||
if rec.analyse_type == 'activity_area':
|
||||
ref = (u'golem_activity_registration.'
|
||||
'golem_member_analysis_pivot_age_start_activity_area')
|
||||
elif rec.age_computing == 'season_end':
|
||||
if rec.analyse_type == 'activity_area':
|
||||
ref = (u'golem_activity_registration.'
|
||||
'golem_member_analysis_pivot_age_end_activity_area')
|
||||
else: # now
|
||||
if rec.analyse_type == 'activity_area':
|
||||
ref = (u'golem_activity_registration.'
|
||||
'golem_member_analysis_pivot_age_now_activity_area')
|
||||
return self.env.ref(ref, False)
|
||||
|
||||
@api.multi
|
||||
def get_registrations(self):
|
||||
""" Returns registrations """
|
||||
self.ensure_one()
|
||||
return self.env['golem.activity.registration'].search(
|
||||
[('season_id', '=', self[0].season_id.id)]
|
||||
)
|
||||
|
||||
|
||||
@api.multi
|
||||
def registration_analyse(self):
|
||||
""" registration analyse """
|
||||
self.ensure_one()
|
||||
analysis_rec = self[0]
|
||||
# Remove existing analysis lines for current analysis
|
||||
self.env['golem.member.analysis'].search(
|
||||
[('resgistration_analysis_id', '=', analysis_rec.id)]
|
||||
).unlink()
|
||||
|
||||
registrations = analysis_rec.get_registrations()
|
||||
if registrations:
|
||||
for registration in registrations:
|
||||
self.env['golem.member.analysis'].create({
|
||||
'season_id': analysis_rec.season_id.id,
|
||||
'member_id': registration.member_id.id,
|
||||
'activity_id': registration.activity_id.id,
|
||||
'resgistration_analysis_id': analysis_rec.id
|
||||
})
|
||||
analyse_pivot = analysis_rec.get_pivot_view()
|
||||
return {
|
||||
'name': _('Registration Analysis'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'golem.member.analysis',
|
||||
'domain': [('resgistration_analysis_id', '=', analysis_rec.id)],
|
||||
'view_type': 'pivot',
|
||||
'view_mode': 'pivot',
|
||||
'view_id': analyse_pivot.id,
|
||||
'target': 'current',
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2019-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2019-2020 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Forms -->
|
||||
<record model="ir.ui.view" id="golem_activity_registration_analysis_wizard_view_form">
|
||||
<field name="name">GOLEM Activity Registration Analyse Wizard Form</field>
|
||||
<field name="model">golem.activity.registration.analysis.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Registration Analysis">
|
||||
<header>
|
||||
<button name="registration_analyse" string="Analyse Registrations"
|
||||
type="object" class="oe_highlight" />
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="season_id" options="{'no_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="season_start" readonly="1"/>
|
||||
<field name="season_end" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="analyse_type" widget="radio"/>
|
||||
<field name="age_computing" widget="radio"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Actions -->
|
||||
<act_window id="golem_registrations_analysis_action" name="Analysis"
|
||||
res_model="golem.activity.registration.analysis.wizard" view_mode="form"
|
||||
target="current"/>
|
||||
|
||||
<menuitem id="golem_activity_registration_analysis_menu"
|
||||
name="Registration Analysis"
|
||||
parent="golem_activity.golem_activity_menu"
|
||||
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
|
||||
action="golem_registrations_analysis_action" sequence="50" />
|
||||
|
||||
</data>
|
||||
</odoo>
|
33
golem_activity_registration/wizard/golem_member_analysis.py
Normal file
33
golem_activity_registration/wizard/golem_member_analysis.py
Normal file
@ -0,0 +1,33 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Members Analysis Adaptation """
|
||||
|
||||
import logging
|
||||
from odoo import models, fields, api, _
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
class GolemMemberAnalysis(models.TransientModel):
|
||||
""" GOLEM Member Analysis Adaptation """
|
||||
_inherit = 'golem.member.analysis'
|
||||
_description = 'GOLEM Member Analysis Adaptation'
|
||||
|
||||
resgistration_analysis_id = fields.Many2one(
|
||||
'golem.activity.registration.analysis.wizard', index=True
|
||||
)
|
||||
activity_id = fields.Many2one('golem.activity', 'Activity')
|
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Pivots -->
|
||||
<record id="golem_member_analysis_pivot_age_start_activity_area" model="ir.ui.view">
|
||||
<field name="name">Golem Member Analysis Age Start Activity Area Pivot</field>
|
||||
<field name="model">golem.member.analysis</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Service User Analysis">
|
||||
<field name="age_range_start_season" type="col"/>
|
||||
<field name="activity_id" type="row"/>
|
||||
<field name="area_id" type="row"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
<record id="golem_member_analysis_pivot_age_end_activity_area" model="ir.ui.view">
|
||||
<field name="name">Golem Member Analysis Age End Activity Area Pivot</field>
|
||||
<field name="model">golem.member.analysis</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Registration Analysis">
|
||||
<field name="age_range_end_season" type="col"/>
|
||||
<field name="activity_id" type="row"/>
|
||||
<field name="area_id" type="row"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
<record id="golem_member_analysis_pivot_age_now_activity_area" model="ir.ui.view">
|
||||
<field name="name">Golem Member Analysis Age Now Activity Area Pivot</field>
|
||||
<field name="model">golem.member.analysis</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Registration Analysis">
|
||||
<field name="age_range_now" type="col"/>
|
||||
<field name="activity_id" type="row"/>
|
||||
<field name="area_id" type="row"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -20,11 +20,11 @@
|
||||
'summary': 'GOLEM Activity Registration Custom Price',
|
||||
'description': '''GOLEM Activity Registration Custom Price :
|
||||
- allow set of 1:n slices based on family quotient ;
|
||||
- allow set 1:n area data ;
|
||||
- allow set 1:n root area data ;
|
||||
- allow set price per area and slice ;
|
||||
- computes automatically applicable price ;
|
||||
- anticipate ruleset to be implemented for computing.''',
|
||||
'version': '10.0.0.1.2',
|
||||
'version': '10.0.0.3.2',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
@ -36,5 +36,6 @@
|
||||
'views/golem_payment_rule_quotient_slice_views.xml',
|
||||
'views/golem_member_views.xml',
|
||||
'views/golem_activity_views.xml',
|
||||
'wizard/golem_activity_registration_invoicing_views.xml']
|
||||
'wizard/golem_activity_registration_invoicing_views.xml',
|
||||
'wizard/golem_member_analysis_views.xml']
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-03 23:02+0000\n"
|
||||
"PO-Revision-Date: 2018-08-04 01:17+0200\n"
|
||||
"POT-Creation-Date: 2019-01-21 10:20+0000\n"
|
||||
"PO-Revision-Date: 2019-01-21 11:21+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -70,7 +70,7 @@ msgid "Current family quotient slice cannot be included into another existing sl
|
||||
msgstr "La tranche de quotient familial ne peut être incluse dans une tranche existante."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:29
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:30
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_registration_invoicing_form_inherit_custom_price
|
||||
#, python-format
|
||||
msgid "Default price"
|
||||
@ -89,13 +89,13 @@ msgid "Family Quotients"
|
||||
msgstr "Quotients familiaux"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:61
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:62
|
||||
#, python-format
|
||||
msgid "Family quotient and area"
|
||||
msgstr "Quotient familial et territoire"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:59
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:60
|
||||
#, python-format
|
||||
msgid "Family quotient but random area"
|
||||
msgstr "Quotient familial mais territoire aléatoire"
|
||||
@ -116,6 +116,11 @@ msgstr "La borne basse du quotient familial fait partie d'une tranche existante.
|
||||
msgid "Family quotient slice"
|
||||
msgstr "Tranche de quotient familial"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_member_analysis_family_quotient_slice_id
|
||||
msgid "Family quotient slice id"
|
||||
msgstr "Tranche de quotient familial"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_family_quotient_to
|
||||
msgid "Family quotient to"
|
||||
@ -147,16 +152,21 @@ msgstr "GOLEM Activity Registration Invoicing Lines"
|
||||
msgid "GOLEM Member"
|
||||
msgstr "Usager"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member_analysis_wizard
|
||||
msgid "GOLEM Members Analysis Wizard Adaptation"
|
||||
msgstr "GOLEM Members Analysis Wizard Adaptation"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member_analysis
|
||||
msgid "GOLEM Members Analysis Adaption"
|
||||
msgstr "GOLEM Members Analysis Adaption"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_familyquotient_slice
|
||||
msgid "GOLEM Payment Rule Family Quotient Slice"
|
||||
msgstr "GOLEM Payment Rule Family Quotient Slice"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_geo
|
||||
msgid "GOLEM Payment Rule Geo"
|
||||
msgstr "GOLEM Payment Rule Geo"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_id
|
||||
@ -206,6 +216,11 @@ msgstr "Lignes tarifaires"
|
||||
msgid "Prices"
|
||||
msgstr "Tarifs"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_registration_invoicing_line_pricing_info
|
||||
msgid "Pricing info"
|
||||
msgstr "Information tarifaire"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_menu
|
||||
msgid "Pricing rules"
|
||||
@ -226,11 +241,16 @@ msgstr "Prix de vente"
|
||||
msgid "Sequence"
|
||||
msgstr "Séquence"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_member_analysis_pivot_fquotientslice_area
|
||||
msgid "Service User Analysis"
|
||||
msgstr "Analyse des usagers"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:49
|
||||
#, python-format
|
||||
msgid "The 'to' family quotient must be higher than the 'from' one."
|
||||
msgstr "La borne haute du quotient familial doit être supérieur à la borne basse."
|
||||
msgstr "La borne haute du quotient familial doit être supérieure à la borne basse."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_activity_price_line.py:30
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-03 23:02+0000\n"
|
||||
"PO-Revision-Date: 2018-08-03 23:02+0000\n"
|
||||
"POT-Creation-Date: 2019-01-21 10:20+0000\n"
|
||||
"PO-Revision-Date: 2019-01-21 10:20+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -70,7 +70,7 @@ msgid "Current family quotient slice cannot be included into another existing sl
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:29
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:30
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_registration_invoicing_form_inherit_custom_price
|
||||
#, python-format
|
||||
msgid "Default price"
|
||||
@ -89,13 +89,13 @@ msgid "Family Quotients"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:61
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:62
|
||||
#, python-format
|
||||
msgid "Family quotient and area"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:59
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:60
|
||||
#, python-format
|
||||
msgid "Family quotient but random area"
|
||||
msgstr ""
|
||||
@ -116,6 +116,11 @@ msgstr ""
|
||||
msgid "Family quotient slice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_member_analysis_family_quotient_slice_id
|
||||
msgid "Family quotient slice id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_family_quotient_to
|
||||
msgid "Family quotient to"
|
||||
@ -148,13 +153,18 @@ msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_familyquotient_slice
|
||||
msgid "GOLEM Payment Rule Family Quotient Slice"
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member_analysis_wizard
|
||||
msgid "GOLEM Members Analysis Wizard Adaptation"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_geo
|
||||
msgid "GOLEM Payment Rule Geo"
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member_analysis
|
||||
msgid "GOLEM Members Analysis Adaption"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_familyquotient_slice
|
||||
msgid "GOLEM Payment Rule Family Quotient Slice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
@ -206,6 +216,11 @@ msgstr ""
|
||||
msgid "Prices"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_registration_invoicing_line_pricing_info
|
||||
msgid "Pricing info"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_menu
|
||||
msgid "Pricing rules"
|
||||
@ -226,6 +241,11 @@ msgstr ""
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_member_analysis_pivot_fquotientslice_area
|
||||
msgid "Service User Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:49
|
||||
#, python-format
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -43,7 +44,7 @@ class GolemActivity(models.Model):
|
||||
existing_combinations = [u'%s-%s' % (line.area_id.id, line.slice_id.id)
|
||||
for line in activity.price_line_ids]
|
||||
slice_ids = self.env['golem.payment.rule.familyquotient.slice'].search([])
|
||||
for area_id in self.env['golem.partner.area'].search([]):
|
||||
for area_id in self.env['golem.partner.area'].search([('parent_id', '=', False)]):
|
||||
for slice_id in slice_ids:
|
||||
combination = u'%s-%s' % (area_id.id, slice_id.id)
|
||||
if combination not in existing_combinations:
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -40,7 +41,7 @@ class GolemMember(models.Model):
|
||||
area_ids = self.env['golem.partner.area'].search([])
|
||||
if member.area_id:
|
||||
applicable_areas += area_ids.filtered(
|
||||
lambda r: r == member.area_id
|
||||
lambda r: r == member.area_id.root_id
|
||||
)
|
||||
if not applicable_areas and area_ids:
|
||||
applicable_areas += area_ids[0]
|
||||
|
@ -1,5 +1,7 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_golem_payment_rule_familyquotient_slice_auditor,Access GOLEM Payment Rule Familyquotient Slice auditor,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_payment_rule_familyquotient_slice_user,Access GOLEM Payment Rule Familyquotient Slice User,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_user,1,0,0,0
|
||||
access_golem_payment_rule_familyquotient_slice_manager,Access GOLEM Payment Rule Familyquotient Slice Manager,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_manager,0,1,1,1
|
||||
access_golem_payment_rule_familyquotient_slice_manager,Access GOLEM Payment Rule Familyquotient Slice Manager,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_manager,1,1,1,1
|
||||
access_golem_activity_priceline_auditor,Access GOLEM Activity Price Line Auditor,model_golem_activity_price_line,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_activity_priceline_user,Access GOLEM Activity Price Line User,model_golem_activity_price_line,golem_base.group_golem_user,1,0,0,0
|
||||
access_golem_activity_priceline_manager,Access GOLEM Activity Price Line Manager,model_golem_activity_price_line,golem_base.group_golem_manager,1,1,1,1
|
||||
|
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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
|
||||
@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<!-- Menus -->
|
||||
<menuitem id="golem_payment_rule_menu" name="Pricing rules"
|
||||
parent="golem_activity.golem_activity_menu_configuration"
|
||||
groups="golem_base.group_golem_manager" sequence="20" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" sequence="20" />
|
||||
<menuitem id="golem_payment_rule_qfslice_menu" name="Family Quotients"
|
||||
parent="golem_payment_rule_menu" action="golem_payment_rule_qfslice_action"
|
||||
sequence="10" />
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -15,4 +15,5 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_activity_registration_invoicing
|
||||
from . import (golem_activity_registration_invoicing,
|
||||
golem_member_analysis, golem_member_analysis_wizard)
|
||||
|
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Members Analysis Pivot Adaption """
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class GolemMemberAnalysisPivot(models.TransientModel):
|
||||
""" GOLEM Members Analysis Pivot Adaption """
|
||||
_inherit = 'golem.member.analysis'
|
||||
_description = 'GOLEM Members Analysis Adaption'
|
||||
|
||||
|
||||
family_quotient_slice_id = fields.Many2one(
|
||||
'golem.payment.rule.familyquotient.slice', index=True, ondelete='cascade',
|
||||
store=True, compute='_compute_family_quotient_slice_id'
|
||||
)
|
||||
|
||||
@api.depends('family_quotient')
|
||||
def _compute_family_quotient_slice_id(self):
|
||||
""" Computes family quotient slice """
|
||||
for rec in self:
|
||||
if rec.family_quotient:
|
||||
fq_int = int(rec.family_quotient)
|
||||
domain = [('family_quotient_from', '<=', fq_int),
|
||||
('family_quotient_to', '>=', fq_int)]
|
||||
rule_slice_id = self.env['golem.payment.rule.familyquotient.slice'].search(
|
||||
domain, limit=1
|
||||
)
|
||||
if rule_slice_id:
|
||||
rec.family_quotient_slice_id = rule_slice_id
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Pivot -->
|
||||
<record id="golem_member_analysis_pivot_fquotientslice_area" model="ir.ui.view">
|
||||
<field name="name">Golem Member Analysis Fquotient Slice and Area Pivot</field>
|
||||
<field name="model">golem.member.analysis</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Service User Analysis">
|
||||
<field name="area_id" type="col"/>
|
||||
<field name="family_quotient_slice_id" type="row"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Members Analysis Adaptation """
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class GolemMemberAnalysis(models.TransientModel):
|
||||
""" GOLEM Members Analysis Adaptation """
|
||||
_inherit = 'golem.member.analysis.wizard'
|
||||
_description = 'GOLEM Members Analysis Wizard Adaptation'
|
||||
|
||||
analyse_type = fields.Selection(
|
||||
selection_add=[('fquotientslice_area',
|
||||
'By family quotient slice and area')]
|
||||
)
|
||||
|
||||
@api.multi
|
||||
def get_pivot_view(self):
|
||||
""" override get_pivot_view function """
|
||||
self.ensure_one()
|
||||
rec = self[0]
|
||||
pivot_view = super(GolemMemberAnalysis, self).get_pivot_view()
|
||||
if pivot_view:
|
||||
return pivot_view
|
||||
if rec.analyse_type == 'fquotientslice_area':
|
||||
return self.env.ref(
|
||||
('golem_activity_registration_custom_price.'
|
||||
'golem_member_analysis_pivot_fquotientslice_area'),
|
||||
False
|
||||
)
|
||||
return False
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -19,7 +20,7 @@
|
||||
'name': 'GOLEM Activity Member Registration Payments',
|
||||
'summary': 'GOLEM Activities Member Registration Payments',
|
||||
'description': 'GOLEM Activities Member Registration Payments',
|
||||
'version': '10.0.0.3.6',
|
||||
'version': '10.0.0.7.1',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
@ -29,5 +30,7 @@
|
||||
'data': ['views/golem_member_views.xml',
|
||||
'views/golem_activity_registration_views.xml',
|
||||
'report/golem_member_card_templates.xml',
|
||||
'wizard/golem_activity_registration_invoicing.xml']
|
||||
'wizard/golem_activity_registration_invoicing.xml',
|
||||
'views/golem_activity_views.xml',
|
||||
'views/account_invoice.xml']
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-27 10:09+0000\n"
|
||||
"PO-Revision-Date: 2018-08-27 12:10+0200\n"
|
||||
"POT-Creation-Date: 2019-01-21 11:30+0000\n"
|
||||
"PO-Revision-Date: 2019-01-21 12:31+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -49,7 +49,7 @@ msgid "Activity id"
|
||||
msgstr "Activité liée"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:76
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:78
|
||||
#, python-format
|
||||
msgid "All confirmed registrations had already been invoiced."
|
||||
msgstr "Toutes les inscriptions confirmées ont déjà été facturées."
|
||||
@ -60,6 +60,11 @@ msgstr "Toutes les inscriptions confirmées ont déjà été facturées."
|
||||
msgid "Amount"
|
||||
msgstr "Montant"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
|
||||
msgid "By Month"
|
||||
msgstr "Mois de facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "By invoice state"
|
||||
@ -124,6 +129,18 @@ msgstr "Afficher les paiements"
|
||||
msgid "Draft Invoice"
|
||||
msgstr "Facture en brouillon"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_free_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_free_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_search_inherit_activity_registration_payment
|
||||
msgid "Free activity"
|
||||
msgstr "Gratuit"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity
|
||||
msgid "GOLEM Activity"
|
||||
msgstr "Activité"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration
|
||||
msgid "GOLEM Activity Registration"
|
||||
@ -145,14 +162,14 @@ msgid "GOLEM Member"
|
||||
msgstr "Adhérent"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:151
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
|
||||
#, python-format
|
||||
msgid "Generated invoice"
|
||||
msgstr "Facture générée"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:166
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
|
||||
#, python-format
|
||||
msgid "Generated payments"
|
||||
@ -249,6 +266,11 @@ msgstr "Dernière mise à jour par"
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
|
||||
msgid "Last year invoices"
|
||||
msgstr "Année dernière"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id
|
||||
msgid "Member"
|
||||
@ -311,7 +333,7 @@ msgid "Registration id"
|
||||
msgstr "Inscription"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:69
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:71
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
#, python-format
|
||||
msgid "Registration invoicing"
|
||||
@ -339,17 +361,22 @@ msgid "Status"
|
||||
msgstr "État"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:147
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
|
||||
#, python-format
|
||||
msgid "There is no generated invoice."
|
||||
msgstr "Il n'y a pas de facture générée."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:162
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
|
||||
#, python-format
|
||||
msgid "There is no generated payments."
|
||||
msgstr "Il n'y a pas de paiement généré."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
|
||||
msgid "This year invoices"
|
||||
msgstr "Cette année"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Total"
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-27 10:09+0000\n"
|
||||
"PO-Revision-Date: 2018-08-27 10:09+0000\n"
|
||||
"POT-Creation-Date: 2019-01-21 11:30+0000\n"
|
||||
"PO-Revision-Date: 2019-01-21 11:30+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -45,7 +45,7 @@ msgid "Activity id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:76
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:78
|
||||
#, python-format
|
||||
msgid "All confirmed registrations had already been invoiced."
|
||||
msgstr ""
|
||||
@ -56,6 +56,11 @@ msgstr ""
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
|
||||
msgid "By Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "By invoice state"
|
||||
@ -120,6 +125,18 @@ msgstr ""
|
||||
msgid "Draft Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_free_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_free_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_search_inherit_activity_registration_payment
|
||||
msgid "Free activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity
|
||||
msgid "GOLEM Activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration
|
||||
msgid "GOLEM Activity Registration"
|
||||
@ -141,14 +158,14 @@ msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:151
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
|
||||
#, python-format
|
||||
msgid "Generated invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:166
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
|
||||
#, python-format
|
||||
msgid "Generated payments"
|
||||
@ -245,6 +262,11 @@ msgstr ""
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
|
||||
msgid "Last year invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id
|
||||
msgid "Member"
|
||||
@ -307,7 +329,7 @@ msgid "Registration id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:69
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:71
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
#, python-format
|
||||
msgid "Registration invoicing"
|
||||
@ -335,17 +357,22 @@ msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:147
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
|
||||
#, python-format
|
||||
msgid "There is no generated invoice."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:162
|
||||
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
|
||||
#, python-format
|
||||
msgid "There is no generated payments."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
|
||||
msgid "This year invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Total"
|
||||
|
@ -15,4 +15,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_member, golem_activity_registration
|
||||
from . import golem_member, golem_activity_registration, golem_activity
|
||||
|
34
golem_activity_registration_payment/models/golem_activity.py
Normal file
34
golem_activity_registration_payment/models/golem_activity.py
Normal file
@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Activity adaptations """
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
class GolemActivity(models.Model):
|
||||
""" GOLEM Activity adaptations """
|
||||
_inherit = 'golem.activity'
|
||||
|
||||
free_activity = fields.Boolean(default=False)
|
||||
|
||||
@api.onchange('free_activity')
|
||||
def onchange_free_activity(self):
|
||||
""" If free activity, price should be 0.0 """
|
||||
for activity in self:
|
||||
if activity.free_activity:
|
||||
activity.list_price = 0.0
|
@ -31,3 +31,4 @@ class GolemActivityRegistration(models.Model):
|
||||
invoice_id = fields.Many2one(related='invoice_line_id.invoice_id')
|
||||
invoice_state = fields.Selection(related='invoice_line_id.invoice_id.state',
|
||||
store=True)
|
||||
free_activity = fields.Boolean(related='activity_id.free_activity')
|
||||
|
@ -35,6 +35,7 @@ class GolemMember(models.Model):
|
||||
regis = member.activity_registration_ids
|
||||
regis = regis.filtered(
|
||||
lambda r: (r.state == 'confirmed' and
|
||||
not r.activity_id.free_activity and
|
||||
(not r.invoice_line_id or
|
||||
r.invoice_line_id.invoice_id.state == 'cancel'))
|
||||
)
|
||||
@ -52,9 +53,10 @@ class GolemMember(models.Model):
|
||||
self.ensure_one()
|
||||
member = self[0]
|
||||
registrations = member.activity_registration_ids.filtered(
|
||||
lambda r: r.state == 'confirmed' and
|
||||
(not r.invoice_line_id or
|
||||
r.invoice_line_id.invoice_id.state == 'cancel')
|
||||
lambda r: (r.state == 'confirmed' and
|
||||
not r.activity_id.free_activity and
|
||||
(not r.invoice_line_id or
|
||||
r.invoice_line_id.invoice_id.state == 'cancel'))
|
||||
)
|
||||
if registrations:
|
||||
invoicing = self.env['golem.activity.registration.invoicing'].create({
|
||||
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Searches -->
|
||||
<record id="invoice_search_inherited_activity_registration_payment" model="ir.ui.view">
|
||||
<field name="name">account.invoice.search.iherited.activity.registration.payment</field>
|
||||
<field name="model">account.invoice</field>
|
||||
<field name="inherit_id" ref="account.view_account_invoice_filter" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[1]" position="inside">
|
||||
<filter name="invoice_last_year" string="Last year invoices"
|
||||
domain="[('date_invoice', '>=', (context_today() - datetime.timedelta(days=365.25)).strftime('%Y-01-01')), ('date_invoice', '<', context_today().strftime('%Y-01-01'))]" />
|
||||
<filter name="invoice_this_year" string="This year invoices"
|
||||
domain="[('date_invoice', '>=', context_today().strftime('%Y-01-01'))]" />
|
||||
<filter name="group_by_month" string="By Month" context="{'group_by':'date_invoice:month'}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -45,6 +45,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration_state.golem_activity_registration_tree_inherit_state" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="activity_price" position="before">
|
||||
<field name="free_activity" readonly="1" />
|
||||
</field>
|
||||
<field name="activity_price" position="attributes">
|
||||
<attribute name="attrs">{'readonly': [('free_activity', '=', True)]}</attribute>
|
||||
</field>
|
||||
<field name="state" position="after">
|
||||
<field name="invoice_line_id" invisible="1" />
|
||||
<field name="invoice_state" string="Invoice state" />
|
||||
|
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- Forms -->
|
||||
<record id="golem_activity_form_inherit_activity_registration_payment"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Golem activity form adaptations</field>
|
||||
<field name="model">golem.activity</field>
|
||||
<field name="inherit_id" ref="golem_activity.golem_activity_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="list_price" position="attributes">
|
||||
<attribute name="attrs">{'invisible': [('free_activity', '=', True)]}</attribute>
|
||||
</field>
|
||||
<field name="list_price" position="before">
|
||||
<field name='free_activity' />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search -->
|
||||
<record id="golem_activity_search_inherit_activity_registration_payment"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Golem Activity Search adaptations</field>
|
||||
<field name="model">golem.activity</field>
|
||||
<field name="inherit_id" ref="golem_activity.golem_activity_search" />
|
||||
<field name="arch" type="xml">
|
||||
<filter name="season_default" position="after">
|
||||
<filter name="free_activity" string="Free activity"
|
||||
domain="[('free_activity', '=', True)]" />
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -29,9 +30,11 @@ class GolemActivityRegistrationInvoicingLine(models.TransientModel):
|
||||
_description = 'GOLEM Activity Registration Invoicing Lines'
|
||||
|
||||
invoicing_id = fields.Many2one('golem.activity.registration.invoicing',
|
||||
required=True)
|
||||
registration_id = fields.Many2one('golem.activity.registration', required=True)
|
||||
activity_id = fields.Many2one('golem.activity', required=True, readonly=True)
|
||||
required=True, ondelete='cascade')
|
||||
registration_id = fields.Many2one('golem.activity.registration', required=True,
|
||||
ondelete='cascade')
|
||||
activity_id = fields.Many2one('golem.activity', required=True, readonly=True,
|
||||
ondelete='cascade')
|
||||
price = fields.Monetary()
|
||||
currency_id = fields.Many2one(related='activity_id.currency_id')
|
||||
|
||||
@ -62,7 +65,6 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
ondelete='cascade')
|
||||
payment_ids = fields.Many2many('account.payment', string='Generated payments')
|
||||
|
||||
|
||||
def _create_invoice_line(self, product, price, invoice):
|
||||
""" Create invoice line : needs cache record for onchange, then real
|
||||
writing... """
|
||||
@ -81,14 +83,22 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
def _create_invoice(self):
|
||||
""" Create invoice and lines """
|
||||
self.ensure_one()
|
||||
partner = self.member_id.partner_id
|
||||
invoice = self.env['account.invoice'].create({
|
||||
'partner_id': partner.id,
|
||||
'account_id': partner.property_account_receivable_id.id,
|
||||
'fiscal_position_id': partner.property_account_position_id.id
|
||||
})
|
||||
partner = self[0].member_id.partner_id
|
||||
#check if there is a draft invoice for the current customer
|
||||
member_line = partner.member_lines.filtered(
|
||||
lambda ml: (ml.membership_id.membership_season_id == self.season_id
|
||||
and ml.account_invoice_id.state == 'draft')
|
||||
)
|
||||
if member_line:
|
||||
invoice = member_line[0].account_invoice_id
|
||||
else:
|
||||
invoice = self.env['account.invoice'].create({
|
||||
'partner_id': partner.id,
|
||||
'account_id': partner.property_account_receivable_id.id,
|
||||
'fiscal_position_id': partner.property_account_position_id.id
|
||||
})
|
||||
for line in self.line_ids:
|
||||
product = line.activity_id.product_id
|
||||
product = line.activity_id.product_id.product_variant_id
|
||||
invoice_line = self._create_invoice_line(product, line.price, invoice)
|
||||
line.registration_id.invoice_line_id = invoice_line.id
|
||||
return invoice
|
||||
@ -146,10 +156,14 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
if not self.invoice_id:
|
||||
uerr = _('There is no generated invoice.')
|
||||
raise UserError(uerr)
|
||||
search_view_id = self.env.ref('account.view_account_invoice_filter')
|
||||
form_view_id = self.env.ref('account.invoice_form')
|
||||
tree_view_ref = self.env.ref('account.invoice_tree', False)
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': _('Generated invoice'),
|
||||
'view_mode': 'form,tree',
|
||||
'view_mode': 'form',
|
||||
'view_id': form_view_id.id,
|
||||
'res_model': 'account.invoice',
|
||||
'res_id': self[0].invoice_id.id
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
<!--
|
||||
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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
|
||||
|
18
golem_activity_registration_payment_family_minor/__init__.py
Normal file
18
golem_activity_registration_payment_family_minor/__init__.py
Normal file
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import wizard
|
@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
{
|
||||
'name': 'GOLEM Activity Payment for Minors inside families',
|
||||
'summary': 'GOLEM Activity Registration Payment for Minors inside families',
|
||||
'version': '10.0.0.1.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'auto_install': True,
|
||||
'depends': ['golem_family', 'golem_activity_registration_payment_member_minor'],
|
||||
}
|
22
golem_activity_registration_payment_family_minor/i18n/fr.po
Normal file
22
golem_activity_registration_payment_family_minor/i18n/fr.po
Normal file
@ -0,0 +1,22 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_payment_family_minor
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-11-01 17:44+0000\n"
|
||||
"PO-Revision-Date: 2018-11-01 17:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_payment_family_minor
|
||||
#: model:ir.model,name:golem_activity_registration_payment_family_minor.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgstr "GOLEM Activity Registration Invoicing Wizard"
|
||||
|
@ -0,0 +1,22 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_payment_family_minor
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-11-01 17:44+0000\n"
|
||||
"PO-Revision-Date: 2018-11-01 17:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_payment_family_minor
|
||||
#: model:ir.model,name:golem_activity_registration_payment_family_minor.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgstr ""
|
||||
|
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_activity_registration_invoicing
|
@ -0,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
|
||||
from odoo import models, api
|
||||
|
||||
|
||||
class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
_inherit = 'golem.activity.registration.invoicing'
|
||||
|
||||
@api.depends('member_id')
|
||||
def _compute_guardian_ids(self):
|
||||
res = super(GolemActivityRegistrationInvoicing, self)._compute_guardian_ids()
|
||||
for rec in self:
|
||||
if rec.member_id.family_member_ids:
|
||||
rec.guardian_ids += rec.member_id.family_member_ids.filtered(
|
||||
lambda r: r.id != self.member_id.partner_id.id
|
||||
)
|
||||
return res
|
18
golem_activity_registration_payment_member_minor/__init__.py
Normal file
18
golem_activity_registration_payment_member_minor/__init__.py
Normal file
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import wizard, models
|
@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
{
|
||||
'name': 'GOLEM Activity Payment for Minors',
|
||||
'summary': 'GOLEM Activity Registration Payment for Minors',
|
||||
'version': '10.0.0.2.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'auto_install': True,
|
||||
'depends': ['golem_member_minor', 'golem_activity_registration_payment',
|
||||
'golem_member_account'],
|
||||
'data': ['views/golem_activity_registration_invoicing.xml']
|
||||
}
|
43
golem_activity_registration_payment_member_minor/i18n/fr.po
Normal file
43
golem_activity_registration_payment_member_minor/i18n/fr.po
Normal file
@ -0,0 +1,43 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_payment_member_minor
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-11-01 18:52+0000\n"
|
||||
"PO-Revision-Date: 2018-11-01 19:53+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model,name:golem_activity_registration_payment_member_minor.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgstr "GOLEM Activity Registration Invoicing Wizard"
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment_member_minor.field_golem_activity_registration_invoicing_guardian_ids
|
||||
msgid "Guardian ids"
|
||||
msgstr "Représentants légaux"
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment_member_minor.field_golem_activity_registration_invoicing_is_minor
|
||||
msgid "Is minor?"
|
||||
msgstr "Est mineur?"
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment_member_minor.field_golem_activity_registration_invoicing_on_the_name_of
|
||||
msgid "On the Name of"
|
||||
msgstr "Pour le compte de"
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: code:addons/golem_activity_registration_payment_member_minor/wizard/golem_activity_registration_invoicing.py:66
|
||||
#, python-format
|
||||
msgid "This member is a minor, please fill on the name of so you invoice this registration"
|
||||
msgstr "Cet usager est un mineur, merci de remplir le champ pour le compte de pour permettre la facturation"
|
||||
|
@ -0,0 +1,43 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_payment_member_minor
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-11-01 18:52+0000\n"
|
||||
"PO-Revision-Date: 2018-11-01 18:52+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model,name:golem_activity_registration_payment_member_minor.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment_member_minor.field_golem_activity_registration_invoicing_guardian_ids
|
||||
msgid "Guardian ids"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment_member_minor.field_golem_activity_registration_invoicing_is_minor
|
||||
msgid "Is minor?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment_member_minor.field_golem_activity_registration_invoicing_on_the_name_of
|
||||
msgid "On the Name of"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment_member_minor
|
||||
#: code:addons/golem_activity_registration_payment_member_minor/wizard/golem_activity_registration_invoicing.py:66
|
||||
#, python-format
|
||||
msgid "This member is a minor, please fill on the name of so you invoice this registration"
|
||||
msgstr ""
|
||||
|
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_member
|
@ -0,0 +1,61 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Member adaptations """
|
||||
|
||||
from odoo import models, api
|
||||
|
||||
|
||||
class GolemMember(models.Model):
|
||||
""" GOLEM Member adaptations """
|
||||
_inherit = 'golem.member'
|
||||
|
||||
@api.multi
|
||||
def open_partner_invoices(self):
|
||||
""" Overwrite open member invoices """
|
||||
self.ensure_one()
|
||||
domain = ['|',
|
||||
('partner_id', '=', self.partner_id.id),
|
||||
('partner_ids', '=', self.partner_id.id)]
|
||||
invoice_ids = self.env['account.invoice'].search(domain)
|
||||
action = self.env.ref('account.action_invoice_tree1').read()[0]
|
||||
action['context'] = {'type':'out_invoice', 'journal_type': 'sale',
|
||||
'default_partner_id': self[0].partner_id.id}
|
||||
action['domain'] = [('id', 'in', invoice_ids.ids)]
|
||||
return action
|
||||
|
||||
@api.multi
|
||||
def open_partner_payments(self):
|
||||
""" Overwrite open member payments """
|
||||
self.ensure_one()
|
||||
# Get related invoices
|
||||
domain = ['|',
|
||||
('partner_id', '=', self.partner_id.id),
|
||||
('partner_ids', '=', self.partner_id.id)]
|
||||
invoice_ids = self.env['account.invoice'].search(domain)
|
||||
# Get related payments
|
||||
domain = ['|',
|
||||
('partner_id', '=', self.partner_id.id),
|
||||
('invoice_ids', 'in', invoice_ids.ids)]
|
||||
payment_ids = self.env['account.payment'].search(domain)
|
||||
|
||||
action = self.env.ref('account.action_account_payments').read()[0]
|
||||
action['context'] = {'default_payment_type': 'inbound',
|
||||
'default_partner_type': 'customer',
|
||||
'default_partner_id': self[0].partner_id.id}
|
||||
action['domain'] = [('id', 'in', payment_ids.ids)]
|
||||
return action
|
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Form -->
|
||||
<record id="golem_activity_registration_invoicing_view_form_inherit_member_minor"
|
||||
model="ir.ui.view">
|
||||
<field name="name">GOLEM Activity Registration Invoicing Form</field>
|
||||
<field name="model">golem.activity.registration.invoicing</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration_payment.golem_activity_registration_invoicing_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="member_id" position="after">
|
||||
<field name="on_the_name_of"
|
||||
attrs="{'invisible': [('is_minor', '=', False)], 'required': [('is_minor', '=', True)]}"
|
||||
options="{'no_create': True}"
|
||||
domain="[('id', 'in', guardian_ids[0][2])]" />
|
||||
<field name="is_minor" invisible="1" />
|
||||
<field name="guardian_ids" invisible="1" widget="many2many_tags" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_activity_registration_invoicing
|
@ -0,0 +1,70 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
_inherit = 'golem.activity.registration.invoicing'
|
||||
|
||||
guardian_ids = fields.Many2many('res.partner', compute='_compute_guardian_ids')
|
||||
on_the_name_of = fields.Many2one('res.partner', 'On the Name of',
|
||||
ondelete='cascade')
|
||||
is_minor = fields.Boolean(related='member_id.is_minor')
|
||||
|
||||
@api.depends('member_id')
|
||||
def _compute_guardian_ids(self):
|
||||
for rec in self:
|
||||
guardian_ids = rec.member_id.legal_guardian_ids.mapped('legal_guardian_id').ids
|
||||
rec.guardian_ids = [(6, 0, guardian_ids)]
|
||||
|
||||
@api.multi
|
||||
def _create_invoice(self):
|
||||
""" Create invoice and lines """
|
||||
self.ensure_one()
|
||||
invoice = super(GolemActivityRegistrationInvoicing, self)._create_invoice()
|
||||
if self[0].is_minor:
|
||||
invoice.write({'partner_id': self[0].on_the_name_of.id,
|
||||
'is_minor_invoice': True,
|
||||
'partner_ids': [(6, 0, [self[0].on_the_name_of.id,
|
||||
self[0].member_id.partner_id.id])]})
|
||||
return invoice
|
||||
|
||||
def _create_payments(self, invoice):
|
||||
""" Create payment if schedule has been chosen : handling minor case """
|
||||
self.ensure_one()
|
||||
payments = super(GolemActivityRegistrationInvoicing, self)._create_payments(invoice)
|
||||
if self.on_the_name_of:
|
||||
payments.write({'partner_id': self.on_the_name_of.id})
|
||||
return payments
|
||||
|
||||
@api.multi
|
||||
def validate(self):
|
||||
""" Validate and create invoice and payments """
|
||||
self.ensure_one()
|
||||
action = super(GolemActivityRegistrationInvoicing, self).validate()
|
||||
if self.is_minor and not self.on_the_name_of:
|
||||
err = _('This member is a minor, please fill on the name of so you '
|
||||
'invoice this registration')
|
||||
raise ValidationError(err)
|
||||
return action
|
||||
|
@ -15,4 +15,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import models
|
||||
from . import models, wizard
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -19,7 +19,7 @@
|
||||
'name': 'GOLEM Activity Session Member Registrations States',
|
||||
'summary': 'GOLEM Activities Session Member Registration states',
|
||||
'description': 'GOLEM Activities Session Member Registration states',
|
||||
'version': '10.0.2.2.0',
|
||||
'version': '10.0.2.3.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
|
@ -18,7 +18,7 @@
|
||||
""" GOLEM Activity Registration State """
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
class GolemMember(models.Model):
|
||||
""" GOLEM Member adaptations """
|
||||
@ -89,9 +89,10 @@ class GolemActivityRegistration(models.Model):
|
||||
def state_remove(self):
|
||||
""" Remove registrations, only if canceled """
|
||||
if self.filtered(lambda r: r.state != 'canceled'):
|
||||
uerr = _('You can not confirm a canceled registration.')
|
||||
uerr = _('You can not remove a uncanceled registration.')
|
||||
raise UserError(uerr)
|
||||
self.unlink()
|
||||
return {'type': 'ir.actions.client', 'tag': 'reload'}
|
||||
|
||||
@api.multi
|
||||
def write(self, values):
|
||||
|
@ -45,20 +45,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<attribute name="delete">0</attribute>
|
||||
</tree>
|
||||
<tree position="inside">
|
||||
<field name="id" invisible="1" />
|
||||
<field name="state" readonly="1" />
|
||||
<button type="object" name="state_draft" string="Reset to draft"
|
||||
icon="fa-arrow-up" attrs="{'invisible': [('state', '=', 'draft')]}"
|
||||
icon="fa-arrow-up" attrs="{'invisible': ['|', ('id', '=', False), ('state', '=', 'draft')]}"
|
||||
invisible="not context.get('action_show', 1)" />
|
||||
<button type="object" name="state_confirm" string="Confirm"
|
||||
icon="fa-check" attrs="{'invisible': [('state', '!=', 'draft')]}"
|
||||
icon="fa-check" attrs="{'invisible': ['|', ('id', '=', False), ('state', '!=', 'draft')]}"
|
||||
invisible="not context.get('action_show', 1)" />
|
||||
<button type="object" name="state_cancel" string="Cancel"
|
||||
icon="fa-ban" attrs="{'invisible': [('state', '=', 'canceled')]}"
|
||||
icon="fa-ban" attrs="{'invisible': ['|', ('id', '=', False), ('state', '=', 'canceled')]}"
|
||||
invisible="not context.get('action_show', 1)" />
|
||||
<button type="object" name="state_remove" string="Remove"
|
||||
icon="fa-trash"
|
||||
confirm="Are you sure you want to remove this subscription ?"
|
||||
attrs="{'invisible': [('state', '!=', 'canceled')]}"
|
||||
attrs="{'invisible': ['|', ('id', '=', False), ('state', '!=', 'canceled')]}"
|
||||
invisible="not context.get('action_show', 1)" />
|
||||
</tree>
|
||||
</field>
|
||||
|
19
golem_activity_registration_state/wizard/__init__.py
Normal file
19
golem_activity_registration_state/wizard/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_activity_registration_analysis_wizard
|
@ -0,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Activity Registration Analysis Wizard Adaptation """
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class GolemActivityRegistrationAnalysisWizard(models.TransientModel):
|
||||
""" GOLEM Activity Registration Analysis Wizard Adaptation """
|
||||
_inherit = 'golem.activity.registration.analysis.wizard'
|
||||
_description = 'GOLEM Activity Registration Analysis Wizard Adaptation '
|
||||
|
||||
@api.multi
|
||||
def get_registrations(self):
|
||||
""" Returns registrations """
|
||||
self.ensure_one()
|
||||
return self.env['golem.activity.registration'].search(
|
||||
[('season_id', '=', self[0].season_id.id),
|
||||
('state', '=', 'confirmed')]
|
||||
)
|
@ -14,3 +14,5 @@
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import models
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -22,7 +22,7 @@
|
||||
- New application on top menu ;
|
||||
- Management of users and groups, companies ;
|
||||
- Good default access / rights to do. ''',
|
||||
'version': '10.0.0.1.0',
|
||||
'version': '10.0.0.1.4',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
|
18
golem_admin/models/__init__.py
Normal file
18
golem_admin/models/__init__.py
Normal file
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import res_partner
|
39
golem_admin/models/res_partner.py
Normal file
39
golem_admin/models/res_partner.py
Normal file
@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" Partner adaptations """
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class Partner(models.Model):
|
||||
""" Partner adaptations """
|
||||
_inherit = 'res.partner'
|
||||
|
||||
signup_token = fields.Char(groups="golem_base.group_golem_manager")
|
||||
signup_type = fields.Char(groups="golem_base.group_golem_manager")
|
||||
signup_expiration = fields.Datetime(groups="golem_base.group_golem_manager")
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
""" Overwrite native function to workaround admin only write on fields
|
||||
signup*, as it's impossible to overwrite groups attribute """
|
||||
if (('signup_token' in vals or 'signup_type' in vals or
|
||||
'signup_expiration' in vals)
|
||||
and self.env.user.has_group('golem_base.group_golem_manager')):
|
||||
return super(Partner, self.sudo()).write(vals)
|
||||
return super(Partner, self).write(vals)
|
@ -4,3 +4,8 @@ access_res_users_group_golem_manager,Access Users GOLEM Manager,base.model_res_u
|
||||
access_res_groups_group_golem_manager,Access Groups GOLEM Manager,base.model_res_groups,golem_base.group_golem_manager,1,1,0,0
|
||||
access_ir_module_category_group_golem_manager,Access IR Module Category GOLEM Manager,base.model_ir_module_category,golem_base.group_golem_manager,1,0,0,0
|
||||
access_ir_ui_view_group_golem_manager,Access IR UI View GOLEM Manager,base.model_ir_ui_view,golem_base.group_golem_manager,1,1,0,0
|
||||
access_res_company_group_golem_auditor,Access Companies GOLEM Auditor,base.model_res_company,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_res_users_group_golem_auditor,Access Users GOLEM Auditor,base.model_res_users,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_res_groups_group_golem_auditor,Access Groups GOLEM Auditor,base.model_res_groups,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_ir_module_category_group_golem_auditor,Access IR Module Category GOLEM Auditor,base.model_ir_module_category,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_ir_ui_view_group_golem_auditor,Access IR UI View GOLEM Auditor,base.model_ir_ui_view,golem_base.group_golem_auditor,1,0,0,0
|
||||
|
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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
|
||||
@ -23,16 +23,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<!-- Menus -->
|
||||
<menuitem id="security_menu" name="Security" sequence="400"
|
||||
web_icon="golem_admin,static/description/icon.png"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
|
||||
<menuitem id="res_groups_menu" action="base.action_res_groups"
|
||||
parent="security_menu" sequence="10"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
|
||||
<menuitem id="res_users_menu" action="base.action_res_users"
|
||||
parent="security_menu" sequence="5"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
|
||||
<menuitem id="res_company_menu" action="base.action_res_company_form"
|
||||
parent="security_menu" sequence="10"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2016-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2020 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -18,14 +19,14 @@
|
||||
{
|
||||
'name': 'GOLEM base module for global dependencies',
|
||||
'summary': 'GOLEM base installs base and shared dependencies for GOLEM',
|
||||
'version': '10.0.1.0.5',
|
||||
'version': '10.0.1.1.2',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'depends': ['document', 'report', 'membership', 'contacts', 'mail',
|
||||
'account_voucher', 'partner_firstname',
|
||||
'account', 'account_voucher', 'partner_firstname',
|
||||
'partner_contact_birthdate', 'partner_contact_gender',
|
||||
'l10n_fr', 'l10n_fr_state', 'l10n_fr_department',
|
||||
'l10n_fr_siret',
|
||||
@ -34,6 +35,7 @@
|
||||
'web_responsive', 'backend_theme_v10',
|
||||
'web_widget_x2many_2d_matrix'],
|
||||
'data': ['security/golem_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/menus.xml',
|
||||
'views/yaltik_base_assets.xml']
|
||||
}
|
||||
|
@ -6,15 +6,19 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-01 14:19+0000\n"
|
||||
"PO-Revision-Date: 2017-06-28 17:30+0000\n"
|
||||
"POT-Creation-Date: 2020-05-28 16:28+0000\n"
|
||||
"PO-Revision-Date: 2020-05-28 18:36+0200\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_base
|
||||
#: model:res.groups,name:golem_base.group_golem_auditor
|
||||
msgid "GOLEM Auditor"
|
||||
msgstr "Auditeur"
|
||||
|
||||
#. module: golem_base
|
||||
#: model:res.groups,name:golem_base.group_golem_manager
|
||||
@ -31,6 +35,11 @@ msgstr "Utilisateur"
|
||||
msgid "Membership Products"
|
||||
msgstr "Types d'adhésions"
|
||||
|
||||
#. module: golem_base
|
||||
#: model:ir.model,name:golem_base.model_ir_mail_server
|
||||
msgid "ir.mail_server"
|
||||
msgstr "ir.mail_server"
|
||||
|
||||
#. module: base
|
||||
#: model:ir.actions.act_window,name:base.action_res_company_form
|
||||
#: model:ir.actions.act_window,name:base.company_normal_action_tree
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-05-01 14:19+0000\n"
|
||||
"PO-Revision-Date: 2017-05-01 14:19+0000\n"
|
||||
"POT-Creation-Date: 2020-05-28 16:28+0000\n"
|
||||
"PO-Revision-Date: 2020-05-28 16:28+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -15,6 +15,11 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_base
|
||||
#: model:res.groups,name:golem_base.group_golem_auditor
|
||||
msgid "GOLEM Auditor"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_base
|
||||
#: model:res.groups,name:golem_base.group_golem_manager
|
||||
msgid "GOLEM Manager"
|
||||
@ -30,3 +35,8 @@ msgstr ""
|
||||
msgid "Membership Products"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_base
|
||||
#: model:ir.model,name:golem_base.model_ir_mail_server
|
||||
msgid "ir.mail_server"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -21,8 +21,27 @@ from odoo import models, fields
|
||||
|
||||
|
||||
class IrMailServer(models.Model):
|
||||
"""IR Mail Server fix for >64 characters pass """
|
||||
""" IR Mail Server adaptations """
|
||||
_inherit = 'ir.mail_server'
|
||||
|
||||
# IR Mail Server fix for >64 characters pass
|
||||
smtp_user = fields.Char(size=100)
|
||||
smtp_pass = fields.Char(size=100)
|
||||
|
||||
def build_email(self, email_from, email_to, subject, body, email_cc=None,
|
||||
email_bcc=None, reply_to=False, attachments=None,
|
||||
message_id=None, references=None, object_id=False,
|
||||
subtype='plain', headers=None, body_alternative=None,
|
||||
subtype_alternative='plain'):
|
||||
""" Overwrite to supercharge from_to """
|
||||
get_param = self.env['ir.config_parameter'].sudo().get_param
|
||||
force_email_from = get_param('mail.force.email_from', email_from)
|
||||
if force_email_from != email_from:
|
||||
email_from = force_email_from
|
||||
reply_to = force_email_from
|
||||
msg = super(IrMailServer, self).build_email(
|
||||
email_from, email_to, subject, body, email_cc, email_bcc,
|
||||
reply_to, attachments, message_id, references, object_id, subtype,
|
||||
headers, body_alternative, subtype_alternative
|
||||
)
|
||||
return msg
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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
|
||||
@ -20,6 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<odoo>
|
||||
<data noupdate="0">
|
||||
<!-- Groups -->
|
||||
<record id="base.group_partner_manager" model="res.groups">
|
||||
<field name="category_id" ref="base.module_category_golem"/>
|
||||
</record>
|
||||
<record id="group_golem_user" model="res.groups">
|
||||
<field name="name">GOLEM user</field>
|
||||
<field name="category_id"
|
||||
@ -30,6 +33,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
ref('base.group_partner_manager'),
|
||||
ref('account.group_account_invoice')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_golem_auditor" model="res.groups">
|
||||
<field name="name">GOLEM Auditor</field>
|
||||
<field name="category_id" ref="base.module_category_golem"/>
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_portal'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_golem_manager" model="res.groups">
|
||||
<field name="name">GOLEM Manager</field>
|
||||
<field name="category_id" ref="base.module_category_golem"/>
|
||||
|
11
golem_base/security/ir.model.access.csv
Normal file
11
golem_base/security/ir.model.access.csv
Normal file
@ -0,0 +1,11 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_res_partner_auditor,Access Res Partner Auditor,base.model_res_partner,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_res_partner_category_auditor,Access Res Partner Category Auditor,base.model_res_partner_category,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_account_invoice_auditor,Access Account Invoice Auditor,account.model_account_invoice,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_account_invoice_tax_auditor,Access Account Invoice Tax Auditor,account.model_account_invoice_tax,group_golem_auditor,1,0,0,0
|
||||
access_account_invoice_line_auditor,Access Account Invoice Line Auditor,account.model_account_invoice_line,group_golem_auditor,1,0,0,0
|
||||
access_account_move_line_auditor,Access Account Move Line Auditor,account.model_account_move_line,group_golem_auditor,1,0,0,0
|
||||
access_account_journal_auditor,Access Account Journal Auditor,account.model_account_journal,group_golem_auditor,1,0,0,0
|
||||
access_account_voucher_auditor,Access Account Voucher Auditor,account_voucher.model_account_voucher,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_account_voucher_line_auditor,Access Account Voucher Line Auditor,account_voucher.model_account_voucher_line,group_golem_auditor,1,0,0,0
|
||||
access_account_account_tag_auditor,Access Account Account Tax Auditor,account.model_account_account_tag,group_golem_auditor,1,0,0,0
|
|
@ -28,6 +28,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
action="membership.action_membership_products"
|
||||
parent="membership.menu_marketing_config_association" sequence="20"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
<menuitem name="Invoicing"
|
||||
id="account.menu_finance"
|
||||
groups="account.group_account_user,account.group_account_manager,account.group_account_invoice,group_golem_auditor"
|
||||
web_icon="account,static/description/icon.png"
|
||||
sequence="40"/>
|
||||
<menuitem id="account.menu_finance_configuration"
|
||||
name="Configuration"
|
||||
parent="account.menu_finance" sequence="15" groups="account.group_account_invoice,group_golem_auditor"/>
|
||||
|
||||
<menuitem id="account.account_account_menu"
|
||||
name="Accounting"
|
||||
parent="account.menu_finance_configuration"
|
||||
sequence="2"
|
||||
groups="account.group_account_invoice,group_golem_auditor"/>
|
||||
<!-- Members Analysis for managers only -->
|
||||
<record id="membership.menu_report_membership" model="ir.ui.menu">
|
||||
<field name="groups_id"
|
||||
|
17
golem_event/__init__.py
Normal file
17
golem_event/__init__.py
Normal file
@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2020 Youssef EL OUAHBY <youssef@yaltik.com>
|
||||
# Copyright 2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
31
golem_event/__manifest__.py
Normal file
31
golem_event/__manifest__.py
Normal file
@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2020 Youssef EL OUAHBY <youssef@yaltik.com>
|
||||
# Copyright 2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
{
|
||||
'name': 'GOLEM events',
|
||||
'summary': 'Extends Odoo events',
|
||||
'description': 'Extends Odoo events',
|
||||
'version': '10.0.0.1.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois, Youssef EL OUAHBY',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'depends': ['golem_base', 'event'],
|
||||
'data': ['views/event_views.xml']
|
||||
}
|
27
golem_event/i18n/fr.po
Normal file
27
golem_event/i18n/fr.po
Normal file
@ -0,0 +1,27 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_event
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-05-28 07:40+0000\n"
|
||||
"PO-Revision-Date: 2020-05-28 09:42+0200\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_event
|
||||
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
|
||||
msgid "Current and Upcoming"
|
||||
msgstr "En cours et à venir"
|
||||
|
||||
#. module: golem_event
|
||||
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
|
||||
msgid "Current and upcoming events from today"
|
||||
msgstr "Événements en cours et à venir par rapport à aujourd'hui"
|
||||
|
27
golem_event/i18n/golem_event.pot
Normal file
27
golem_event/i18n/golem_event.pot
Normal file
@ -0,0 +1,27 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_event
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-05-28 07:40+0000\n"
|
||||
"PO-Revision-Date: 2020-05-28 07:40+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_event
|
||||
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
|
||||
msgid "Current and Upcoming"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_event
|
||||
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
|
||||
msgid "Current and upcoming events from today"
|
||||
msgstr ""
|
||||
|
BIN
golem_event/static/description/icon.png
Normal file
BIN
golem_event/static/description/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
40
golem_event/views/event_views.xml
Normal file
40
golem_event/views/event_views.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2020 Youssef EL OUAHBY <youssef@yaltik.com>
|
||||
Copyright 2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Search -->
|
||||
<record id="golem_event_inherit_view_event_search" model="ir.ui.view">
|
||||
<field name="name">Event Search Adaptations</field>
|
||||
<field name="inherit_id" ref="event.view_event_search"/>
|
||||
<field name="model">event.event</field>
|
||||
<field name="arch" type="xml">
|
||||
<filter name="upcoming" position="replace">
|
||||
<filter string="Current and Upcoming" name="upcoming"
|
||||
domain="['&', ('state', '!=', 'cancel'), '|',
|
||||
('date_begin','>=', datetime.datetime.combine(context_today(), datetime.time(0,0,0))),
|
||||
('date_end','>=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]"
|
||||
help="Current and upcoming events from today" />
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2016-2021 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -19,9 +19,9 @@
|
||||
'name': 'GOLEM families',
|
||||
'summary': 'GOLEM Members Families',
|
||||
'description': 'GOLEM Members Families',
|
||||
'version': '10.0.2.3.1',
|
||||
'version': '10.0.2.6.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'author': 'Fabien Bourgeois, Youssef El Ouahby',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-01 10:12+0000\n"
|
||||
"PO-Revision-Date: 2018-08-01 12:15+0200\n"
|
||||
"POT-Creation-Date: 2021-01-14 14:45+0000\n"
|
||||
"PO-Revision-Date: 2021-01-14 15:45+0100\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -52,6 +52,31 @@ msgstr "<strong>Région</strong> :"
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_id
|
||||
msgid "Area"
|
||||
msgstr "Territoire"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_from_street
|
||||
msgid "Area from street"
|
||||
msgstr "Territoire automatique depuis la rue"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
|
||||
msgid "Area, quarter..."
|
||||
msgstr "Lieu, quartier..."
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,help:golem_family.field_golem_family_area_id
|
||||
msgid "Area, quarter... for statistics and activity price."
|
||||
msgstr "Lieu, quartier... pour les statistiques et les tarifs des activités."
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
|
||||
msgid "By area"
|
||||
msgstr "Par territoire"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
|
||||
msgid "By city"
|
||||
@ -145,8 +170,8 @@ msgid "Family"
|
||||
msgstr "Famille"
|
||||
|
||||
#. module: golem_family
|
||||
#: code:addons/golem_family/models/golem_family.py:50
|
||||
#: code:addons/golem_family/models/golem_family.py:84
|
||||
#: code:addons/golem_family/models/golem_family.py:59
|
||||
#: code:addons/golem_family/models/golem_family.py:93
|
||||
#, python-format
|
||||
msgid "Family Members"
|
||||
msgstr "Membres de la famille"
|
||||
@ -156,6 +181,13 @@ msgstr "Membres de la famille"
|
||||
msgid "Family form"
|
||||
msgstr "Fiche Famille"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_member_names
|
||||
#: model:ir.model.fields,field_description:golem_family.field_res_partner_family_member_names
|
||||
#: model:ir.model.fields,field_description:golem_family.field_res_users_family_member_names
|
||||
msgid "Family member names"
|
||||
msgstr "Noms des membres de la famille"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
|
||||
msgid "Family members"
|
||||
@ -308,6 +340,16 @@ msgstr "Role"
|
||||
msgid "Roles"
|
||||
msgstr "Roles"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_single_parent
|
||||
msgid "Single parent"
|
||||
msgstr "Monoparentale"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
|
||||
msgid "Single-parent"
|
||||
msgstr "Monoparentale"
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_state_id
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_state_id
|
||||
@ -388,3 +430,4 @@ msgstr "membres"
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_member_form_inherit_golem_family
|
||||
msgid "name@example.org"
|
||||
msgstr "name@example.org"
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-01 10:12+0000\n"
|
||||
"PO-Revision-Date: 2018-08-01 10:12+0000\n"
|
||||
"POT-Creation-Date: 2021-01-14 14:45+0000\n"
|
||||
"PO-Revision-Date: 2021-01-14 14:45+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -52,6 +52,31 @@ msgstr ""
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_id
|
||||
msgid "Area"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_from_street
|
||||
msgid "Area from street"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
|
||||
msgid "Area, quarter..."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,help:golem_family.field_golem_family_area_id
|
||||
msgid "Area, quarter... for statistics and activity price."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
|
||||
msgid "By area"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
|
||||
msgid "By city"
|
||||
@ -145,8 +170,8 @@ msgid "Family"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: code:addons/golem_family/models/golem_family.py:50
|
||||
#: code:addons/golem_family/models/golem_family.py:84
|
||||
#: code:addons/golem_family/models/golem_family.py:59
|
||||
#: code:addons/golem_family/models/golem_family.py:93
|
||||
#, python-format
|
||||
msgid "Family Members"
|
||||
msgstr ""
|
||||
@ -156,6 +181,13 @@ msgstr ""
|
||||
msgid "Family form"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_member_names
|
||||
#: model:ir.model.fields,field_description:golem_family.field_res_partner_family_member_names
|
||||
#: model:ir.model.fields,field_description:golem_family.field_res_users_family_member_names
|
||||
msgid "Family member names"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
|
||||
msgid "Family members"
|
||||
@ -308,6 +340,16 @@ msgstr ""
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_single_parent
|
||||
msgid "Single parent"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
|
||||
msgid "Single-parent"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_family_state_id
|
||||
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_state_id
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-2021 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@ -41,6 +42,16 @@ class ResPartner(models.Model):
|
||||
index=True)
|
||||
family_count = fields.Integer(related='family_id.count')
|
||||
|
||||
family_member_names = fields.Char(compute='_compute_family_member_names',
|
||||
index=True, store=True)
|
||||
|
||||
@api.depends('family_id', 'family_id.member_ids')
|
||||
def _compute_family_member_names(self):
|
||||
""" Computes family member names, for search """
|
||||
for member in self:
|
||||
if member.family_id:
|
||||
member.family_member_names = u', '.join(member.family_id.member_ids.mapped('name'))
|
||||
|
||||
@api.multi
|
||||
def button_family_members(self):
|
||||
""" Go to family view, from partner """
|
||||
@ -140,9 +151,16 @@ class GolemFamily(models.Model):
|
||||
|
||||
member_ids = fields.One2many('res.partner', 'family_id', 'Members',
|
||||
domain=[('is_company', '=', False)])
|
||||
single_parent = fields.Boolean()
|
||||
note = fields.Text()
|
||||
count = fields.Integer(compute='_compute_count', store=True)
|
||||
|
||||
area_id = fields.Many2one(
|
||||
'golem.partner.area', index=True, auto_join=True, string='Area',
|
||||
help="Area, quarter... for statistics and activity price."
|
||||
)
|
||||
area_from_street = fields.Boolean(store=False, default=False)
|
||||
|
||||
@api.depends('member_ids')
|
||||
def _compute_count(self):
|
||||
for family in self:
|
||||
@ -159,6 +177,34 @@ class GolemFamily(models.Model):
|
||||
'zip': family.member_ids[0].zip,
|
||||
'city': family.member_ids[0].city})
|
||||
|
||||
@api.onchange('street')
|
||||
def onchange_street(self):
|
||||
""" Area auto assignement """
|
||||
for family in self:
|
||||
mstreet = family.street.strip() if family.street else False
|
||||
if mstreet and not family.area_id:
|
||||
street_id = self.env['golem.partner.area.street'].search(
|
||||
[('name', 'ilike', mstreet)], limit=1
|
||||
)
|
||||
if street_id:
|
||||
family.area_id = street_id.area_id
|
||||
family.area_from_street = True
|
||||
|
||||
@api.constrains('street')
|
||||
def save_street(self):
|
||||
""" Save street if no exist """
|
||||
for family in self:
|
||||
if family.street and not family.area_from_street:
|
||||
mstreet = family.street.strip()
|
||||
street_id = self.env['golem.partner.area.street'].search(
|
||||
[('name', 'ilike', mstreet)]
|
||||
)
|
||||
if not street_id:
|
||||
self.env['golem.partner.area.street'].create(
|
||||
{'name': mstreet, 'area_id': family.area_id.id}
|
||||
)
|
||||
|
||||
|
||||
class GolemFamilyRole(models.Model):
|
||||
""" GOLEM Family Role """
|
||||
_name = 'golem.family.role'
|
||||
|
@ -1,4 +1,6 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_golem_family_auditor,Access GOLEM Family Auditor,model_golem_family,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_family_user,Access GOLEM Family User,model_golem_family,golem_base.group_golem_user,1,1,1,1
|
||||
access_golem_family_role_auditor,Access GOLEM Family Role Auditor,model_golem_family_role,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_family_role_user,Access GOLEM Family Role User,model_golem_family_role,golem_base.group_golem_user,1,0,0,0
|
||||
access_golem_family_role_manager,Access GOLEM Family Role Manager,model_golem_family_role,golem_base.group_golem_manager,1,1,1,1
|
||||
|
|
@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2018-2020 Youssef El Ouahby <youssef@yaltik.com>
|
||||
|
||||
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
|
||||
@ -36,11 +37,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
</h1>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="single_parent" />
|
||||
</group>
|
||||
<group string="Address">
|
||||
<group>
|
||||
<field name="street" placeholder="Street..." />
|
||||
<field name="street2" />
|
||||
<field name="zip" placeholder="ZIP" />
|
||||
<field name="area_id" placeholder="Area, quarter..."
|
||||
options="{'no_create': true}" />
|
||||
<field name="city" placeholder="City" />
|
||||
</group>
|
||||
<group>
|
||||
@ -182,12 +188,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" />
|
||||
<field name='area_id' />
|
||||
<field name="zip" />
|
||||
<field name="city" />
|
||||
<field name="phone" />
|
||||
<field name="mobile" />
|
||||
<field name="email" />
|
||||
<filter name="single_parent" string="Single-parent"
|
||||
domain="[('single_parent', '=', True)]" />
|
||||
<group string="Group By">
|
||||
<filter name='group_by_area_id' string="By area"
|
||||
context='{"group_by": "area_id"}'/>
|
||||
<filter name="group_city" string="By city"
|
||||
context="{'group_by': 'city'}"/>
|
||||
</group>
|
||||
@ -203,14 +214,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<!-- Menus -->
|
||||
<menuitem id="golem_family_menu" name="Families"
|
||||
sequence="17" groups="golem_base.group_golem_user"
|
||||
sequence="17"
|
||||
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
|
||||
web_icon="golem_family,static/description/icon.png" />
|
||||
<menuitem id="golem_family_menu_list" name="Families"
|
||||
parent="golem_family_menu" action="golem_family_action_list" sequence="1"
|
||||
groups="golem_base.group_golem_user" />
|
||||
groups="golem_base.group_golem_user,golem_base.group_golem_auditor" />
|
||||
<menuitem id="golem_family_role_menu" name="Roles"
|
||||
parent="golem_family_menu" action="golem_family_role_action" sequence="5"
|
||||
groups="golem_base.group_golem_manager" />
|
||||
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2017-2021 Fabien Bourgeois <fabien@yaltik.com>
|
||||
|
||||
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
|
||||
@ -92,6 +92,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="family_id" />
|
||||
<field name="family_member_names" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
19
golem_family_history/__init__.py
Normal file
19
golem_family_history/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import models
|
31
golem_family_history/__manifest__.py
Normal file
31
golem_family_history/__manifest__.py
Normal file
@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
{
|
||||
'name': 'GOLEM Families History',
|
||||
'summary': 'GOLEM Families History',
|
||||
'description': 'GOLEM Families History',
|
||||
'version': '10.0.0.1.1',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois, Youssef El ouahby',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'depends': ['golem_family'],
|
||||
'data': ['security/ir.model.access.csv', 'views/golem_family_views.xml']
|
||||
}
|
114
golem_family_history/i18n/fr.po
Normal file
114
golem_family_history/i18n/fr.po
Normal file
@ -0,0 +1,114 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_family_history
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-10-26 15:44+0000\n"
|
||||
"PO-Revision-Date: 2018-10-26 17:46+0200\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_area_id
|
||||
msgid "Area"
|
||||
msgstr "Territoire"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_city
|
||||
msgid "City"
|
||||
msgstr "Ville"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_country_id
|
||||
msgid "Country"
|
||||
msgstr "Pays"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_date
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nom affiché"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_family_id
|
||||
msgid "Family"
|
||||
msgstr "Famille"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model,name:golem_family_history.model_golem_family
|
||||
msgid "GOLEM Family Entity"
|
||||
msgstr "Famille"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model,name:golem_family_history.model_golem_family_history
|
||||
msgid "GOLEM Family History Management"
|
||||
msgstr "GOLEM Family History Management"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.ui.view,arch_db:golem_family_history.golem_family_form_inherit_golem_family_history
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_family_history_ids
|
||||
msgid "History details"
|
||||
msgstr "Historique"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière Modification le"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_member_ids
|
||||
msgid "Members"
|
||||
msgstr "Adhérents"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_season_id
|
||||
msgid "Season"
|
||||
msgstr "Saison"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: code:addons/golem_family_history/models/golem_family_history.py:30
|
||||
#: sql_constraint:golem.family.history:0
|
||||
#, python-format
|
||||
msgid "You can only have one history line for each family and season combination."
|
||||
msgstr "Vous ne pouvez avoir qu'une seule ligne par famille par saison."
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_zip_code
|
||||
msgid "ZIP"
|
||||
msgstr "Code postal"
|
||||
|
114
golem_family_history/i18n/golem_family_history.pot
Normal file
114
golem_family_history/i18n/golem_family_history.pot
Normal file
@ -0,0 +1,114 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_family_history
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-10-26 15:44+0000\n"
|
||||
"PO-Revision-Date: 2018-10-26 15:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_area_id
|
||||
msgid "Area"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_city
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_country_id
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_family_id
|
||||
msgid "Family"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model,name:golem_family_history.model_golem_family
|
||||
msgid "GOLEM Family Entity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model,name:golem_family_history.model_golem_family_history
|
||||
msgid "GOLEM Family History Management"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.ui.view,arch_db:golem_family_history.golem_family_form_inherit_golem_family_history
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_family_history_ids
|
||||
msgid "History details"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_member_ids
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_season_id
|
||||
msgid "Season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: code:addons/golem_family_history/models/golem_family_history.py:30
|
||||
#: sql_constraint:golem.family.history:0
|
||||
#, python-format
|
||||
msgid "You can only have one history line for each family and season combination."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_family_history
|
||||
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_zip_code
|
||||
msgid "ZIP"
|
||||
msgstr ""
|
||||
|
19
golem_family_history/models/__init__.py
Normal file
19
golem_family_history/models/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
from . import golem_family_history, golem_family
|
51
golem_family_history/models/golem_family.py
Normal file
51
golem_family_history/models/golem_family.py
Normal file
@ -0,0 +1,51 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Families Adaptations"""
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class GolemFamily(models.Model):
|
||||
""" GOLEM Family Adaptations """
|
||||
_inherit = 'golem.family'
|
||||
|
||||
family_history_ids = fields.One2many('golem.family.history', 'family_id',
|
||||
readonly=True, string='History details')
|
||||
|
||||
@api.constrains('area_id', 'zip', 'city', 'country_id', 'member_ids')
|
||||
def save_family_history(self):
|
||||
""" Saves family history """
|
||||
default_season = self.env['golem.season'].search([('is_default', '=', True)], limit=1)
|
||||
for family in self:
|
||||
history_id = self.env['golem.family.history'].search([
|
||||
('family_id', '=', family.id),
|
||||
('season_id', '=', default_season.id)], limit=1)
|
||||
history_data = {
|
||||
'zip_code': family.zip,
|
||||
'area_id': family.area_id.id,
|
||||
'city': family.city,
|
||||
'country_id': family.country_id.id,
|
||||
'member_ids':[(6, False, family.member_ids.ids)]
|
||||
}
|
||||
if history_id:
|
||||
history_id.write(history_data)
|
||||
else:
|
||||
history_data.update({'family_id': family.id,
|
||||
'season_id': default_season.id})
|
||||
self.env['golem.family.history'].create(history_data)
|
43
golem_family_history/models/golem_family_history.py
Normal file
43
golem_family_history/models/golem_family_history.py
Normal file
@ -0,0 +1,43 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
|
||||
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
""" GOLEM Family History Management """
|
||||
|
||||
from odoo import models, fields, _
|
||||
|
||||
class GolemFamilyHistory(models.Model):
|
||||
""" GOLEM Family History Management """
|
||||
_name = 'golem.family.history'
|
||||
_description = 'GOLEM Family History Management'
|
||||
_order = 'season_id desc, id desc'
|
||||
_sql_constraints = [('golem_family_history_family_season_uniq',
|
||||
'UNIQUE (family_id, season_id)',
|
||||
_('You can only have one history line for each '
|
||||
'family and season combination.'))]
|
||||
|
||||
family_id = fields.Many2one('golem.family', required=True, auto_join=True,
|
||||
string='Family', ondelete='cascade')
|
||||
season_id = fields.Many2one('golem.season', required=True, auto_join=True,
|
||||
string='Season', ondelete='cascade')
|
||||
zip_code = fields.Char(string='ZIP')
|
||||
area_id = fields.Many2one('golem.partner.area', string='Area',
|
||||
auto_join=True, ondelete='cascade')
|
||||
city = fields.Char()
|
||||
country_id = fields.Many2one('res.country', string='Country')
|
||||
member_ids = fields.Many2many('res.partner', string='Members',
|
||||
auto_join=True)
|
3
golem_family_history/security/ir.model.access.csv
Normal file
3
golem_family_history/security/ir.model.access.csv
Normal file
@ -0,0 +1,3 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_golem_family_history_auditor,Access GOLEM Family History Auditor,model_golem_family_history,golem_base.group_golem_auditor,1,0,0,0
|
||||
access_golem_family_history_user,Access GOLEM Family History User,model_golem_family_history,golem_base.group_golem_user,1,1,1,1
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user