forked from Yaltik/golem
Compare commits
412 Commits
golem_reso
...
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 | |||
265f817f90 | |||
a2ac0fbb79 | |||
b87a4d57ae | |||
61eaea0ea6 | |||
f63264fe62 | |||
f69c1f4951 | |||
a58caf5b83 | |||
f864d4a5ca | |||
8a5d18c2f0 | |||
66b5057709 | |||
459972669c | |||
4c9bfe446a | |||
6105d2d8c0 | |||
3bcba79dbb | |||
a907c23e06 | |||
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 | |||
6054b3ac87 | |||
db0b9f3c34 | |||
66567045c6 | |||
29792a7712 | |||
27235e0b3f | |||
64c1fd4773 | |||
8318ac4fcf | |||
150cb1ac39 | |||
063da04cf0 | |||
164be1025e | |||
9d66afb2e2 | |||
09017b13e9 | |||
d6e3da556a | |||
cc12c13170 | |||
390bcb18f1 | |||
3676634790 | |||
eb5e82bfa7 | |||
b30d5cb2b8 | |||
a52ccbcd20 | |||
047d57ad5d | |||
9e940ce4ff | |||
12f5a08bfc | |||
0249a1c50f | |||
301cabfa07 | |||
c1e370281e | |||
c5ce18361d | |||
a4d6becaaa | |||
2f97fa9c40 | |||
a13f8cacf3 | |||
363768f901 | |||
78164bd55c | |||
e5fefa2e9d | |||
3ccce89bf1 | |||
5ca67d5a48 | |||
970fa991b5 | |||
2ce0ddfc8c | |||
46605a8227 | |||
56f6bd9615 | |||
8b40f33a9d | |||
f1aa568e78 | |||
39a2565d07 | |||
e2d72cb4ab | |||
9307ece7d1 | |||
233e4a268e | |||
757089762f | |||
8060d261e3 | |||
fa539c29dd | |||
cf4a804038 | |||
26d8e1c5f4 | |||
22df2eea36 | |||
569c167e36 | |||
e6e15bf66c | |||
037a69d09e | |||
245ef22c80 | |||
cd4c0fc872 | |||
cce4cbccfc | |||
7b022c6623 | |||
6e778399ef | |||
d82babaa25 | |||
00451b4f9f | |||
33ded22f1b | |||
84c8166294 | |||
4a2de70755 | |||
ce55580bf7 | |||
893bfcd79b | |||
d070acfbe0 | |||
189eccba41 | |||
776371e6db | |||
04cfcf43e4 | |||
bb51ff6c25 | |||
69d4cfcf00 | |||
244ee83487 | |||
3270ceab13 | |||
9b2462a132 | |||
1829c62879 | |||
410ef7c0eb | |||
44dde64e36 | |||
5746a30a62 | |||
621f6efb27 | |||
25d2f6ac62 | |||
ad003e27f5 | |||
c18b0a20a7 | |||
824f187fce | |||
81f2b0d03b | |||
fa94b26859 | |||
ad0d5b0ff6 | |||
601971cd92 | |||
2f297f4db0 | |||
06618da5f1 | |||
3fd0b457c3 | |||
c683931250 | |||
7c51acbfc9 | |||
5006d2d2b4 | |||
61b2e06bae | |||
2d6bdcdab8 | |||
619605da67 | |||
151fa26e6e | |||
bf050e225f | |||
7439bea559 | |||
97fcfa6cb1 | |||
3171e3c42d | |||
5175f03f4f | |||
0421f494bc | |||
e76a516177 | |||
392c195b42 | |||
8ff013c485 | |||
1a66cbd81c | |||
c89cc9a2ed | |||
41633d574f | |||
3353db163f | |||
b820207d67 | |||
ff8a4df86a | |||
654d2de6b4 | |||
66a46d65f6 | |||
704e2809c2 | |||
a39e8a3957 | |||
d86c482a03 | |||
0d34421f4d | |||
42bbe74fab | |||
|
0b97623c02 | ||
|
1b6a3c674e | ||
460d138730 | |||
0e20503a8b | |||
e8d6336bca | |||
fb51cf9dc0 | |||
6ccf24e485 | |||
b855e1436e | |||
21f5b6789a | |||
d19e650158 | |||
28a3e84105 | |||
95cc14a4ee | |||
c446fccd03 | |||
3ce2f43b35 | |||
|
7e845ae932 | ||
|
b584cf8bef | ||
|
482e4c0b69 | ||
07e2291189 | |||
988e53bc50 | |||
4104fbace9 | |||
|
b105d87745 | ||
5e27186939 | |||
6d163a7a93 | |||
|
e7464a62b3 | ||
|
1398cb945d | ||
720500a4f7 | |||
408ae9a8c3 | |||
6b9731335e | |||
|
ce325aa054 | ||
|
94bdd6240a | ||
|
01a34e0e3b | ||
|
c669ddae2f | ||
|
2abaabc002 | ||
|
3c2ce0ceba | ||
|
53e28fec61 | ||
|
4712b3e689 | ||
|
08eb3ecb4b | ||
|
7223afa486 | ||
|
9961933f96 | ||
|
66c01206f0 | ||
|
a0fc41cbcc | ||
|
1415b0306f | ||
|
fdf556a8d8 | ||
|
36058fe141 | ||
|
1afbe75845 | ||
|
a0721e6a1c | ||
|
e738473b53 | ||
fa635b496e | |||
0cbf3719f2 | |||
|
0a4abc795f | ||
f710947771 | |||
350ff3e52a | |||
ced4cbf42a | |||
0bb22d7b1b | |||
8ea116675e | |||
0e250ea075 | |||
e7fad86347 | |||
7b390534f2 | |||
|
24d08c0774 | ||
|
e36c9b537c | ||
6b3942389d | |||
5e557edf22 | |||
ffa453d2c8 | |||
f3e45b885d | |||
671cb68b86 | |||
96b29fdc9f | |||
|
991e5bc39a | ||
|
79c8d501a0 | ||
|
4cd64ef8aa |
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016 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
|
||||
@ -18,7 +18,8 @@
|
||||
{
|
||||
'name': 'GOLEM activities',
|
||||
'summary': 'Extends Odoo products for multi-activity',
|
||||
'version': '10.0.2.1.2',
|
||||
'description': 'Extends Odoo products for multi-activity',
|
||||
'version': '10.0.2.8.2',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois, Michel Dessenne',
|
||||
'license': 'AGPL-3',
|
||||
@ -27,5 +28,6 @@
|
||||
'depends': ['product', 'account', 'golem_base', 'golem_season'],
|
||||
'data': ['security/ir.model.access.csv',
|
||||
'data/golem_activity_data.xml',
|
||||
'views/golem_activity_views.xml']
|
||||
'views/golem_activity_views.xml',
|
||||
'report/golem_activity_report_templates.xml']
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2016 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2016-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
|
||||
@ -19,21 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<!-- Good default for product categories -->
|
||||
<record id="property_account_expense_categ_id" model="ir.property">
|
||||
<field name="name">property_account_expense_categ_id</field>
|
||||
<field name="fields_id" search="[('model','=','product.category'),('name','=','property_account_expense_categ_id')]"/>
|
||||
<field name="value">account.account,610</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
<record id="property_account_income_categ_id" model="ir.property">
|
||||
<field name="name">property_account_income_categ_id</field>
|
||||
<field name="fields_id" search="[('model','=','product.category'),('name','=','property_account_income_categ_id')]"/>
|
||||
<field name="value">account.account,854</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
<!-- Base data for activities -->
|
||||
<record model="golem.activity.audience" id="golem_activity_audience_adults">
|
||||
<field name="name">Adults</field>
|
||||
</record>
|
||||
<record model="golem.activity.audience" id="golem_activity_audience_children">
|
||||
<field name="name">Childrens</field>
|
||||
</record>
|
||||
<record model="golem.activity.type" id="golem_activity_type_activity">
|
||||
<field name="name">Activity</field>
|
||||
<field name="is_recurrent">1</field>
|
||||
|
@ -6,21 +6,90 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-01 16:28+0000\n"
|
||||
"PO-Revision-Date: 2018-02-01 16:28+0000\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"
|
||||
"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_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_product_variant_count
|
||||
msgid "# Product Variants"
|
||||
msgstr "# Variantes d'articles"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Animator : </strong>>"
|
||||
msgstr "<strong>Intervenant : </strong>>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Category : </strong>"
|
||||
msgstr "<strong>Catégorie : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Date Start : </strong>"
|
||||
msgstr "<strong>Début : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Date Stop : </strong>"
|
||||
msgstr "<strong>Fin : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Is Full Season : </strong>"
|
||||
msgstr "<strong>Sur toute la saison ? </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Is Recurrent : </strong>"
|
||||
msgstr "<strong>Est répété : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Places : </strong>"
|
||||
msgstr "<strong>Places : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Price : </strong>>"
|
||||
msgstr "<strong>Tarif : </strong>>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Reference : </strong>>"
|
||||
msgstr "<strong>Référence : </strong>>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Season : </strong>>"
|
||||
msgstr "<strong>Saison : </strong>>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Start Hour : </strong>>"
|
||||
msgstr "<strong>Heure de début : </strong>>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Stop Hour : </strong>>"
|
||||
msgstr "<strong>Heure de fin : </strong>>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Type : </strong>"
|
||||
msgstr "<strong>Type : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Weekday : </strong>"
|
||||
msgstr "<strong>Jour de la semaine : </strong>"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_description_sale
|
||||
msgid "A description of the Product that you want to communicate to your customers. This description will be copied to every Sale Order, Delivery Order and Customer Invoice/Refund"
|
||||
@ -68,24 +137,49 @@ msgstr "Catégories d'activités"
|
||||
msgid "Activity"
|
||||
msgstr "Activité"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "Activity :"
|
||||
msgstr "Activité :"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.menu,name:golem_activity.golem_activity_audience_menu_list
|
||||
msgid "Activity Audiences"
|
||||
msgstr "Publics des activités"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
msgid "Activity Name"
|
||||
msgstr "Nom de l'activité"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.actions.report.xml,name:golem_activity.golem_activity_report_html
|
||||
msgid "Activity Report [HTML]"
|
||||
msgstr "Export activité [HTML]"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.actions.report.xml,name:golem_activity.golem_activity_report_pdf
|
||||
msgid "Activity Report [PDF]"
|
||||
msgstr "Export activité [PDF]"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.menu,name:golem_activity.golem_activity_type_menu_list
|
||||
msgid "Activity Types"
|
||||
msgstr "Types d'activité"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:120
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_name
|
||||
msgid "Activity audience"
|
||||
msgstr "Public"
|
||||
|
||||
#. module: golem_activity
|
||||
#: 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:116
|
||||
#: 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."
|
||||
@ -95,6 +189,17 @@ msgstr "La date de début ne peut pas être avant la date de début de la saison
|
||||
msgid "Activity type"
|
||||
msgstr "Type d'activité"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:golem.activity.audience,name:golem_activity.golem_activity_audience_adults
|
||||
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"
|
||||
@ -105,6 +210,11 @@ msgstr "Intervenant"
|
||||
msgid "Arts martiaux"
|
||||
msgstr "Arts martiaux"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4022
|
||||
msgid "Audience"
|
||||
msgstr "Public"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_barcode
|
||||
msgid "Barcode"
|
||||
@ -114,7 +224,7 @@ msgstr "Code Barre"
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_list_price
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_lst_price
|
||||
msgid "Base price to compute the customer price. Sometimes called the catalog price."
|
||||
msgstr "Prix de base pour calculer le prix client. Parfois appelé prix catalogue."
|
||||
msgstr "Prix de base pour calculer le prix usager. Parfois appelé prix catalogue."
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:product.category,name:golem_activity.golem_product_category_wellbeing
|
||||
@ -156,11 +266,6 @@ msgstr "Peut être loué"
|
||||
msgid "Can be Sold"
|
||||
msgstr "Peut être vendu"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_categ_id
|
||||
msgid "Categ id"
|
||||
msgstr "Catégorie"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.menu,name:golem_activity.product_category_menu
|
||||
msgid "Categories"
|
||||
@ -171,6 +276,11 @@ msgstr "Catégories"
|
||||
msgid "Check if the product is eligible for membership."
|
||||
msgstr "Cochez si l'article est éligible pour l'adhésion"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:golem.activity.audience,name:golem_activity.golem_activity_audience_children
|
||||
msgid "Childrens"
|
||||
msgstr "Enfants"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_color
|
||||
msgid "Color Index"
|
||||
@ -197,12 +307,14 @@ msgid "Cost of the product, in the default unit of measure of the product."
|
||||
msgstr "Le prix de revient calculé est exprimé dans l'unité de mesure par défaut de l'article."
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_create_date
|
||||
msgid "Created on"
|
||||
@ -213,11 +325,6 @@ msgstr "Créé le"
|
||||
msgid "Currency"
|
||||
msgstr "Devise"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_is_current
|
||||
msgid "Current season?"
|
||||
msgstr "Saison en cours?"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_taxes_id
|
||||
msgid "Customer Taxes"
|
||||
@ -263,12 +370,18 @@ msgstr "Unité de mesure par défaut pour les ordres d'achat. Elle doit apparten
|
||||
msgid "Default season"
|
||||
msgstr "Saison par défaut"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_is_default
|
||||
msgid "Default season?"
|
||||
msgstr "Saison par défaut?"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_display_name
|
||||
msgid "Display Name"
|
||||
@ -285,7 +398,7 @@ msgid "Expense Account"
|
||||
msgstr "Compte de dépenses"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:138
|
||||
#: code:addons/golem_activity/models/golem_activity.py:185
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Friday"
|
||||
@ -301,6 +414,16 @@ msgstr "Activités"
|
||||
msgid "GOLEM Activity"
|
||||
msgstr "Activité"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_golem_activity_audience
|
||||
msgid "GOLEM Activity Audience"
|
||||
msgstr "Public de l'activité"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.actions.act_window,name:golem_activity.golem_activity_audience_action
|
||||
msgid "GOLEM Activity Audiences"
|
||||
msgstr "Publis des activités"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_golem_activity_type
|
||||
msgid "GOLEM Activity Type"
|
||||
@ -311,6 +434,11 @@ msgstr "GOLEM Activity Type"
|
||||
msgid "GOLEM Activity Types"
|
||||
msgstr "GOLEM Activity Types"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "General Information"
|
||||
msgstr "Information Générale"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_packaging_ids
|
||||
msgid "Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."
|
||||
@ -327,6 +455,17 @@ msgid "Group By"
|
||||
msgstr "Grouper par"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_tree
|
||||
msgid "Hour"
|
||||
msgstr "Heure"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_hour_start_display
|
||||
msgid "Hour start"
|
||||
msgstr "Heure de début"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_id
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id
|
||||
msgid "ID"
|
||||
@ -347,6 +486,11 @@ msgstr "Image"
|
||||
msgid "Income Account"
|
||||
msgstr "Compte de revenus"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_categ_id
|
||||
msgid "Internal Category"
|
||||
msgstr "Catégorie interne"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_default_code
|
||||
msgid "Internal Reference"
|
||||
@ -375,22 +519,35 @@ msgstr "Est récurrent ?"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière Modification le"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_membership_season_id
|
||||
msgid "Linked season"
|
||||
msgstr "Saison liée"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_location
|
||||
msgid "Location"
|
||||
msgstr "Lieu"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_packaging_ids
|
||||
msgid "Logistical Units"
|
||||
@ -422,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:134
|
||||
#: code:addons/golem_activity/models/golem_activity.py:181
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Monday"
|
||||
@ -439,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"
|
||||
@ -464,6 +626,11 @@ msgstr "Article"
|
||||
msgid "Product Attributes"
|
||||
msgstr "Caractéristiques d'articles"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_product_category
|
||||
msgid "Product Category"
|
||||
msgstr "Catégorie d'article"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_product_template
|
||||
msgid "Product Template"
|
||||
@ -510,7 +677,7 @@ msgid "Sale Price"
|
||||
msgstr "Prix de vente"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:139
|
||||
#: code:addons/golem_activity/models/golem_activity.py:186
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Saturday"
|
||||
@ -522,9 +689,14 @@ msgid "Season"
|
||||
msgstr "Saison"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_categ_id
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
msgid "Select category for the current activity"
|
||||
msgstr "Sélectionnez la catégorie pour l'activité"
|
||||
msgstr "Select category for the current activity"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_categ_id
|
||||
msgid "Select category for the current product"
|
||||
msgstr "Sélectionnez la catégorie de l'article actuel"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_sequence
|
||||
@ -533,6 +705,7 @@ msgstr "Séquence"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "Session"
|
||||
msgstr "Session"
|
||||
|
||||
@ -557,8 +730,8 @@ msgid "Start date"
|
||||
msgstr "Date de début"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:113
|
||||
#: code:addons/golem_activity/models/golem_activity.py:156
|
||||
#: 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"
|
||||
@ -574,7 +747,7 @@ msgid "Stop time"
|
||||
msgstr "Heure de fin"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:140
|
||||
#: code:addons/golem_activity/models/golem_activity.py:187
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Sunday"
|
||||
@ -603,10 +776,17 @@ msgstr "Ce compte sera utilisé au lieu de celui par défaut pour les factures p
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_property_account_income_id
|
||||
msgid "This account will be used for invoices instead of the default one to value sales for the current product."
|
||||
msgstr "Ce compte sera utilisé au lieu de celui par défaut pour les factures pour comptabiliser les ventes pour le produit en cours."
|
||||
msgstr "Ce compte sera utilisé au lieu de celui par défaut pour les factures pour comptabiliser les ventes pour l'article cours."
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:28
|
||||
#: code:addons/golem_activity/models/golem_activity.py:42
|
||||
#: sql_constraint:golem.activity.audience:0
|
||||
#, python-format
|
||||
msgid "This activity audience name has already been used."
|
||||
msgstr "Un public d'activité porte déjà ce nom."
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:30
|
||||
#: sql_constraint:golem.activity.type:0
|
||||
#, python-format
|
||||
msgid "This activity type name has already been used."
|
||||
@ -618,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:137
|
||||
#: code:addons/golem_activity/models/golem_activity.py:184
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Thursday"
|
||||
@ -635,14 +815,15 @@ msgid "True"
|
||||
msgstr "True"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:135
|
||||
#: 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_3891
|
||||
#: 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"
|
||||
|
||||
@ -651,6 +832,12 @@ msgstr "Type"
|
||||
msgid "Unit of Measure"
|
||||
msgstr "Unité de mesure"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:126
|
||||
#, python-format
|
||||
msgid "Unsupported operator for defautl season search"
|
||||
msgstr "Opérateur de recherche non supporté pour le filtre de la saison par défaut"
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_supplier_taxes_id
|
||||
msgid "Vendor Taxes"
|
||||
@ -672,7 +859,7 @@ msgid "Warranty"
|
||||
msgstr "Garantie"
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:136
|
||||
#: code:addons/golem_activity/models/golem_activity.py:183
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Wednesday"
|
||||
@ -697,3 +884,4 @@ msgstr "Atelier"
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
msgid "describe the activity characteristics..."
|
||||
msgstr "Décrivez ici les caractéristiques de l'activité..."
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-01 16:28+0000\n"
|
||||
"PO-Revision-Date: 2018-02-01 16:28+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"
|
||||
@ -20,6 +20,76 @@ msgstr ""
|
||||
msgid "# Product Variants"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Animator : </strong>>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Category : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Date Start : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Date Stop : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Is Full Season : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Is Recurrent : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Places : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Price : </strong>>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Reference : </strong>>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Season : </strong>>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Start Hour : </strong>>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Stop Hour : </strong>>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Type : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "<strong>Weekday : </strong>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_description_sale
|
||||
msgid "A description of the Product that you want to communicate to your customers. This description will be copied to every Sale Order, Delivery Order and Customer Invoice/Refund"
|
||||
@ -64,24 +134,49 @@ msgstr ""
|
||||
msgid "Activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "Activity :"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.menu,name:golem_activity.golem_activity_audience_menu_list
|
||||
msgid "Activity Audiences"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
msgid "Activity Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.actions.report.xml,name:golem_activity.golem_activity_report_html
|
||||
msgid "Activity Report [HTML]"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.actions.report.xml,name:golem_activity.golem_activity_report_pdf
|
||||
msgid "Activity Report [PDF]"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.menu,name:golem_activity.golem_activity_type_menu_list
|
||||
msgid "Activity Types"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:120
|
||||
#, python-format
|
||||
msgid "Activity end date can not be set after linked season start."
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_name
|
||||
msgid "Activity audience"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:116
|
||||
#: 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:163
|
||||
#, python-format
|
||||
msgid "Activity start date can not be set before linked season start."
|
||||
msgstr ""
|
||||
@ -91,6 +186,17 @@ msgstr ""
|
||||
msgid "Activity type"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:golem.activity.audience,name:golem_activity.golem_activity_audience_adults
|
||||
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"
|
||||
@ -101,6 +207,11 @@ msgstr ""
|
||||
msgid "Arts martiaux"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4022
|
||||
msgid "Audience"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_barcode
|
||||
msgid "Barcode"
|
||||
@ -152,11 +263,6 @@ msgstr ""
|
||||
msgid "Can be Sold"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_categ_id
|
||||
msgid "Categ id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.menu,name:golem_activity.product_category_menu
|
||||
msgid "Categories"
|
||||
@ -167,6 +273,11 @@ msgstr ""
|
||||
msgid "Check if the product is eligible for membership."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:golem.activity.audience,name:golem_activity.golem_activity_audience_children
|
||||
msgid "Childrens"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_color
|
||||
msgid "Color Index"
|
||||
@ -193,12 +304,14 @@ msgid "Cost of the product, in the default unit of measure of the product."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_create_date
|
||||
msgid "Created on"
|
||||
@ -209,11 +322,6 @@ msgstr ""
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_is_current
|
||||
msgid "Current season?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_taxes_id
|
||||
msgid "Customer Taxes"
|
||||
@ -259,12 +367,18 @@ msgstr ""
|
||||
msgid "Default season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_is_default
|
||||
msgid "Default season?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_display_name
|
||||
msgid "Display Name"
|
||||
@ -281,7 +395,7 @@ msgid "Expense Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:138
|
||||
#: code:addons/golem_activity/models/golem_activity.py:185
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Friday"
|
||||
@ -297,6 +411,16 @@ msgstr ""
|
||||
msgid "GOLEM Activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_golem_activity_audience
|
||||
msgid "GOLEM Activity Audience"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.actions.act_window,name:golem_activity.golem_activity_audience_action
|
||||
msgid "GOLEM Activity Audiences"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_golem_activity_type
|
||||
msgid "GOLEM Activity Type"
|
||||
@ -307,6 +431,11 @@ msgstr ""
|
||||
msgid "GOLEM Activity Types"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "General Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_packaging_ids
|
||||
msgid "Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."
|
||||
@ -323,6 +452,17 @@ msgid "Group By"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_tree
|
||||
msgid "Hour"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_hour_start_display
|
||||
msgid "Hour start"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_id
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id
|
||||
msgid "ID"
|
||||
@ -343,6 +483,11 @@ msgstr ""
|
||||
msgid "Income Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_categ_id
|
||||
msgid "Internal Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_default_code
|
||||
msgid "Internal Reference"
|
||||
@ -371,22 +516,35 @@ msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_membership_season_id
|
||||
msgid "Linked season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_location
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_packaging_ids
|
||||
msgid "Logistical Units"
|
||||
@ -418,7 +576,7 @@ msgid "Membership Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:134
|
||||
#: code:addons/golem_activity/models/golem_activity.py:181
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Monday"
|
||||
@ -435,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"
|
||||
@ -460,6 +623,11 @@ msgstr ""
|
||||
msgid "Product Attributes"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_product_category
|
||||
msgid "Product Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model,name:golem_activity.model_product_template
|
||||
msgid "Product Template"
|
||||
@ -506,7 +674,7 @@ msgid "Sale Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:139
|
||||
#: code:addons/golem_activity/models/golem_activity.py:186
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Saturday"
|
||||
@ -518,10 +686,15 @@ msgid "Season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_categ_id
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
msgid "Select category for the current activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,help:golem_activity.field_golem_activity_categ_id
|
||||
msgid "Select category for the current product"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_sequence
|
||||
msgid "Sequence"
|
||||
@ -529,6 +702,7 @@ msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_form
|
||||
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
|
||||
msgid "Session"
|
||||
msgstr ""
|
||||
|
||||
@ -553,8 +727,8 @@ msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:113
|
||||
#: code:addons/golem_activity/models/golem_activity.py:156
|
||||
#: 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 ""
|
||||
@ -570,7 +744,7 @@ msgid "Stop time"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:140
|
||||
#: code:addons/golem_activity/models/golem_activity.py:187
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Sunday"
|
||||
@ -602,7 +776,14 @@ msgid "This account will be used for invoices instead of the default one to valu
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:28
|
||||
#: code:addons/golem_activity/models/golem_activity.py:42
|
||||
#: sql_constraint:golem.activity.audience:0
|
||||
#, python-format
|
||||
msgid "This activity audience name has already been used."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:30
|
||||
#: sql_constraint:golem.activity.type:0
|
||||
#, python-format
|
||||
msgid "This activity type name has already been used."
|
||||
@ -614,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:137
|
||||
#: code:addons/golem_activity/models/golem_activity.py:184
|
||||
#: selection:golem.activity,weekday:0
|
||||
#, python-format
|
||||
msgid "Thursday"
|
||||
@ -631,14 +812,15 @@ msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:135
|
||||
#: 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_3891
|
||||
#: 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 ""
|
||||
|
||||
@ -647,6 +829,12 @@ msgstr ""
|
||||
msgid "Unit of Measure"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:126
|
||||
#, python-format
|
||||
msgid "Unsupported operator for defautl season search"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_supplier_taxes_id
|
||||
msgid "Vendor Taxes"
|
||||
@ -668,7 +856,7 @@ msgid "Warranty"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity
|
||||
#: code:addons/golem_activity/models/golem_activity.py:136
|
||||
#: 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 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
|
||||
@ -17,7 +17,9 @@
|
||||
|
||||
""" GOLEM activities related models """
|
||||
|
||||
import logging
|
||||
from odoo import models, fields, api, _
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
class GolemActivityType(models.Model):
|
||||
""" GOLEM Activity Type """
|
||||
@ -31,12 +33,24 @@ class GolemActivityType(models.Model):
|
||||
is_recurrent = fields.Boolean('Is recurrent?')
|
||||
|
||||
|
||||
class GolemActivityAudience(models.Model):
|
||||
""" GOLEM Activity Audience """
|
||||
_name = 'golem.activity.audience'
|
||||
_description = 'GOLEM Activity Audience'
|
||||
|
||||
_sql_constraints = [('golem_activity_audience_name_uniq', 'UNIQUE (name)',
|
||||
_('This activity audience name has already been used.'))]
|
||||
|
||||
name = fields.Char('Activity audience', required=True, translate=True)
|
||||
|
||||
|
||||
class GolemActivity(models.Model):
|
||||
""" GOLEM Activity """
|
||||
_name = 'golem.activity'
|
||||
_description = 'GOLEM Activity'
|
||||
_inherit = 'mail.thread'
|
||||
_inherits = {'product.template': 'product_id'}
|
||||
_order = 'default_code, name, id'
|
||||
_rec_name = 'full_name'
|
||||
|
||||
product_id = fields.Many2one('product.template', required=True,
|
||||
@ -49,6 +63,9 @@ class GolemActivity(models.Model):
|
||||
index=True)
|
||||
is_fullseason = fields.Boolean('Is full season?',
|
||||
compute='_compute_is_full_season')
|
||||
location = fields.Char()
|
||||
audience_id = fields.Many2one('golem.activity.audience', string='Audience',
|
||||
index=True, auto_join=True)
|
||||
|
||||
@api.onchange('is_fullseason')
|
||||
def onchange_fullseason(self):
|
||||
@ -78,31 +95,30 @@ class GolemActivity(models.Model):
|
||||
activity.full_name = full_name
|
||||
|
||||
@api.model
|
||||
def _default_season(self):
|
||||
def default_season(self):
|
||||
""" Get default season """
|
||||
domain = [('is_default', '=', True)]
|
||||
return self.env['golem.season'].search(domain)
|
||||
|
||||
season_id = fields.Many2one('golem.season', string='Season', copy=False,
|
||||
required=True, default=_default_season,
|
||||
required=True, default=default_season,
|
||||
index=True, auto_join=True,
|
||||
ondelete='restrict')
|
||||
|
||||
is_current = fields.Boolean('Current season?', store=True, default=False,
|
||||
compute='compute_is_current')
|
||||
is_default = fields.Boolean('Default season?',
|
||||
compute='_compute_is_default', store=True)
|
||||
|
||||
@api.depends('season_id')
|
||||
def compute_is_current(self):
|
||||
""" Checks if activity is active for current season """
|
||||
default_season = self._default_season()
|
||||
def _compute_is_default(self):
|
||||
""" Checks if activity is active for default season """
|
||||
default_season = self.default_season()
|
||||
for activity in self:
|
||||
activity.is_current = (default_season == activity.season_id)
|
||||
activity.is_default = (default_season == activity.season_id)
|
||||
|
||||
animator_id = fields.Many2one('res.partner', string='Animator',
|
||||
index=True, auto_join=True,
|
||||
domain=[('is_company', '=', False)])
|
||||
categ_id = fields.Many2one('product.category',
|
||||
help='Select category for the current activity')
|
||||
type_id = fields.Many2one('golem.activity.type', required=True, index=True,
|
||||
string='Type')
|
||||
auto_join=True, string='Type')
|
||||
is_recurrent = fields.Boolean(related='type_id.is_recurrent')
|
||||
date_start = fields.Date('Start date', copy=False)
|
||||
date_stop = fields.Date('End date', copy=False)
|
||||
@ -151,6 +167,15 @@ class GolemActivity(models.Model):
|
||||
('sun', _('Sunday'))], copy=False)
|
||||
hour_start = fields.Float('Start time', copy=False)
|
||||
hour_stop = fields.Float('Stop time', copy=False)
|
||||
hour_start_display = fields.Char('Hour start',
|
||||
compute='_compute_hour_start_display')
|
||||
|
||||
@api.depends('hour_start')
|
||||
def _compute_hour_start_display(self):
|
||||
""" Computes datetime from day hour start """
|
||||
for activity in self:
|
||||
activity.hour_start_display = (activity.hour_start if
|
||||
activity.hour_start else u'')
|
||||
|
||||
@api.onchange('hour_start')
|
||||
def _onchange_hour_start(self):
|
||||
@ -175,3 +200,19 @@ class ProductTemplate(models.Model):
|
||||
type = fields.Selection(default='service')
|
||||
default_code = fields.Char(copy=True)
|
||||
categ_id = fields.Many2one(copy=True)
|
||||
|
||||
|
||||
class ProductCategory(models.Model):
|
||||
""" Product Category adaptations """
|
||||
_inherit = 'product.category'
|
||||
|
||||
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
|
137
golem_activity/report/golem_activity_report_templates.xml
Normal file
137
golem_activity/report/golem_activity_report_templates.xml
Normal file
@ -0,0 +1,137 @@
|
||||
<?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>
|
||||
|
||||
<report id="golem_activity_report_pdf" model="golem.activity"
|
||||
string="Activity Report [PDF]" report_type="qweb-pdf"
|
||||
name="golem_activity.golem_activity_report_template"
|
||||
file="golem_activity.golem_activity_report_template"
|
||||
attachment="(object.name + '.pdf')" />
|
||||
|
||||
<report id="golem_activity_report_html" model="golem.activity"
|
||||
string="Activity Report [HTML]" report_type="qweb-html"
|
||||
name="golem_activity.golem_activity_report_template"
|
||||
file="golem_activity.golem_activity_report_template"
|
||||
attachment="(object.name + '.html')" />
|
||||
|
||||
<template id="golem_activity_report_template">
|
||||
<t t-call="report.html_container">
|
||||
<t t-set="season" t-value="docs.default_season()" />
|
||||
<t t-foreach="docs" t-as="activity" id="foreach_activity">
|
||||
<t t-call="report.external_layout">
|
||||
<div id='page_report_activity' class="page">
|
||||
<div class="row">
|
||||
<div class="col-xs-12" id="activity_title">
|
||||
<h2 class="golem_report_title">
|
||||
Activity : <span t-field="activity.name" />
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12" style="margin-top: 40px;" >
|
||||
<div class="col-xs-4" id="activity_info_left">
|
||||
<h4 style="font-weight: bold;">General Information</h4>
|
||||
</div>
|
||||
<div class="col-xs-4" id="activity_info_middle">
|
||||
<h4 style="font-weight: bold;">Type</h4>
|
||||
</div>
|
||||
<div class="col-xs-4" id="activity_info_right">
|
||||
<h4 style="font-weight: bold;">Session</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div id="activity_info" class="col-xs-12" >
|
||||
<div class="col-xs-4" id="activity_info_left">
|
||||
<div t-if="activity.season_id">
|
||||
<strong>Season : </strong>>
|
||||
<span t-field="activity.season_id"/>
|
||||
</div>
|
||||
<div t-if="activity.animator_id">
|
||||
<strong>Animator : </strong>>
|
||||
<span t-field="activity.animator_id"/>
|
||||
</div>
|
||||
<div t-if="activity.list_price">
|
||||
<strong>Price : </strong>>
|
||||
<span t-field="activity.list_price"/>
|
||||
</div>
|
||||
<div t-if="activity.default_code">
|
||||
<strong>Reference : </strong>>
|
||||
<span t-field="activity.default_code"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4" id="activity_info_middle">
|
||||
<div t-if="activity.type_id">
|
||||
<strong>Type : </strong><span t-field="activity.type_id"/>
|
||||
</div>
|
||||
<div t-if="activity.categ_id">
|
||||
<strong>Category : </strong><span t-field="activity.categ_id"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4" id="activity_info_right">
|
||||
<div t-if="activity.places">
|
||||
<strong>Places : </strong><span t-field="activity.places"/>
|
||||
</div>
|
||||
<t t-if="activity.is_recurrent">
|
||||
<div>
|
||||
<strong>Is Recurrent : </strong>
|
||||
<span t-field="activity.is_recurrent"/>
|
||||
</div>
|
||||
<t t-if="activity.is_fullseason">
|
||||
<div><strong>Is Full Season : </strong>
|
||||
<span t-field="activity.is_fullseason"/></div>
|
||||
<div t-if="activity.weekday">
|
||||
<strong>Weekday : </strong>
|
||||
<span t-field="activity.weekday"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<div t-if="activity.date_start">
|
||||
<strong>Date Start : </strong><span t-field="activity.date_start"/>
|
||||
</div>
|
||||
<div t-if="activity.date_stop">
|
||||
<strong>Date Stop : </strong><span t-field="activity.date_stop"/>
|
||||
</div>
|
||||
</t>
|
||||
<div t-if="activity.hour_start">
|
||||
<strong>Start Hour : </strong>>
|
||||
<span t-esc="'%02d:%02d' % (int(activity.hour_start), round(activity.hour_start % 1 * 60))" />
|
||||
</div>
|
||||
<div t-if="activity.hour_stop">
|
||||
<strong>Stop Hour : </strong>>
|
||||
<span t-esc="'%02d:%02d' % (int(activity.hour_stop), round(activity.hour_stop % 1 * 60))" />
|
||||
</div>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<div t-if="activity.date_start">
|
||||
<strong>Date Start : </strong>
|
||||
<span t-field="activity.date_start"/>
|
||||
</div>
|
||||
<div t-if="activity.date_stop">
|
||||
<strong>Date Stop : </strong>
|
||||
<span t-field="activity.date_stop"/>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
</odoo>
|
@ -1,13 +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,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2016-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
|
||||
@ -40,7 +40,7 @@ class GolemActivityTestCase(TransactionCase):
|
||||
self.assertEqual(a1.name, 'a1')
|
||||
self.assertEqual(a1.date_start, self.season_current.date_start)
|
||||
self.assertEqual(a1.date_end, self.season_current.date_end)
|
||||
self.assertTrue(a1.is_current)
|
||||
self.assertTrue(a1.is_default)
|
||||
adata.update({'name': 'a2', 'date_start': '2010-01-01',
|
||||
'date_end': '2009-12-01'})
|
||||
with self.assertRaises(ValidationError):
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
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
|
||||
@ -38,12 +39,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="season_id" required="True" />
|
||||
<field name="season_id" required="True"
|
||||
options="{'no_create': True}" />
|
||||
<field name="animator_id" />
|
||||
<field name="type_id" required="True" />
|
||||
<field name="type_id" required="True"
|
||||
options="{'no_create': True}" />
|
||||
<field name="audience_id" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="categ_id" required="True" />
|
||||
<field name="categ_id" required="True"
|
||||
help="Select category for the current activity" />
|
||||
<field name="default_code" />
|
||||
<field name="list_price" />
|
||||
</group>
|
||||
@ -68,6 +73,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="date_stop"
|
||||
attrs="{'invisible':[('is_recurrent', '=', True),
|
||||
('is_fullseason', '=', True)]}" />
|
||||
<field name="location" />
|
||||
</group>
|
||||
<group name="places">
|
||||
</group>
|
||||
@ -114,9 +120,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="type_id" />
|
||||
<field name="full_name" />
|
||||
<field name="animator_id" />
|
||||
<field name="weekday" string="Day"
|
||||
attrs="{'invisible': [('is_recurrent', '=', False)]}" />
|
||||
<field name="weekday" string="Day" />
|
||||
<field name="date_start" string="Date" />
|
||||
<field name="hour_start_display" string="Hour" widget="float_time" />
|
||||
<field name="list_price" sum="True" />
|
||||
</tree>
|
||||
</field>
|
||||
@ -131,6 +137,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="golem_activity_audience_tree">
|
||||
<field name="name">GOLEM Activity Audience Tree/List</field>
|
||||
<field name="model">golem.activity.audience</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="top">
|
||||
<field name="name" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Calendars -->
|
||||
<record id="golem_activity_calendar" model="ir.ui.view">
|
||||
@ -156,7 +171,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="categ_id" />
|
||||
<field name="season_id" />
|
||||
<filter name="season_default" string="Default season"
|
||||
domain="[('is_current', '=', True)]" />
|
||||
domain="[('is_default', '=', True)]" />
|
||||
<group string="Group By">
|
||||
<filter name="group_type_id" string="By type"
|
||||
context="{'group_by': 'type_id'}" />
|
||||
@ -174,9 +189,11 @@ 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"
|
||||
context="{'search_default_season_default': True}" />
|
||||
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"
|
||||
res_model="golem.activity.audience" view_mode="tree" />
|
||||
<record id="product_category_action" model="ir.actions.act_window">
|
||||
<field name="name">Activities Categories</field>
|
||||
<field name="res_model">product.category</field>
|
||||
@ -186,21 +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,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>
|
||||
|
@ -20,7 +20,7 @@
|
||||
'name': 'GOLEM activity queues',
|
||||
'summary': 'GOLEM activity queues',
|
||||
'description': ''' GOLEM activity queue management ''',
|
||||
'version': '10.0.1.2.3',
|
||||
'version': '10.0.1.3.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Youssef El Ouahby, Fabien Bourgeois',
|
||||
'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-03-07 18:55+0000\n"
|
||||
"PO-Revision-Date: 2018-03-07 18:55+0000\n"
|
||||
"POT-Creation-Date: 2018-07-20 07:46+0000\n"
|
||||
"PO-Revision-Date: 2018-07-20 17:06+0200\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -52,7 +52,7 @@ msgstr "Êtes-vous sûr de vouloir ajouter une liste d'attente à cette activit
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.ui.view,arch_db:golem_activity_queue.golem_activity_form_inherit_golem_activity_queue
|
||||
msgid "Are you sure you want to remove queue from this activity ? This will delete all elements currently registred in"
|
||||
msgstr "Êtes-vous sûr de vouloir supprimer la liste d'attente pour cette activité ? Cela supprimera tous les membres inscrits dessus."
|
||||
msgstr "Êtes-vous sûr de vouloir supprimer la liste d'attente pour cette activité ? Cela supprimera tous les usagers inscrits dessus."
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.ui.view,arch_db:golem_activity_queue.golem_activity_form_inherit_golem_activity_queue
|
||||
@ -98,16 +98,16 @@ msgstr "Créé par"
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.model.fields,field_description:golem_activity_queue.field_golem_activity_queue_is_current
|
||||
msgid "Current season?"
|
||||
msgstr "Saison en cours?"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.ui.view,arch_db:golem_activity_queue.golem_activity_queue_view_search
|
||||
msgid "Default season"
|
||||
msgstr "Saison par défaut"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.model.fields,field_description:golem_activity_queue.field_golem_activity_queue_is_default
|
||||
msgid "Default season?"
|
||||
msgstr "Saison par défaut?"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.model.fields,field_description:golem_activity_queue.field_golem_activity_automated_queue_activate_wizard_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_queue.field_golem_activity_queue_display_name
|
||||
@ -247,7 +247,7 @@ msgid "Switch to manual registration from queue"
|
||||
msgstr "Passer à une inscription manuelle depuis la liste d'attente"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: code:addons/golem_activity_queue/models/golem_activity_queue.py:52
|
||||
#: code:addons/golem_activity_queue/models/golem_activity_queue.py:51
|
||||
#, python-format
|
||||
msgid "The member your trying to add to the queue is already registered for this activity"
|
||||
msgstr "L'adhérent que vous essayez d'ajouter à la liste d'attente est déjà inscrit à cette activité"
|
||||
@ -256,26 +256,26 @@ msgstr "L'adhérent que vous essayez d'ajouter à la liste d'attente est déjà
|
||||
#: code:addons/golem_activity_queue/models/golem_activity.py:118
|
||||
#, python-format
|
||||
msgid "There is a free place for the activity : {}, once you save it will be filled by the first member from queue"
|
||||
msgstr "Il y a une place disponible sur l'activité {}, une fois sauvegardée un membre de la liste d'attente sera automatiquement inscrit"
|
||||
msgstr "Il y a une place disponible sur l'activité {}, une fois sauvegardée un usager de la liste d'attente sera automatiquement inscrit"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: code:addons/golem_activity_queue/models/golem_activity.py:122
|
||||
#, python-format
|
||||
msgid "There is a free place for the activity : {}, you may fill it manually from the queue"
|
||||
msgstr "Il y a une place disponible sur l'activité {}, vous pouvez inscrire un membre depuis la liste d'attente"
|
||||
msgstr "Il y a une place disponible sur l'activité {}, vous pouvez inscrire un usager depuis la liste d'attente"
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: code:addons/golem_activity_queue/models/golem_member.py:39
|
||||
#, python-format
|
||||
msgid "This activity : {} is already full, please discard changes and register in the queue."
|
||||
msgstr "L'activité {} est complète, veuillez annuler vos modifications et enregistrer le membre dans la liste d'attente."
|
||||
msgstr "L'activité {} est complète, veuillez annuler vos modifications et enregistrer l'usager dans la liste d'attente."
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: code:addons/golem_activity_queue/models/golem_activity_queue.py:30
|
||||
#: sql_constraint:golem.activity.queue:0
|
||||
#, python-format
|
||||
msgid "This member has already been registered for the queue."
|
||||
msgstr "Le membre a déjà été inscrit sur la liste d'attente."
|
||||
msgstr "L'usager a déjà été inscrit sur la liste d'attente."
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: code:addons/golem_activity_queue/models/golem_activity.py:112
|
||||
@ -289,3 +289,4 @@ msgstr "Attention"
|
||||
#: model:ir.model,name:golem_activity_queue.model_golem_activity_automated_queue_activate_wizard
|
||||
msgid "golem.activity.automated.queue.activate.wizard"
|
||||
msgstr "golem.activity.automated.queue.activate.wizard"
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-03-07 18:54+0000\n"
|
||||
"PO-Revision-Date: 2018-03-07 18:54+0000\n"
|
||||
"POT-Creation-Date: 2018-07-20 07:46+0000\n"
|
||||
"PO-Revision-Date: 2018-07-20 07:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -98,13 +98,13 @@ msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.model.fields,field_description:golem_activity_queue.field_golem_activity_queue_is_current
|
||||
msgid "Current season?"
|
||||
#: model:ir.ui.view,arch_db:golem_activity_queue.golem_activity_queue_view_search
|
||||
msgid "Default season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: model:ir.ui.view,arch_db:golem_activity_queue.golem_activity_queue_view_search
|
||||
msgid "Default season"
|
||||
#: model:ir.model.fields,field_description:golem_activity_queue.field_golem_activity_queue_is_default
|
||||
msgid "Default season?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_queue
|
||||
@ -246,7 +246,7 @@ msgid "Switch to manual registration from queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_queue
|
||||
#: code:addons/golem_activity_queue/models/golem_activity_queue.py:52
|
||||
#: code:addons/golem_activity_queue/models/golem_activity_queue.py:51
|
||||
#, python-format
|
||||
msgid "The member your trying to add to the queue is already registered for this activity"
|
||||
msgstr ""
|
||||
|
@ -36,8 +36,7 @@ class GolemActivityQueue(models.Model):
|
||||
string='Activity', ondelete='cascade',
|
||||
index=True)
|
||||
season_id = fields.Many2one(related='activity_id.season_id')
|
||||
is_current = fields.Boolean('Current season?',
|
||||
related='activity_id.is_current', store=True)
|
||||
is_default = fields.Boolean(related='activity_id.is_default')
|
||||
|
||||
places_remain = fields.Integer(related='activity_id.places_remain')
|
||||
sequence = fields.Integer()
|
||||
|
@ -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
|
||||
|
|
@ -47,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="activity_id"/>
|
||||
<field name="season_id" />
|
||||
<filter name="season_default" string="Default season"
|
||||
domain="[('is_current', '=', True)]" />
|
||||
domain="[('is_default', '=', True)]" />
|
||||
<separator />
|
||||
<filter name="activity_full" string="Full Activity"
|
||||
domain="[('places_remain', '=', 0)]" />
|
||||
@ -73,7 +73,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="member_id"/>
|
||||
<field name="activity_id"
|
||||
domain="[('places_remain','<' , 1), ('queue_allowed', '=', True), ('is_current', '=', True)]"
|
||||
domain="[('places_remain','<' , 1), ('queue_allowed', '=', True), ('is_default', '=', True)]"
|
||||
options="{'no_create': True}"/>
|
||||
<field name="season_id" readonly='1'/>
|
||||
<field name="create_date" readonly="1"/>
|
||||
@ -84,8 +84,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<!-- Action -->
|
||||
<act_window id="golem_activity_queue_action" name="Activity queue"
|
||||
res_model="golem.activity.queue" view_mode="tree"
|
||||
context="{'search_default_season_default': True}" />
|
||||
res_model="golem.activity.queue" view_mode="tree" />
|
||||
|
||||
<!-- Menu -->
|
||||
<menuitem id="golem_activity_queue_menu" name="Activity queue"
|
||||
|
@ -35,7 +35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<tree editable="top">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="activity_id"
|
||||
domain="[('places_remain','<' , 1), ('queue_allowed', '=', True), ('is_current', '=', True)]"
|
||||
domain="[('places_remain','<' , 1), ('queue_allowed', '=', True), ('is_default', '=', True)]"
|
||||
options="{'no_create': True}"/>
|
||||
<field name="season_id" readonly="1" />
|
||||
</tree>
|
||||
|
@ -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.1.3',
|
||||
'version': '10.0.1.6.5',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois, Michel Dessenne',
|
||||
'license': 'AGPL-3',
|
||||
@ -29,5 +29,8 @@
|
||||
'views/golem_member_views.xml',
|
||||
'views/golem_activity_views.xml',
|
||||
'report/golem_member_card_templates.xml',
|
||||
'security/ir.model.access.csv']
|
||||
'security/ir.model.access.csv',
|
||||
'report/golem_activity_report_templates.xml',
|
||||
'wizard/golem_activity_registration_analysis_wizard_views.xml',
|
||||
'wizard/golem_member_analysis_views.xml']
|
||||
}
|
||||
|
@ -6,15 +6,39 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-03-17 14:18+0000\n"
|
||||
"PO-Revision-Date: 2018-03-17 14:18+0000\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"
|
||||
"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_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<br/>Mobile :"
|
||||
msgstr "<br/>Mobile :"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-envelope\"/> Email"
|
||||
msgstr "<i class=\"fa fa-envelope\"/> Email"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-phone\"/> Phone"
|
||||
msgstr "<i class=\"fa fa-phone\"/> Téléphone"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-university\"/>City"
|
||||
msgstr "<i class=\"fa fa-university\"/>Ville"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-user\"/> Name"
|
||||
msgstr "<i class=\"fa fa-user\"/>Nom"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
@ -22,8 +46,14 @@ msgstr ""
|
||||
msgid "Activities"
|
||||
msgstr "Activités"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_ids
|
||||
msgid "Activities for default season"
|
||||
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é"
|
||||
|
||||
@ -32,25 +62,60 @@ 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
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_form_inherit_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"
|
||||
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
|
||||
@ -58,34 +123,21 @@ 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"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_ids
|
||||
msgid "Current activities"
|
||||
msgstr "Activités de la saison affichée par défaut"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_is_current
|
||||
msgid "Current season?"
|
||||
msgstr "Saison en cours?"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Date start"
|
||||
msgstr "Début"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Date stop"
|
||||
msgstr "Fin"
|
||||
msgid "Dates"
|
||||
msgstr "Dates"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
@ -98,10 +150,21 @@ 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_is_default
|
||||
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é"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "Enroled members :"
|
||||
msgstr "Usagers :"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_search_inherit_registration
|
||||
msgid "Full"
|
||||
@ -117,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"
|
||||
@ -128,39 +196,49 @@ msgid "GOLEM Member"
|
||||
msgstr "Adhérent"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Hour start"
|
||||
msgstr "Début"
|
||||
#: 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 "Hour stop"
|
||||
msgstr "Fin"
|
||||
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"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "Landline :"
|
||||
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
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
|
||||
msgid "Member"
|
||||
msgstr "Adhérent"
|
||||
#: 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
|
||||
@ -169,17 +247,44 @@ 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
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:38
|
||||
#: 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
|
||||
#, python-format
|
||||
msgid "Number of places cannot be negative."
|
||||
msgstr "Le nombre de places ne peut pas être négatif"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
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"
|
||||
@ -190,6 +295,21 @@ msgstr "Places"
|
||||
msgid "Places used"
|
||||
msgstr "Places prises"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_searches_inherit_golem_activity_registration
|
||||
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"
|
||||
@ -206,12 +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
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:69
|
||||
#: 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:71
|
||||
#, python-format
|
||||
msgid "Sorry, there is no more place !"
|
||||
msgstr "Désolé, il n'y a plus de place disponible !"
|
||||
@ -222,20 +353,26 @@ msgid "Subscription"
|
||||
msgstr "Inscription"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:99
|
||||
#: 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:91
|
||||
#: 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."
|
||||
msgstr "L'usager a déjà été inscrit à cette activité."
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_form_inherit_golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
@ -243,3 +380,4 @@ msgstr "Total"
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-03-17 14:18+0000\n"
|
||||
"PO-Revision-Date: 2018-03-17 14:18+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"
|
||||
@ -15,14 +15,45 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<br/>Mobile :"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-envelope\"/> Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-phone\"/> Phone"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-university\"/>City"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "<i class=\"fa fa-user\"/> Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_form_inherit_golem_activity_registration
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_ids
|
||||
msgid "Activities for default season"
|
||||
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 ""
|
||||
|
||||
@ -31,18 +62,48 @@ 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
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_form_inherit_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"
|
||||
msgstr ""
|
||||
|
||||
@ -51,39 +112,31 @@ 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 ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_ids
|
||||
msgid "Current activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_is_current
|
||||
msgid "Current season?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Date start"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Date stop"
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
@ -97,10 +150,21 @@ msgid "Default season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_is_default
|
||||
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 ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "Enroled members :"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_search_inherit_registration
|
||||
msgid "Full"
|
||||
@ -116,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"
|
||||
@ -127,38 +196,48 @@ msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
msgid "Hour start"
|
||||
#: 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 "Hour stop"
|
||||
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 ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_report_template_inherited_golem_activity_registration
|
||||
msgid "Landline :"
|
||||
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
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
|
||||
msgid "Member"
|
||||
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
|
||||
#, python-format
|
||||
msgid "Member Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
@ -168,17 +247,44 @@ 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
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:38
|
||||
#: 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
|
||||
#, python-format
|
||||
msgid "Number of places cannot be negative."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
|
||||
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"
|
||||
@ -189,6 +295,21 @@ msgstr ""
|
||||
msgid "Places used"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_searches_inherit_golem_activity_registration
|
||||
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"
|
||||
@ -205,12 +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
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:69
|
||||
#: 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:71
|
||||
#, python-format
|
||||
msgid "Sorry, there is no more place !"
|
||||
msgstr ""
|
||||
@ -221,20 +353,26 @@ msgid "Subscription"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:99
|
||||
#: 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:91
|
||||
#: 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."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_form_inherit_golem_activity_registration
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# copyright 2017 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.
|
||||
# Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
|
||||
#
|
||||
# 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.
|
||||
# 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.
|
||||
#
|
||||
# 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/>.
|
||||
# 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 """
|
||||
|
||||
@ -24,8 +24,9 @@ class GolemMember(models.Model):
|
||||
_inherit = 'golem.member'
|
||||
|
||||
activity_registration_ids = fields.One2many('golem.activity.registration',
|
||||
'member_id', 'Current activities',
|
||||
domain=[('is_current', '=', True)])
|
||||
'member_id',
|
||||
'Activities for default season',
|
||||
domain=[('is_default', '=', True)])
|
||||
activity_registration_all_ids = fields.One2many('golem.activity.registration',
|
||||
'member_id', 'All activities')
|
||||
|
||||
@ -42,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')
|
||||
@ -74,27 +76,49 @@ 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='Member', required=True,
|
||||
ondelete='cascade', index=True)
|
||||
member_id = fields.Many2one('golem.member', string='Service user',
|
||||
required=True, ondelete='cascade', index=True)
|
||||
activity_id = fields.Many2one('golem.activity', required=True, index=True,
|
||||
string='Activity', ondelete='cascade')
|
||||
activity_price = fields.Float(related='activity_id.list_price')
|
||||
season_id = fields.Many2one(string='Season',
|
||||
related='activity_id.season_id', store=True)
|
||||
is_current = fields.Boolean('Current season?',
|
||||
related='activity_id.is_current', store=True)
|
||||
is_default = fields.Boolean('Default season?',
|
||||
related='activity_id.is_default')
|
||||
|
||||
_sql_constraints = [
|
||||
('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.')
|
||||
|
@ -0,0 +1,72 @@
|
||||
<?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>
|
||||
|
||||
<template id="golem_activity_report_template_inherited_golem_activity_registration"
|
||||
inherit_id="golem_activity.golem_activity_report_template">
|
||||
<xpath expr="//div[@id='page_report_activity']" position="inside">
|
||||
<div class="col-xs-4 text-left" style="margin-top: 50px;" >
|
||||
<h4 style="text-decoration: underline;">
|
||||
Enroled members : <span t-field="activity.places_used" />
|
||||
</h4>
|
||||
</div>
|
||||
<table class="table table-striped" id="members_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-xs-3"><i class="fa fa-user" /> Name</th>
|
||||
<th class="col-xs-3"><i class="fa fa-phone" /> Phone</th>
|
||||
<th class="col-xs-3"><i class="fa fa-envelope" /> Email</th>
|
||||
<th class="col-xs-3"><i class="fa fa-university" />City</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="activity_registration_line"
|
||||
t-foreach="activity.activity_registration_ids" t-as="reg">
|
||||
<td class="col-xs-3">
|
||||
<span t-field="reg.member_id.name" />
|
||||
</td>
|
||||
<td class="col-xs-3">
|
||||
<t t-set="two_phones" t-value="reg.member_id.phone and reg.member_id.mobile" />
|
||||
<t t-if="reg.member_id.phone">
|
||||
<t t-if="two_phones">
|
||||
Landline :
|
||||
</t>
|
||||
<span t-field="reg.member_id.phone" />
|
||||
</t>
|
||||
<t t-if="reg.member_id.mobile">
|
||||
<t t-if="two_phones">
|
||||
<br />Mobile :
|
||||
</t>
|
||||
<span t-field="reg.member_id.mobile" />
|
||||
</t>
|
||||
</td>
|
||||
<td class="col-xs-3">
|
||||
<span t-field="reg.member_id.email" />
|
||||
</td>
|
||||
<td class="col-xs-3">
|
||||
<span t-field="reg.member_id.city" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
@ -22,52 +22,49 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
<template id="golem_member_card_template_inherit_golem_activity_resgitration"
|
||||
inherit_id="golem_member.golem_member_card_template">
|
||||
<xpath expr="//div[@id='page_report_member']/div[1]" postion="after">
|
||||
<xpath expr="//div[@id='page_report_member']" postion="inside">
|
||||
<h3>Activities</h3>
|
||||
<table id="table_activity_ref" class="table table-striped">
|
||||
<p t-if="not member.activity_registration_ids">
|
||||
On default season, there is no activity for this member.
|
||||
</p>
|
||||
<table t-else="" id="table_activity_ref" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Animator</th>
|
||||
<th>Day</th>
|
||||
<th>Hour start</th>
|
||||
<th>Hour stop</th>
|
||||
<th>Date start</th>
|
||||
<th id="activity_inherit_th">Date stop</th>
|
||||
<th class="text-right">Hours</th>
|
||||
<th class="text-right">Dates</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="activity_inherit_price_sum"
|
||||
t-foreach="member.activity_registration_ids" t-as="reg">
|
||||
<td class="col-xs-2">
|
||||
<span t-esc="reg.activity_id.name" />
|
||||
<tr t-foreach="member.activity_registration_ids" t-as="reg">
|
||||
<td>
|
||||
<span t-field="reg.activity_id.name" />
|
||||
</td>
|
||||
<td class="col-xs-2">
|
||||
<span t-esc="reg.activity_id.type_id.name" />
|
||||
<td>
|
||||
<span t-field="reg.activity_id.type_id.name" />
|
||||
</td>
|
||||
<td class="col-xs-2">
|
||||
<td>
|
||||
<span t-field="reg.activity_id.animator_id" />
|
||||
</td>
|
||||
<td class="col-xs-2">
|
||||
<td>
|
||||
<span t-field="reg.activity_id.weekday" />
|
||||
</td>
|
||||
<td class="col-xs-1">
|
||||
<td class="text-right">
|
||||
<t t-esc="'%02d:%02d' % (int(reg.activity_id.hour_start), round(reg.activity_id.hour_start % 1 * 60))" />
|
||||
</td>
|
||||
<td class="col-xs-1">
|
||||
-
|
||||
<t t-esc="'%02d:%02d' % (int(reg.activity_id.hour_stop), round(reg.activity_id.hour_stop % 1 * 60))" />
|
||||
</td>
|
||||
<td class="col-xs-2">
|
||||
<span t-if="reg.activity_id.is_fullseason" t-field="season.date_start" />
|
||||
<span t-else="" t-field="reg.activity_id.date_start" />
|
||||
</td>
|
||||
<td id="activity_inherit_td">
|
||||
<span t-if="reg.activity_id.is_fullseason" t-field="season.date_end" />
|
||||
<span t-else="" t-field="reg.activity_id.date_stop" />
|
||||
<td class="text-right">
|
||||
<span t-if="reg.activity_id.is_fullseason" t-field="season.date_start" />
|
||||
<span t-else="" t-field="reg.activity_id.date_start" />
|
||||
-
|
||||
<span t-if="reg.activity_id.is_fullseason" t-field="season.date_end" />
|
||||
<span t-else="" t-field="reg.activity_id.date_stop" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="activity_inherit_total" />
|
||||
</tbody>
|
||||
</table>
|
||||
</xpath>
|
||||
|
@ -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 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
|
||||
@ -25,11 +25,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header></header>
|
||||
<sheet>
|
||||
<group string="Subscription">
|
||||
<field name="member_id" invisible="1" />
|
||||
<field name="activity_id" />
|
||||
<field name="season_id" />
|
||||
<group>
|
||||
<group name="subscription" string="Subscription">
|
||||
<field name="activity_id" />
|
||||
<field name="season_id" />
|
||||
<field name="member_id" />
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
@ -42,10 +45,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="name">Activity registration list</field>
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree create="true" edit="false" delete="false" editable="top">
|
||||
<field name="season_id" readonly="1" />
|
||||
<field name="member_id" domain="[('is_current', '=', True)]" />
|
||||
<field name="activity_id" domain="[('is_current', '=', True)]" />
|
||||
<tree create="true" edit="true" delete="false" editable="top">
|
||||
<field name="season_id" readonly="1"
|
||||
invisible="not context.get('season_show', 1)" />
|
||||
<field name="member_id" domain="[('is_default', '=', True)]"
|
||||
invisible="not context.get('member_show', 1)" />
|
||||
<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)" readonly="1" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@ -56,11 +64,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="season_id" widget="many2one" />
|
||||
<field name="member_id" widget="many2one" />
|
||||
<field name="activity_id" widget="many2one" />
|
||||
<field name="season_id" />
|
||||
<field name="member_id" />
|
||||
<field name="activity_id" />
|
||||
<filter name="season_default" string="Default season"
|
||||
domain="[('is_current', '=', True)]" />
|
||||
domain="[('is_default', '=', True)]" />
|
||||
<filter name="group_season" string="By season"
|
||||
context="{'group_by': 'season_id'}"/>
|
||||
</search>
|
||||
@ -71,15 +79,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<record id="golem_activity_registration_action" model="ir.actions.act_window">
|
||||
<field name="name">GOLEM Activity Registration List</field>
|
||||
<field name="res_model">golem.activity.registration</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="context">{'search_default_season_default': True}</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- Menu -->
|
||||
<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>
|
||||
|
@ -34,17 +34,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<group>
|
||||
<field name="places_remain" readonly="True" />
|
||||
<field name="activity_registration_ids"
|
||||
context="{'default_activity_id': active_id}">
|
||||
<tree editable="top">
|
||||
<field name="member_id"
|
||||
domain="[('season_ids', '=', season_id)]" />
|
||||
<field name="activity_id" readonly="1" />
|
||||
<field name="season_id" readonly="1" />
|
||||
</tree>
|
||||
</field>
|
||||
context="{'default_activity_id': active_id, 'season_show': 0, 'activity_show': 0}" />
|
||||
</group>
|
||||
</page>
|
||||
</page>
|
||||
<field name="audience_id" position="before">
|
||||
<field name="only_for_subscriber"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@ -57,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<tree position="attributes">
|
||||
<attribute name="colors">red: places_remain == 0;orange: places_remain <= 4;</attribute>
|
||||
</tree>
|
||||
<field name="date_start" position="after">
|
||||
<field name="hour_start_display" position="after">
|
||||
<field name="places" invisible="True" />
|
||||
<field name="places_remain" string="Remain" />
|
||||
</field>
|
||||
@ -73,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>
|
||||
|
@ -25,27 +25,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="model">golem.member</field>
|
||||
<field name="inherit_id" ref="golem_member.golem_member_form" />
|
||||
<field name="arch" type="xml">
|
||||
<page name="other_page" position="before">
|
||||
<page name="membership" position="before">
|
||||
<page name="activities" string="Activities">
|
||||
<field name="id" invisible="1" />
|
||||
<group>
|
||||
<field name="activity_registration_ids"
|
||||
attrs="{'readonly': [('id', '=', False)]}"
|
||||
context="{'default_member_id': active_id}">
|
||||
<tree editable="top">
|
||||
<field name="activity_id"
|
||||
domain="[('is_current', '=', True)]" />
|
||||
<field name="season_id" readonly="1" />
|
||||
<field name="member_id" readonly="1" invisible="1" />
|
||||
<field name="activity_price" string="Base price" sum="Total" />
|
||||
</tree>
|
||||
</field>
|
||||
<field name="activity_registration_all_ids" readonly="1">
|
||||
<tree>
|
||||
<field name="activity_id" />
|
||||
<field name="season_id" />
|
||||
</tree>
|
||||
</field>
|
||||
context="{'default_member_id': active_id, 'member_show': 0}" />
|
||||
<field name="activity_registration_all_ids" readonly="1"
|
||||
context="{'member_show': 0}" />
|
||||
</group>
|
||||
</page>
|
||||
</page>
|
||||
@ -59,8 +47,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<field name="model">golem.member</field>
|
||||
<field name="inherit_id" ref="golem_member.golem_member_search" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="number" position="before">
|
||||
<field name="activity_registration_all_ids" widget="many2one"/>
|
||||
<field name="season_ids" position="after">
|
||||
<field name="activity_registration_all_ids" widget="many2one"
|
||||
string="Practiced activities" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
19
golem_activity_registration/wizard/__init__.py
Normal file
19
golem_activity_registration/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, 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,8 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2018 Michel Dessenne <michel@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
|
||||
@ -16,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_registration
|
||||
from . import models, wizard
|
41
golem_activity_registration_custom_price/__manifest__.py
Normal file
41
golem_activity_registration_custom_price/__manifest__.py
Normal file
@ -0,0 +1,41 @@
|
||||
# -*- 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 Registration Custom Price',
|
||||
'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 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.3.2',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'depends': ['golem_activity_registration_payment',
|
||||
'golem_member_familyquotient'],
|
||||
'data': ['security/ir.model.access.csv',
|
||||
'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_member_analysis_views.xml']
|
||||
}
|
268
golem_activity_registration_custom_price/i18n/fr.po
Normal file
268
golem_activity_registration_custom_price/i18n/fr.po
Normal file
@ -0,0 +1,268 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_custom_price
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_activity_id
|
||||
msgid "Activity id"
|
||||
msgstr "Activité liée"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Are you sure you want to RESET ALL options ?"
|
||||
msgstr "Êtes-vous sûr de vouloir REINITIALISER TOUTES les options tarifaires ?"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Are you sure you want to apply default price to all other options ?"
|
||||
msgstr "Êtes-vous sûr de vouloir appliquer le tarif par défaut aux autres options ?"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_area_id
|
||||
msgid "Area"
|
||||
msgstr "Territoire"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_partner_area_menu
|
||||
msgid "Areas"
|
||||
msgstr "Territoires"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,help:golem_activity_registration_custom_price.field_golem_activity_registration_invoicing_line_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."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_create_date
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_currency_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_currency_id
|
||||
msgid "Currency id"
|
||||
msgstr "Currency id"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:66
|
||||
#, python-format
|
||||
msgid "Current family quotient slice cannot be included into another existing slice."
|
||||
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: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"
|
||||
msgstr "Prix par défaut"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nom affiché"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.actions.act_window,name:golem_activity_registration_custom_price.golem_payment_rule_qfslice_action
|
||||
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_qfslice_menu
|
||||
msgid "Family Quotients"
|
||||
msgstr "Quotients familiaux"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: 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:60
|
||||
#, python-format
|
||||
msgid "Family quotient but random area"
|
||||
msgstr "Quotient familial mais territoire aléatoire"
|
||||
|
||||
#. 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_from
|
||||
msgid "Family quotient from"
|
||||
msgstr "QF à partir de"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:56
|
||||
#, python-format
|
||||
msgid "Family quotient from is in range of an existing slice."
|
||||
msgstr "La borne basse du quotient familial fait partie d'une tranche existante."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_slice_id
|
||||
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"
|
||||
msgstr "QF jusqu'à"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:61
|
||||
#, python-format
|
||||
msgid "Family quotient to is in range of an existing slice."
|
||||
msgstr "La borne haute du quotient familial fait partie d'une tranche existante."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_activity
|
||||
msgid "GOLEM Activity"
|
||||
msgstr "Activité"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_activity_price_line
|
||||
msgid "GOLEM Activity Price Line"
|
||||
msgstr "GOLEM Activity Price Line"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_activity_registration_invoicing_line
|
||||
msgid "GOLEM Activity Registration Invoicing Lines"
|
||||
msgstr "GOLEM Activity Registration Invoicing Lines"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member
|
||||
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.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
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière Modification le"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_name
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Populates other / new options with default price"
|
||||
msgstr "Alimenter les autres ou nouvelles options avec le tarif par défaut"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_price
|
||||
msgid "Price"
|
||||
msgstr "Prix"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_ids
|
||||
msgid "Price lines"
|
||||
msgstr "Lignes tarifaires"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
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"
|
||||
msgstr "Règles tarifaires"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Resets all options with default price"
|
||||
msgstr "Réinitialiser toutes les options tarifaires avec le prix par défaut"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_registration_invoicing_line_activity_price
|
||||
msgid "Sale Price"
|
||||
msgstr "Prix de vente"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_area_sequence
|
||||
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érieure à la borne basse."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_activity_price_line.py:30
|
||||
#: sql_constraint:golem.activity.price.line:0
|
||||
#, python-format
|
||||
msgid "This activity, geo rule, FQ slice rule has already been used."
|
||||
msgstr "Cette activité, ce territoire et cette tranche QF ont déjà été renseignées."
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:31
|
||||
#: sql_constraint:golem.payment.rule.familyquotient.slice:0
|
||||
#, python-format
|
||||
msgid "This name has already been used. It must be unique."
|
||||
msgstr "Ce nom a déjà été utilisé. Il doit être unique."
|
||||
|
@ -0,0 +1,268 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_custom_price
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_activity_id
|
||||
msgid "Activity id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Are you sure you want to RESET ALL options ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Are you sure you want to apply default price to all other options ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_area_id
|
||||
msgid "Area"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_partner_area_menu
|
||||
msgid "Areas"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,help:golem_activity_registration_custom_price.field_golem_activity_registration_invoicing_line_activity_price
|
||||
msgid "Base price to compute the customer price. Sometimes called the catalog price."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_currency_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_currency_id
|
||||
msgid "Currency id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:66
|
||||
#, python-format
|
||||
msgid "Current family quotient slice cannot be included into another existing slice."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.actions.act_window,name:golem_activity_registration_custom_price.golem_payment_rule_qfslice_action
|
||||
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_qfslice_menu
|
||||
msgid "Family Quotients"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: 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:60
|
||||
#, python-format
|
||||
msgid "Family quotient but random area"
|
||||
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_from
|
||||
msgid "Family quotient from"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:56
|
||||
#, python-format
|
||||
msgid "Family quotient from is in range of an existing slice."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_slice_id
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:61
|
||||
#, python-format
|
||||
msgid "Family quotient to is in range of an existing slice."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_activity
|
||||
msgid "GOLEM Activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_activity_price_line
|
||||
msgid "GOLEM Activity Price Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_activity_registration_invoicing_line
|
||||
msgid "GOLEM Activity Registration Invoicing Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member
|
||||
msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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
|
||||
#: 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
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_name
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Populates other / new options with default price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_price
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_ids
|
||||
msgid "Price lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_form_inherit_custom_price
|
||||
msgid "Resets all options with default price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_registration_invoicing_line_activity_price
|
||||
msgid "Sale Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_activity_price_line_area_sequence
|
||||
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
|
||||
msgid "The 'to' family quotient must be higher than the 'from' one."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_activity_price_line.py:30
|
||||
#: sql_constraint:golem.activity.price.line:0
|
||||
#, python-format
|
||||
msgid "This activity, geo rule, FQ slice rule has already been used."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_custom_price
|
||||
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:31
|
||||
#: sql_constraint:golem.payment.rule.familyquotient.slice:0
|
||||
#, python-format
|
||||
msgid "This name has already been used. It must be unique."
|
||||
msgstr ""
|
||||
|
19
golem_activity_registration_custom_price/models/__init__.py
Normal file
19
golem_activity_registration_custom_price/models/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- 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_payment_rule_quotient_slice, golem_activity_price_line,
|
||||
golem_activity, golem_member)
|
@ -0,0 +1,53 @@
|
||||
# -*- 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
|
||||
# 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'
|
||||
|
||||
price_line_ids = fields.One2many('golem.activity.price.line',
|
||||
'activity_id', string='Price lines',
|
||||
copy=True)
|
||||
|
||||
@api.multi
|
||||
def reset_price_combinations(self):
|
||||
""" Resets all combinations with default price """
|
||||
self.ensure_one()
|
||||
activity = self[0]
|
||||
activity.price_line_ids = [(6, False, [])] # Truncate existing
|
||||
activity.fill_price_combinations()
|
||||
|
||||
@api.multi
|
||||
def fill_price_combinations(self):
|
||||
""" Fills all inexistent combinations prices from default one """
|
||||
self.ensure_one()
|
||||
activity = self[0]
|
||||
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([('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:
|
||||
data = {'activity_id': activity.id, 'area_id': area_id.id,
|
||||
'slice_id': slice_id.id, 'price': activity.list_price}
|
||||
self.env['golem.activity.price.line'].create(data)
|
@ -0,0 +1,50 @@
|
||||
# -*- 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/>.
|
||||
|
||||
""" GOLEM Activity adaptations """
|
||||
|
||||
from odoo import models, fields, _
|
||||
|
||||
|
||||
class GolemActivityPriceLine(models.Model):
|
||||
""" GOLEM Activity Price Line """
|
||||
_name = 'golem.activity.price.line'
|
||||
_description = 'GOLEM Activity Price Line'
|
||||
_order = 'activity_id asc, area_id asc, slice_id asc'
|
||||
_sql_constraints = [(
|
||||
'golem_activity_price_line_uniq', 'UNIQUE (activity_id, area_id, slice_id)',
|
||||
_('This activity, geo rule, FQ slice rule has already been used.')
|
||||
)]
|
||||
|
||||
activity_id = fields.Many2one(
|
||||
'golem.activity', required=True, index=True, auto_join=True,
|
||||
ondelete='cascade'
|
||||
)
|
||||
area_id = fields.Many2one(
|
||||
'golem.partner.area', index=True, auto_join=True,
|
||||
string='Area', ondelete='cascade'
|
||||
)
|
||||
area_sequence = fields.Integer(related='area_id.sequence')
|
||||
slice_id = fields.Many2one(
|
||||
'golem.payment.rule.familyquotient.slice', index=True, auto_join=True,
|
||||
string='Family quotient slice', ondelete='cascade'
|
||||
)
|
||||
currency_id = fields.Many2one(
|
||||
'res.currency',
|
||||
default=lambda self: self.env.user.company_id.currency_id.id
|
||||
)
|
||||
price = fields.Monetary(required=True)
|
@ -0,0 +1,65 @@
|
||||
# -*- 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
|
||||
# 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, _
|
||||
|
||||
class GolemMember(models.Model):
|
||||
""" GOLEM Member adaptations """
|
||||
_inherit = 'golem.member'
|
||||
|
||||
def invoice_line_data_get(self, registration):
|
||||
""" Overwrite parent method to inject price according to rules """
|
||||
line_data = super(GolemMember, self).invoice_line_data_get(registration)
|
||||
line_data['pricing_info'] = _(u'Default price')
|
||||
member = self[0]
|
||||
if member.family_quotient: # default price if no QF
|
||||
fq_int = int(member.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: # if not : default_price
|
||||
applicable_areas = []
|
||||
area_ids = self.env['golem.partner.area'].search([])
|
||||
if member.area_id:
|
||||
applicable_areas += area_ids.filtered(
|
||||
lambda r: r == member.area_id.root_id
|
||||
)
|
||||
if not applicable_areas and area_ids:
|
||||
applicable_areas += area_ids[0]
|
||||
random_area = True
|
||||
else:
|
||||
random_area = False
|
||||
if applicable_areas: # else default_price
|
||||
for applicable_area in applicable_areas:
|
||||
domain = [('activity_id', '=', registration.activity_id.id),
|
||||
('area_id', '=', applicable_area.id),
|
||||
('slice_id', '=', rule_slice_id.id)]
|
||||
price_line_obj = self.env['golem.activity.price.line']
|
||||
line_id = price_line_obj.search(domain, limit=1)
|
||||
if line_id: # Found !
|
||||
line_data['price'] = line_id.price
|
||||
pricing_info = (_(u'Family quotient but random area')
|
||||
if random_area else
|
||||
_(u'Family quotient and area'))
|
||||
line_data['pricing_info'] = pricing_info
|
||||
break
|
||||
return line_data
|
@ -0,0 +1,68 @@
|
||||
# -*- 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/>.
|
||||
|
||||
""" GOLEM Payment Rule Family Quotient Slice """
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class GolemPaymentRuleQuotientSlice(models.Model):
|
||||
""" GOLEM Payment Rule Family Quotient Slice """
|
||||
_name = 'golem.payment.rule.familyquotient.slice'
|
||||
_description = 'GOLEM Payment Rule Family Quotient Slice'
|
||||
_order = 'name asc'
|
||||
_sql_constraints = [(
|
||||
'golem_payment_rule_fquoslice_uniq', 'UNIQUE (name)',
|
||||
_('This name has already been used. It must be unique.')
|
||||
)]
|
||||
|
||||
name = fields.Char(required=True)
|
||||
currency_id = fields.Many2one(
|
||||
'res.currency',
|
||||
default=lambda self: self.env.user.company_id.currency_id.id
|
||||
)
|
||||
family_quotient_from = fields.Monetary()
|
||||
family_quotient_to = fields.Monetary()
|
||||
|
||||
@api.constrains('family_quotient_from', 'family_quotient_to')
|
||||
def check_fq(self):
|
||||
""" Check family quotient coherence and conflits """
|
||||
for rqf in self:
|
||||
if rqf.family_quotient_from:
|
||||
if (not rqf.family_quotient_to or
|
||||
rqf.family_quotient_to < rqf.family_quotient_from):
|
||||
verr = _('The \'to\' family quotient must be higher than '
|
||||
'the \'from\' one.')
|
||||
raise ValidationError(verr)
|
||||
rqfs = self.env['golem.payment.rule.familyquotient.slice'].search([])
|
||||
for eachr in rqfs:
|
||||
if (eachr.family_quotient_from < rqf.family_quotient_from <
|
||||
eachr.family_quotient_to):
|
||||
verr = _(u'Family quotient from is in range of an '
|
||||
'existing slice.')
|
||||
raise ValidationError(verr)
|
||||
if (eachr.family_quotient_from < rqf.family_quotient_to <
|
||||
eachr.family_quotient_to):
|
||||
verr = _(u'Family quotient to is in range of an '
|
||||
'existing slice.')
|
||||
raise ValidationError(verr)
|
||||
if (rqf.family_quotient_from < eachr.family_quotient_from <
|
||||
rqf.family_quotient_to):
|
||||
verr = _(u'Current family quotient slice cannot be '
|
||||
'included into another existing slice.')
|
||||
raise ValidationError(verr)
|
@ -0,0 +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,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
|
|
@ -0,0 +1,55 @@
|
||||
<?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_form_inherit_custom_price" model="ir.ui.view">
|
||||
<field name="name">GOLEM Activity Adaptations</field>
|
||||
<field name="model">golem.activity</field>
|
||||
<field name="inherit_id" ref="golem_activity.golem_activity_form" />
|
||||
<field name="arch" type="xml">
|
||||
<group name="properties" position="before">
|
||||
<group name="prices" string="Prices">
|
||||
<button name="fill_price_combinations" type="object" class="oe_link"
|
||||
string="Populates other / new options with default price" colspan="1"
|
||||
confirm="Are you sure you want to apply default price to all other options ?" />
|
||||
<button name="reset_price_combinations" type="object" class="oe_link"
|
||||
string="Resets all options with default price" colspan="1"
|
||||
confirm="Are you sure you want to RESET ALL options ?" />
|
||||
<field name="price_line_ids" nolabel="1" colspan="2"
|
||||
context="{'default_activity_id': active_id}"
|
||||
widget="x2many_2d_matrix"
|
||||
field_y_axis="slice_id" field_x_axis="area_id" field_value="price">
|
||||
<tree default_order="area_sequence asc">
|
||||
<field name="activity_id" invisible="1" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="area_id" />
|
||||
<field name="area_sequence" invisible="1" />
|
||||
<field name="slice_id" />
|
||||
<field name="price" />
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -1,6 +1,5 @@
|
||||
<?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
|
||||
@ -16,23 +15,21 @@ 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 model="ir.ui.view" id="golem_resource_option_selection_form">
|
||||
<field name="name">GOLEM Resource Option Selection Form</field>
|
||||
<field name="model">golem.resource.option.selection</field>
|
||||
<record id="golem_member_form_inherit_custom_price" model="ir.ui.view">
|
||||
<field name="name">GOLEM Member Adaptations</field>
|
||||
<field name="model">golem.member</field>
|
||||
<field name="inherit_id" ref="golem_member.golem_member_form" />
|
||||
<field name="arch" type="xml">
|
||||
<form >
|
||||
<group>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="resource_id" invisible="1" />
|
||||
<field name="reservation_id" invisible="1"/>
|
||||
<field name="option_id"/>
|
||||
</group>
|
||||
</form>
|
||||
<field name="area_id" position="attributes">
|
||||
<attribute name="required">1</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
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
|
||||
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>
|
||||
|
||||
<!-- Tree -->
|
||||
<record model="ir.ui.view" id="golem_payment_rule_qfslice_view_tree">
|
||||
<field name="name">GOLEM Payment Rule QF Slice Tree</field>
|
||||
<field name="model">golem.payment.rule.familyquotient.slice</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="name" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="family_quotient_from" />
|
||||
<field name="family_quotient_to" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search -->
|
||||
<record model="ir.ui.view" id="golem_payment_rule_qfslice_view_search">
|
||||
<field name="name">GOLEM Payment Rule QF Slice Search</field>
|
||||
<field name="model">golem.payment.rule.familyquotient.slice</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Actions -->
|
||||
<act_window id="golem_payment_rule_qfslice_action"
|
||||
name="Family Quotients" view_mode="tree"
|
||||
res_model="golem.payment.rule.familyquotient.slice" />
|
||||
|
||||
<!-- Menus -->
|
||||
<menuitem id="golem_payment_rule_menu" name="Pricing rules"
|
||||
parent="golem_activity.golem_activity_menu_configuration"
|
||||
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" />
|
||||
<menuitem id="golem_partner_area_menu" name="Areas"
|
||||
parent="golem_payment_rule_menu" sequence="20"
|
||||
action="golem_member.golem_partner_area_action" />
|
||||
|
||||
</data>
|
||||
</odoo>
|
19
golem_activity_registration_custom_price/wizard/__init__.py
Normal file
19
golem_activity_registration_custom_price/wizard/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- 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 (golem_activity_registration_invoicing,
|
||||
golem_member_analysis, golem_member_analysis_wizard)
|
@ -0,0 +1,27 @@
|
||||
# -*- 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/>.
|
||||
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
|
||||
from odoo import models, fields
|
||||
|
||||
class GolemActivityRegistrationInvoicingLine(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Line adaptations """
|
||||
_inherit = 'golem.activity.registration.invoicing.line'
|
||||
|
||||
pricing_info = fields.Char()
|
||||
activity_price = fields.Float(related='activity_id.product_id.list_price')
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2017 Fabien Bourgeois <fabien@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
|
||||
@ -15,28 +16,24 @@ 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_form_inherit_registration_state"
|
||||
<record id="golem_activity_registration_invoicing_form_inherit_custom_price"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Activity Registrations States</field>
|
||||
<field name="model">golem.activity</field>
|
||||
<field name="name">GOLEM Activity Registration Invoicing Form adaptations</field>
|
||||
<field name="model">golem.activity.registration.invoicing</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration.golem_activity_form_inherit_registration" />
|
||||
ref="golem_activity_registration_payment.golem_activity_registration_invoicing_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<tree position="replace">
|
||||
<tree editable="top"
|
||||
colors="red: state == 'canceled';darkgrey: state == 'draft';">
|
||||
<field name="state" invisible="1" />
|
||||
<field name="member_id"
|
||||
domain="[('season_ids', '=', season_id)]" />
|
||||
<field name="activity_id" readonly="1" />
|
||||
<field name="season_id" readonly="1" />
|
||||
<field name="invoice_id" readonly="1" />
|
||||
</tree>
|
||||
</tree>
|
||||
<field name="price" position="before">
|
||||
<field name="activity_price" readonly="1" string="Default price" />
|
||||
</field>
|
||||
<field name="price" position="after">
|
||||
<field name="pricing_info" readonly="1" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -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
|
18
golem_activity_registration_payment/__init__.py
Normal file
18
golem_activity_registration_payment/__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 models, wizard
|
36
golem_activity_registration_payment/__manifest__.py
Normal file
36
golem_activity_registration_payment/__manifest__.py
Normal file
@ -0,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# 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
|
||||
# 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 Member Registration Payments',
|
||||
'summary': 'GOLEM Activities Member Registration Payments',
|
||||
'description': 'GOLEM Activities Member Registration Payments',
|
||||
'version': '10.0.0.7.1',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'depends': ['golem_activity_registration_state', 'golem_payment'],
|
||||
'data': ['views/golem_member_views.xml',
|
||||
'views/golem_activity_registration_views.xml',
|
||||
'report/golem_member_card_templates.xml',
|
||||
'wizard/golem_activity_registration_invoicing.xml',
|
||||
'views/golem_activity_views.xml',
|
||||
'views/account_invoice.xml']
|
||||
}
|
399
golem_activity_registration_payment/i18n/fr.po
Normal file
399
golem_activity_registration_payment/i18n/fr.po
Normal file
@ -0,0 +1,399 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,help:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
|
||||
msgid " * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n"
|
||||
" * The 'Pro-forma' status is used when the invoice does not have an invoice number.\n"
|
||||
" * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n"
|
||||
" * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n"
|
||||
" * The 'Cancelled' status is used when user cancel invoice."
|
||||
msgstr "* L'état \"Brouillon\" est utilisé lorsqu'un utilisateur est en train de saisir ou de modifier une nouvelle facture non confirmée.\n"
|
||||
"* L'état \"Pro-forma\" est utilisé lorsque la facture n'a pas de numéro de facture.\n"
|
||||
"* L'état 'Ouvert' est utilisé lorsque l'utilisateur crée une facture, celle-ci a alors un numéro de facture. La facture reste dans l'état \"Ouvert\" tant qu'elle n'est pas payée.\n"
|
||||
"* L'état 'Payé' est affecté automatiquement lorsque la facture est payée. Les écritures correspondantes dans les journaux peuvent ou non être lettrées.\n"
|
||||
"* L'état \"Annulé\" est utilisé lorsque l'utilisateur annule la facture."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "<span style=\"padding-right: 5px;\">Total</span>"
|
||||
msgstr "<span style=\"padding-right: 5px;\">Total</span>"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_ids
|
||||
msgid "Activities"
|
||||
msgstr "Activités"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Activities and Prices"
|
||||
msgstr "Activités et tarifs"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_activity_id
|
||||
msgid "Activity id"
|
||||
msgstr "Activité liée"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_line_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
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"
|
||||
msgstr "Par état de facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "Canceled Invoice"
|
||||
msgstr "Facture Annulée"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Congratulations, activities had been confirmed and invoiced."
|
||||
msgstr "Félicitations, les activités ont été confirmées et facturées."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_date
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_currency_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_currency_id
|
||||
msgid "Currency"
|
||||
msgstr "Devise"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Date"
|
||||
msgstr "Date "
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nom affiché"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Display invoice"
|
||||
msgstr "Afficher la facture"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Display payments"
|
||||
msgstr "Afficher les paiements"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
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"
|
||||
msgstr "Inscription à l'activité"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing_line
|
||||
msgid "GOLEM Activity Registration Invoicing Lines"
|
||||
msgstr "GOLEM Activity Registration Invoicing Lines"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgstr "GOLEM Activity Registration Invoicing Wizard"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_member
|
||||
msgid "GOLEM Member"
|
||||
msgstr "Adhérent"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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:176
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
|
||||
#, python-format
|
||||
msgid "Generated payments"
|
||||
msgstr "Paiements générés"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_member_has_invoicable_registrations
|
||||
msgid "Has invoicable registrations ?"
|
||||
msgstr "A des inscriptions à facturer ?"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,help:golem_activity_registration_payment.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated."
|
||||
msgstr "Si aucune échéance n'est sélectionnée, la facture seule sera créée. Sinon, des paiements en brouillon seront en plus générés."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "If the service user wants to pay with several payment methods, please validate with the main one, go to the payments and change journal on those needed."
|
||||
msgstr "Si l'usager souhaite payer avec différents modes de paiement, merci de valider en sélectionnant le moyen principal, puis affichez les paiements et modifiez ceux impactés."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
|
||||
msgid "If you confirmed registrations not already invoiced, you'll get a wizard to assist you for invoice creation."
|
||||
msgstr "Si vous lancez la facturation des inscriptions en attente, un assistant vous proposera de créer une facture."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_form_inherit_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Invoice"
|
||||
msgstr "Facture"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_id
|
||||
msgid "Invoice Reference"
|
||||
msgstr "Référence de la facture"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_line_id
|
||||
msgid "Invoice line"
|
||||
msgstr "Ligne de facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_state_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Invoice line price"
|
||||
msgstr "Montant facturé"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
|
||||
msgid "Invoice pending registrations"
|
||||
msgstr "Inscriptions en attente de facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_state_tree_inherit_payment
|
||||
msgid "Invoice state"
|
||||
msgstr "État de facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Invoices"
|
||||
msgstr "Factures"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_form_inherit_payment
|
||||
msgid "Invoicing"
|
||||
msgstr "Facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_invoicing_id
|
||||
msgid "Invoicing id"
|
||||
msgstr "Facturation"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière Modification le"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_date
|
||||
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"
|
||||
msgstr "Usager"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Method"
|
||||
msgstr "Moyen"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "On default season, there is no activity linked invoice for this member."
|
||||
msgstr "Sur la saison par défaut, il n'y a pas de facture liée à une activité pour cet usager."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "On default season, there is no activity linked payment for this member."
|
||||
msgstr "Sur la saison par défaut, il n'y a pas de paiement lié à une activité pour cet usager."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "Opened Invoice"
|
||||
msgstr "Facture Ouverte"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "Paid Invoice"
|
||||
msgstr "Facture Payée"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_journal_id
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Payment method"
|
||||
msgstr "Moyen de paiement"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "Payment schedule"
|
||||
msgstr "Échéancier de paiement"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Payments"
|
||||
msgstr "Paiements"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Please confirm activity prices and choose a payment schedule if needed."
|
||||
msgstr "Merci de confirmer les coûts des activités et de choisir, si souhaité, un échéancier de paiement."
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_price
|
||||
msgid "Price"
|
||||
msgstr "Prix"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_registration_id
|
||||
msgid "Registration id"
|
||||
msgstr "Inscription"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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"
|
||||
msgstr "Facturation des inscriptions"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Residual"
|
||||
msgstr "Restant"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_season_id
|
||||
msgid "Season"
|
||||
msgstr "Saison"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "State"
|
||||
msgstr "État"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
|
||||
msgid "Status"
|
||||
msgstr "État"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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: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"
|
||||
msgstr "Total"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Validate"
|
||||
msgstr "Valider"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "final"
|
||||
msgstr "final"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "init"
|
||||
msgstr "init"
|
||||
|
@ -0,0 +1,395 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_activity_registration_payment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,help:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
|
||||
msgid " * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n"
|
||||
" * The 'Pro-forma' status is used when the invoice does not have an invoice number.\n"
|
||||
" * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n"
|
||||
" * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n"
|
||||
" * The 'Cancelled' status is used when user cancel invoice."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "<span style=\"padding-right: 5px;\">Total</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_ids
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Activities and Prices"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_activity_id
|
||||
msgid "Activity id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: code:addons/golem_activity_registration_payment/models/golem_member.py:78
|
||||
#, python-format
|
||||
msgid "All confirmed registrations had already been invoiced."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_line_price
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "Canceled Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Congratulations, activities had been confirmed and invoiced."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_currency_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_currency_id
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Display invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Display payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing_line
|
||||
msgid "GOLEM Activity Registration Invoicing Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model,name:golem_activity_registration_payment.model_golem_member
|
||||
msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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:176
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
|
||||
#, python-format
|
||||
msgid "Generated payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_member_has_invoicable_registrations
|
||||
msgid "Has invoicable registrations ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,help:golem_activity_registration_payment.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "If the service user wants to pay with several payment methods, please validate with the main one, go to the payments and change journal on those needed."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
|
||||
msgid "If you confirmed registrations not already invoiced, you'll get a wizard to assist you for invoice creation."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_form_inherit_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_id
|
||||
msgid "Invoice Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_line_id
|
||||
msgid "Invoice line"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_state_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Invoice line price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_registration_state_member_form_inherit_registration_payment
|
||||
msgid "Invoice pending registrations"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_state_tree_inherit_payment
|
||||
msgid "Invoice state"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_form_inherit_payment
|
||||
msgid "Invoicing"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_invoicing_id
|
||||
msgid "Invoicing id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_write_date
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "On default season, there is no activity linked invoice for this member."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "On default season, there is no activity linked payment for this member."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "Opened Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
|
||||
msgid "Paid Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_journal_id
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Payment method"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "Payment schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Please confirm activity prices and choose a payment schedule if needed."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_price
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_line_registration_id
|
||||
msgid "Registration id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "Residual"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_season_id
|
||||
msgid "Season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_member_card_template_inherit_golem_activity_resgitration_payment
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoice_state
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: 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: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"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "final"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_payment
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "init"
|
||||
msgstr ""
|
||||
|
18
golem_activity_registration_payment/models/__init__.py
Normal file
18
golem_activity_registration_payment/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 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
|
@ -0,0 +1,34 @@
|
||||
# -*- 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/>.
|
||||
|
||||
""" GOLEM Activity Registration adaptations """
|
||||
|
||||
from odoo import models, fields
|
||||
|
||||
class GolemActivityRegistration(models.Model):
|
||||
""" GOLEM Activity Registration adaptations """
|
||||
_inherit = 'golem.activity.registration'
|
||||
|
||||
invoice_line_id = fields.Many2one('account.invoice.line',
|
||||
string='Invoice line',
|
||||
ondelete='set null')
|
||||
currency_id = fields.Many2one(related='invoice_line_id.currency_id')
|
||||
invoice_line_price = fields.Monetary(related='invoice_line_id.price_subtotal')
|
||||
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')
|
79
golem_activity_registration_payment/models/golem_member.py
Normal file
79
golem_activity_registration_payment/models/golem_member.py
Normal file
@ -0,0 +1,79 @@
|
||||
# -*- 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/>.
|
||||
|
||||
""" GOLEM Member adaptations """
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
class GolemMember(models.Model):
|
||||
""" GOLEM Member adaptations """
|
||||
_inherit = 'golem.member'
|
||||
|
||||
has_invoicable_registrations = fields.Boolean(
|
||||
'Has invoicable registrations ?',
|
||||
compute='_compute_has_invoicable_reg')
|
||||
|
||||
@api.depends('activity_registration_ids', 'activity_registration_ids.state')
|
||||
def _compute_has_invoicable_reg(self):
|
||||
""" Check if there are confirmed registrations with no invoice linked """
|
||||
for member in self:
|
||||
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'))
|
||||
)
|
||||
member.has_invoicable_registrations = bool(len(regis))
|
||||
|
||||
def invoice_line_data_get(self, registration):
|
||||
""" Returns dict with invoice line data """
|
||||
return {'registration_id': registration.id,
|
||||
'activity_id': registration.activity_id.id,
|
||||
'price': registration.activity_id.list_price}
|
||||
|
||||
@api.multi
|
||||
def invoice_registrations(self):
|
||||
""" Launch wizard to generate invoices for registrations """
|
||||
self.ensure_one()
|
||||
member = self[0]
|
||||
registrations = member.activity_registration_ids.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'))
|
||||
)
|
||||
if registrations:
|
||||
invoicing = self.env['golem.activity.registration.invoicing'].create({
|
||||
'member_id' : member.id,
|
||||
'season_id': registrations[0].activity_id.season_id.id
|
||||
})
|
||||
line_obj = self.env['golem.activity.registration.invoicing.line']
|
||||
for reg in registrations:
|
||||
line_data = self.invoice_line_data_get(reg)
|
||||
line_data['invoicing_id'] = invoicing.id
|
||||
line_obj.create(line_data)
|
||||
return {'name': _('Registration invoicing'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'golem.activity.registration.invoicing',
|
||||
'view_mode': 'form',
|
||||
'res_id': invoicing.id,
|
||||
'target': 'new'}
|
||||
else:
|
||||
uerr = _('All confirmed registrations had already been invoiced.')
|
||||
raise UserError(uerr)
|
@ -0,0 +1,145 @@
|
||||
<?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>
|
||||
|
||||
<template id="golem_activity_registration_state_member_card_template_inherit_golem_activity_resgitration_payment"
|
||||
inherit_id="golem_activity_registration_state.golem_member_card_template_inherit_golem_activity_resgitration_state">
|
||||
<xpath expr="//table[@id='table_activity_ref']/thead/tr[1]" position="inside">
|
||||
<th class="text-right">Invoice line price</th>
|
||||
</xpath>
|
||||
<xpath expr="//table[@id='table_activity_ref']/tbody/tr[1]" position="inside">
|
||||
<td class="text-right">
|
||||
<span t-field="reg.invoice_line_price"
|
||||
t-field-options="{'widget': 'monetary', 'display_currency': reg.currency_id}"/>
|
||||
</td>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="golem_member_card_template_inherit_golem_activity_resgitration_payment"
|
||||
inherit_id="golem_member.golem_member_card_template">
|
||||
<xpath expr="//table[@id='table_activity_ref']/tbody" position="before">
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="text-right" colspan="8">
|
||||
<strong>
|
||||
<span style="padding-right: 5px;">Total</span>
|
||||
<span t-esc="sum(member.activity_registration_ids.mapped('invoice_line_id.price_subtotal'))"
|
||||
t-esc-options="{'widget': 'monetary', 'display_currency': member.currency_id}" />
|
||||
</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='page_report_member']" position="inside">
|
||||
<!-- <p style="page-break-before:always;"> </p> -->
|
||||
<div id="page_report_invoicing" class="row">
|
||||
<h3>Invoices</h3>
|
||||
<t t-set="invoices" t-value="member.activity_registration_ids.mapped('invoice_line_id.invoice_id')" />
|
||||
<p t-if="not invoices">
|
||||
On default season, there is no activity linked invoice for this member.
|
||||
</p>
|
||||
<table t-else="" id="table_activity_ref" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Invoice</th>
|
||||
<th>Date</th>
|
||||
<th>State</th>
|
||||
<th class="text-right">Amount</th>
|
||||
<th class="text-right">Residual</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="text-right" colspan="5">
|
||||
<strong>
|
||||
<span style="padding-right: 5px;">Total</span>
|
||||
<span t-esc="sum(member.activity_registration_ids.mapped('invoice_line_id.invoice_id.amount_total'))"
|
||||
t-esc-options="{'widget': 'monetary', 'display_currency': member.currency_id}" />
|
||||
</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<tr t-foreach="invoices" t-as="inv">
|
||||
<td>
|
||||
<span t-field="inv.display_name" />
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="inv.date_invoice" />
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="inv.state" />
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="inv.amount_total" />
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="inv.residual" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>Payments</h3>
|
||||
<t t-set="payments" t-value="member.activity_registration_ids.mapped('invoice_line_id.invoice_id.payment_ids')" />
|
||||
<p t-if="not payments">
|
||||
On default season, there is no activity linked payment for this member.
|
||||
</p>
|
||||
<table t-else="" id="table_activity_ref" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Method</th>
|
||||
<th>State</th>
|
||||
<th class="text-right">Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="text-right" colspan="5">
|
||||
<strong>
|
||||
<span style="padding-right: 5px;">Total</span>
|
||||
<span t-esc="sum(payments.mapped('amount'))"
|
||||
t-esc-options="{'widget': 'monetary', 'display_currency': member.currency_id}" />
|
||||
</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<tr t-foreach="invoices.mapped('payment_ids')" t-as="payment">
|
||||
<td>
|
||||
<span t-field="payment.payment_date" />
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="payment.journal_id.name" />
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="payment.state" />
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="payment.amount" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
@ -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>
|
@ -0,0 +1,90 @@
|
||||
<?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_form_inherit_payment"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Activity Registration form adaptations</field>
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration.golem_activity_registration_form" />
|
||||
<field name="arch" type="xml">
|
||||
<group name="subscription" position="after">
|
||||
<group name="invoicing" string="Invoicing">
|
||||
<field name="invoice_line_id" invisible="1" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="invoice_line_price" readonly="1" />
|
||||
<field name="invoice_state" />
|
||||
<field name="invoice_id" string="Invoice" />
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Tree -->
|
||||
<record id="golem_activity_registration_state_tree_inherit_payment" model="ir.ui.view">
|
||||
<field name="name">Activity Registration State Tree adaptations</field>
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<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" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search -->
|
||||
<record id="golem_activity_registration_search_inherit_payment" model="ir.ui.view">
|
||||
<field name="name">Activity Registration State Search adaptations</field>
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration_state.golem_activity_registration_search_inherit_state" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="activity_id" position="after">
|
||||
<field name="invoice_id" string="Invoice" />
|
||||
</field>
|
||||
<filter name="state_canceled" position="after">
|
||||
<separator />
|
||||
<filter name="invoice_state_draft" string="Draft Invoice"
|
||||
domain="[('invoice_state', '=', 'draft')]" />
|
||||
<filter name="invoice_state_open" string="Opened Invoice"
|
||||
domain="[('invoice_state', '=', 'open')]" />
|
||||
<filter name="invoice_state_paid" string="Paid Invoice"
|
||||
domain="[('invoice_state', '=', 'paid')]" />
|
||||
<filter name="invoice_state_cancel" string="Canceled Invoice"
|
||||
domain="[('invoice_state', '=', 'cancel')]" />
|
||||
</filter>
|
||||
<filter name="group_state" position="after">
|
||||
<filter name="group_invoice_state" string="By invoice state"
|
||||
context="{'group_by': 'invoice_state'}"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -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>
|
@ -0,0 +1,42 @@
|
||||
<?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_registration_state_member_form_inherit_registration_payment"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Member Form adaptations</field>
|
||||
<field name="model">golem.member</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration_state.golem_member_form_inherit_registration_state" />
|
||||
<field name="arch" type="xml">
|
||||
<button name="do_validate_registrations" position="after">
|
||||
<field name="has_invoicable_registrations" invisible="1" />
|
||||
<button name="invoice_registrations" type="object"
|
||||
string="Invoice pending registrations"
|
||||
class="oe_highlight"
|
||||
help="If you confirmed registrations not already invoiced, you'll get a wizard to assist you for invoice creation."
|
||||
attrs="{'invisible': [('has_invoicable_registrations', '=', False)]}" />
|
||||
</button>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@ -15,15 +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/>.
|
||||
|
||||
""" 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_invoicing
|
@ -0,0 +1,184 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# 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
|
||||
# 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 """
|
||||
|
||||
import logging
|
||||
from math import ceil
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
class GolemActivityRegistrationInvoicingLine(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Lines """
|
||||
_name = 'golem.activity.registration.invoicing.line'
|
||||
_description = 'GOLEM Activity Registration Invoicing Lines'
|
||||
|
||||
invoicing_id = fields.Many2one('golem.activity.registration.invoicing',
|
||||
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')
|
||||
|
||||
|
||||
class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
_name = 'golem.activity.registration.invoicing'
|
||||
_description = 'GOLEM Activity Registration Invoicing Wizard'
|
||||
|
||||
state = fields.Selection([('init', 'init'), ('final', 'final')],
|
||||
default='init', required=True)
|
||||
season_id = fields.Many2one('golem.season', 'Season', required=True,
|
||||
ondelete='cascade')
|
||||
member_id = fields.Many2one('golem.member', 'Member', required=True,
|
||||
ondelete='cascade')
|
||||
line_ids = fields.One2many('golem.activity.registration.invoicing.line',
|
||||
'invoicing_id', string='Activities')
|
||||
schedule_id = fields.Many2one('golem.payment.schedule', 'Payment schedule',
|
||||
domain='[("season_id", "=", season_id)]',
|
||||
ondelete='cascade',
|
||||
help='If no schedule is selected, only the '
|
||||
'invoice will be create. Otherwise, draft '
|
||||
'payments will be generated.')
|
||||
journal_id = fields.Many2one('account.journal', string='Payment method',
|
||||
domain=[('type', 'in', ('bank', 'cash'))],
|
||||
ondelete='cascade')
|
||||
invoice_id = fields.Many2one('account.invoice', string='Generated invoice',
|
||||
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... """
|
||||
invoice_line = self.env['account.invoice.line'].new({
|
||||
'product_id': product.id,
|
||||
'invoice_id': invoice.id
|
||||
})
|
||||
invoice_line._onchange_product_id()
|
||||
line_values = dict(invoice_line._cache)
|
||||
line_values['price_unit'] = price
|
||||
invoice_line = self.env['account.invoice.line'].create(line_values)
|
||||
invoice.compute_taxes()
|
||||
return invoice_line
|
||||
|
||||
@api.multi
|
||||
def _create_invoice(self):
|
||||
""" Create invoice and lines """
|
||||
self.ensure_one()
|
||||
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_variant_id
|
||||
invoice_line = self._create_invoice_line(product, line.price, invoice)
|
||||
line.registration_id.invoice_line_id = invoice_line.id
|
||||
return invoice
|
||||
|
||||
@api.multi
|
||||
def _create_payments(self, invoice):
|
||||
""" Create payment if schedule has been chosen """
|
||||
self.ensure_one()
|
||||
payments = self.env['account.payment']
|
||||
if self.schedule_id and self.schedule_id.occurences > 0:
|
||||
amount = invoice.amount_total
|
||||
amount_per_occurence = ceil(amount / self.schedule_id.occurences)
|
||||
for index, day in enumerate(self.schedule_id.day_ids):
|
||||
payment_amount = (amount_per_occurence if index !=
|
||||
(len(self.schedule_id.day_ids.ids) - 1)
|
||||
else amount)
|
||||
payment = self.env['account.payment'].new({
|
||||
'payment_type': 'inbound',
|
||||
'partner_type': 'customer',
|
||||
'partner_id': self.member_id.partner_id.id,
|
||||
'amount': payment_amount,
|
||||
'payment_date': day.day,
|
||||
'journal_id': self.journal_id.id,
|
||||
})
|
||||
amount -= amount_per_occurence
|
||||
payment._onchange_journal()
|
||||
payment_values = dict(payment._cache)
|
||||
payment = self.env['account.payment'].create(payment_values)
|
||||
payment.invoice_ids = [(4, invoice.id, False)]
|
||||
payments |= payment
|
||||
return payments
|
||||
|
||||
@api.multi
|
||||
def validate(self):
|
||||
""" Validate and create invoice and payments """
|
||||
self.ensure_one()
|
||||
self[0].line_ids.mapped('registration_id').write({'state': 'confirmed'})
|
||||
invoice = self._create_invoice()
|
||||
self.invoice_id = invoice
|
||||
payments = self._create_payments(invoice)
|
||||
self.payment_ids |= payments
|
||||
self.write({'state': 'final'})
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_mode': 'form',
|
||||
'res_model': self._name,
|
||||
'res_id': self[0].id,
|
||||
'target': 'new'
|
||||
}
|
||||
|
||||
@api.multi
|
||||
def go_invoice(self):
|
||||
""" Navigate to generated invoice """
|
||||
self.ensure_one()
|
||||
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',
|
||||
'view_id': form_view_id.id,
|
||||
'res_model': 'account.invoice',
|
||||
'res_id': self[0].invoice_id.id
|
||||
}
|
||||
|
||||
@api.multi
|
||||
def go_payments(self):
|
||||
""" Navigate to generated payments """
|
||||
self.ensure_one()
|
||||
if not self.payment_ids:
|
||||
uerr = _('There is no generated payments.')
|
||||
raise UserError(uerr)
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': _('Generated payments'),
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.payment',
|
||||
'domain': [('id', 'in', self.payment_ids.ids)]
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="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/>.
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Form -->
|
||||
<record id="golem_activity_registration_invoicing_view_form" model="ir.ui.view">
|
||||
<field name="name">GOLEM Activity Registration Invoicing Form</field>
|
||||
<field name="model">golem.activity.registration.invoicing</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Registration invoicing">
|
||||
<field name="state" invisible="1" />
|
||||
<p states="init" class="oe_grey">
|
||||
Please confirm activity prices and choose a payment schedule if needed.
|
||||
</p>
|
||||
<group states="init">
|
||||
<group name="lines" colspan="2">
|
||||
<field name="season_id" readonly="1" />
|
||||
<field name="member_id" readonly="1" />
|
||||
<field name="line_ids" string="Activities and Prices">
|
||||
<tree delete="false" create="false" edit="true" editable="bottom">
|
||||
<field name="activity_id" readonly="1" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="price" sum="Total" />
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
<group name="payment" colspan="2">
|
||||
<field name="schedule_id" context="{'default_season_id': season_id}" />
|
||||
<field name="journal_id" string="Payment method"
|
||||
options="{'no_create': True}"
|
||||
attrs="{'invisible': [('schedule_id', '=', False)],
|
||||
'required': [('schedule_id', '!=', False)]}" />
|
||||
</group>
|
||||
</group>
|
||||
<p states="init">If the service user wants to pay with several payment methods, please validate with the main one, go to the payments and change journal on those needed.</p>
|
||||
<p states="final">
|
||||
Congratulations, activities had been confirmed and invoiced.
|
||||
</p>
|
||||
<group states="final">
|
||||
<group>
|
||||
<field name="invoice_id" readonly="1" />
|
||||
<field name="payment_ids" readonly="1" />
|
||||
</group>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="validate" string="Validate" type="object"
|
||||
states="init" class="oe_highlight" />
|
||||
<button name="go_invoice" string="Display invoice" type="object"
|
||||
states="final" class="oe_highlight" />
|
||||
<button name="go_payments" string="Display payments" type="object"
|
||||
states="final" />
|
||||
<button string="Close" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
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
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-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
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2017 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
|
||||
@ -18,7 +18,8 @@
|
||||
{
|
||||
'name': 'GOLEM Activity Session Member Registrations States',
|
||||
'summary': 'GOLEM Activities Session Member Registration states',
|
||||
'version': '10.0.1.0.1',
|
||||
'description': 'GOLEM Activities Session Member Registration states',
|
||||
'version': '10.0.2.3.0',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
@ -26,7 +27,6 @@
|
||||
'installable': True,
|
||||
'depends': ['golem_activity_registration', 'golem_payment'],
|
||||
'data': ['views/golem_activity_registration_views.xml',
|
||||
'views/golem_member_views.xml', 'views/golem_activity_views.xml',
|
||||
'wizard/golem_activity_registration_invoicing.xml']
|
||||
# 'report/golem_member_report.xml']
|
||||
'views/golem_member_views.xml',
|
||||
'report/golem_member_card_templates.xml']
|
||||
}
|
||||
|
@ -6,58 +6,57 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-06-14 23:16+0000\n"
|
||||
"PO-Revision-Date: 2017-06-14 23:16+0000\n"
|
||||
"POT-Creation-Date: 2018-08-02 16:31+0000\n"
|
||||
"PO-Revision-Date: 2018-08-02 18:33+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_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_ids
|
||||
msgid "Activities"
|
||||
msgstr "Activités"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Activities and Prices"
|
||||
msgstr "Activities and Prices"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_activity_id
|
||||
msgid "Activity id"
|
||||
msgstr "Activité"
|
||||
msgstr "Activité liée"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Are you sure you want to remove this subscription ?"
|
||||
msgstr "Êtes-vous sûr de vouloir supprimer cette inscription ?"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "By state"
|
||||
msgstr "Par état"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration,state:0
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "Canceled"
|
||||
msgstr "Annulé"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration,state:0
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "Confirmed"
|
||||
msgstr "Confirmé"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_date
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_display_name
|
||||
@ -66,6 +65,7 @@ msgstr "Nom affiché"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration,state:0
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
@ -79,6 +79,11 @@ msgstr "Activité"
|
||||
msgid "GOLEM Activity Registration"
|
||||
msgstr "Inscription à l'activité"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
|
||||
msgid "GOLEM Activity Registration Invoicing Lines"
|
||||
msgstr "GOLEM Activity Registration Invoicing Lines"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
@ -89,17 +94,21 @@ msgstr "GOLEM Activity Registration Invoicing Wizard"
|
||||
msgid "GOLEM Member"
|
||||
msgstr "Adhérent"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_invoice_id
|
||||
msgid "Generated invoice"
|
||||
msgstr "Facture générée"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_payment_ids
|
||||
msgid "Generated payments"
|
||||
msgstr "Paiements générés"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_member_has_draft_registrations
|
||||
msgid "Has draft registrations ?"
|
||||
msgstr "A des inscriptions non validées ?"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,help:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "If no schedule is selected, only the invoice will be create. Otherwise, draft payments will be generated."
|
||||
@ -107,47 +116,20 @@ msgstr "Si aucun échéancier n'est sélectionné, seule la facture sera créée
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
|
||||
msgid "If you validate draft registration, they will be seen as confirmed. Then, an invoice will be created for the current member."
|
||||
msgstr "Si vous validez les inscriptions, elles seront vues comme confirmées. Ensuite, une facture sera créée pour l'adhérent."
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_id
|
||||
msgid "Invoice Reference"
|
||||
msgstr "Référence de la facture"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_line_id
|
||||
msgid "Invoice line"
|
||||
msgstr "Ligne de facturation"
|
||||
msgid "If you validate draft registrations, they will be seen as confirmed."
|
||||
msgstr "If you validate draft registrations, they will be seen as confirmed."
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_invoicing_id
|
||||
msgid "Invoicing id"
|
||||
msgstr "Invoicing id"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_journal_id
|
||||
msgid "Journal"
|
||||
msgstr "Journal"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière Modification le"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_member_id
|
||||
msgid "Member"
|
||||
@ -158,16 +140,16 @@ msgstr "Adhérent"
|
||||
msgid "Note that you can't register activities if the member is new and not yet saved into the database."
|
||||
msgstr "Notez que vous ne devez d'abord enregistrer la fiche d'un nouvel adhérent avant de pouvoir saisie ses activités."
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_journal_id
|
||||
msgid "Payment method"
|
||||
msgstr "Moyen"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "Payment schedule"
|
||||
msgstr "Échéancier de paiement"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Please confirm activity prices and choose a payment schedule if needed."
|
||||
msgstr "Merci de confirmer les coûts des activités et de choisir, si souhaité, un échéancier de paiement."
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_price
|
||||
msgid "Price"
|
||||
@ -179,11 +161,14 @@ msgid "Registration id"
|
||||
msgstr "Registration id"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:58
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
#, python-format
|
||||
msgid "Registration invoicing"
|
||||
msgstr "Registration invoicing"
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Remove"
|
||||
msgstr "Supprimer"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Reset to draft"
|
||||
msgstr "Remettre en brouillon"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_season_id
|
||||
@ -191,27 +176,31 @@ msgid "Season"
|
||||
msgstr "Saison"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_card_template_inherit_golem_activity_resgitration_state
|
||||
msgid "State"
|
||||
msgstr "État"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Validate"
|
||||
msgstr "Valider"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
|
||||
msgid "Validate all draft registrations"
|
||||
msgstr "Valider toutes les inscriptions"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
|
||||
msgid "golem.activity.registration.invoicing.line"
|
||||
msgstr "golem.activity.registration.invoicing.line"
|
||||
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:79
|
||||
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:92
|
||||
#, python-format
|
||||
msgid "You can not confirm a canceled registration."
|
||||
msgstr "Vous ne pouvez pas confirmer une inscription qui a été annulée."
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "final"
|
||||
msgstr "final"
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "init"
|
||||
msgstr "init"
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-06-14 23:16+0000\n"
|
||||
"PO-Revision-Date: 2017-06-14 23:16+0000\n"
|
||||
"POT-Creation-Date: 2018-08-02 16:31+0000\n"
|
||||
"PO-Revision-Date: 2018-08-02 16:31+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -20,43 +20,43 @@ msgstr ""
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Activities and Prices"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_activity_id
|
||||
msgid "Activity id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Are you sure you want to remove this subscription ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "By state"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration,state:0
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "Canceled"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration,state:0
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_create_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_display_name
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_display_name
|
||||
@ -65,6 +65,7 @@ msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration,state:0
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_search_inherit_state
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
@ -78,6 +79,11 @@ msgstr ""
|
||||
msgid "GOLEM Activity Registration"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
|
||||
msgid "GOLEM Activity Registration Invoicing Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing
|
||||
msgid "GOLEM Activity Registration Invoicing Wizard"
|
||||
@ -89,14 +95,18 @@ msgid "GOLEM Member"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_member_has_draft_registrations
|
||||
msgid "Has draft registrations ?"
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_invoice_id
|
||||
msgid "Generated invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_id
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_id
|
||||
msgid "ID"
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_payment_ids
|
||||
msgid "Generated payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_member_has_draft_registrations
|
||||
msgid "Has draft registrations ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
@ -106,17 +116,7 @@ msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
|
||||
msgid "If you validate draft registration, they will be seen as confirmed. Then, an invoice will be created for the current member."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_id
|
||||
msgid "Invoice Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoice_line_id
|
||||
msgid "Invoice line"
|
||||
msgid "If you validate draft registrations, they will be seen as confirmed."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
@ -124,29 +124,12 @@ msgstr ""
|
||||
msgid "Invoicing id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_journal_id
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing___last_update
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_uid
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_line_write_date
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_member_id
|
||||
msgid "Member"
|
||||
@ -158,13 +141,13 @@ msgid "Note that you can't register activities if the member is new and not yet
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "Payment schedule"
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_journal_id
|
||||
msgid "Payment method"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Please confirm activity prices and choose a payment schedule if needed."
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_schedule_id
|
||||
msgid "Payment schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
@ -178,10 +161,13 @@ msgid "Registration id"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:58
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
#, python-format
|
||||
msgid "Registration invoicing"
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_activity_registration_tree_inherit_state
|
||||
msgid "Reset to draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
@ -190,27 +176,31 @@ msgid "Season"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_invoicing_state
|
||||
#: model:ir.model.fields,field_description:golem_activity_registration_state.field_golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_card_template_inherit_golem_activity_resgitration_state
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.invoicing_form
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.ui.view,arch_db:golem_activity_registration_state.golem_member_form_inherit_registration_state
|
||||
msgid "Validate all draft registrations"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: model:ir.model,name:golem_activity_registration_state.model_golem_activity_registration_invoicing_line
|
||||
msgid "golem.activity.registration.invoicing.line"
|
||||
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:79
|
||||
#: code:addons/golem_activity_registration_state/models/golem_activity_registration.py:92
|
||||
#, python-format
|
||||
msgid "You can not confirm a canceled registration."
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "final"
|
||||
msgstr ""
|
||||
|
||||
#. module: golem_activity_registration_state
|
||||
#: selection:golem.activity.registration.invoicing,state:0
|
||||
msgid "init"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1,23 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# copyright 2017 fabien bourgeois <fabien@yaltik.com>
|
||||
# Copyright 2017-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 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.
|
||||
# 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/>.
|
||||
# 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 State """
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
class GolemMember(models.Model):
|
||||
""" GOLEM Member adaptations """
|
||||
@ -27,62 +28,22 @@ class GolemMember(models.Model):
|
||||
'Has draft registrations ?',
|
||||
compute='_compute_has_draft_reg')
|
||||
|
||||
@api.depends('activity_registration_ids')
|
||||
@api.depends('activity_registration_ids', 'activity_registration_ids.state')
|
||||
def _compute_has_draft_reg(self):
|
||||
""" Check if there are draft states in member activities """
|
||||
for member in self:
|
||||
for reg in member.activity_registration_ids:
|
||||
if reg.state == 'draft':
|
||||
member.has_draft_registrations = True
|
||||
return
|
||||
member.has_draft_registrations = False
|
||||
regis = member.activity_registration_ids
|
||||
regis = regis.filtered(lambda r: r.state == 'draft')
|
||||
member.has_draft_registrations = bool(len(regis))
|
||||
|
||||
@api.multi
|
||||
def do_validate_registrations(self):
|
||||
""" Validate all draft registrations """
|
||||
self.ensure_one()
|
||||
member = self[0]
|
||||
draft_registrations = member.activity_registration_ids.filtered(
|
||||
lambda r: r.state == 'draft')
|
||||
if draft_registrations:
|
||||
invoicing = self.env['golem.activity.registration.invoicing'].create({
|
||||
'member_id' : member.id,
|
||||
'season_id': draft_registrations[0].activity_id.season_id.id
|
||||
})
|
||||
line_obj = self.env['golem.activity.registration.invoicing.line']
|
||||
for reg in draft_registrations:
|
||||
line_obj.create({'invoicing_id': invoicing.id,
|
||||
'registration_id': reg.id,
|
||||
'activity_id': reg.activity_id.id,
|
||||
'price': reg.activity_id.list_price})
|
||||
return {'name': _('Registration invoicing'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'golem.activity.registration.invoicing',
|
||||
'view_mode': 'form',
|
||||
'res_id': invoicing.id,
|
||||
'target': 'new'}
|
||||
|
||||
@api.multi
|
||||
def write(self, values):
|
||||
""" Handle removed activities to be canceled """
|
||||
if 'activity_registration_ids' in values:
|
||||
rids = values['activity_registration_ids']
|
||||
r_keep, r_removed = [], []
|
||||
for rid in rids: # == 2 is removal case
|
||||
if rid[0] == 2:
|
||||
r_removed.append(rid)
|
||||
else:
|
||||
r_keep.append(rid)
|
||||
reg_obj = self.env['golem.activity.registration']
|
||||
for rem in r_removed:
|
||||
reg = reg_obj.browse([rem[1]])
|
||||
# if already canceled, let it be removed, else cancel it
|
||||
if reg.state != 'canceled':
|
||||
reg.state = 'canceled'
|
||||
else:
|
||||
r_keep.append(rem)
|
||||
values['activity_registration_ids'] = r_keep
|
||||
return super(GolemMember, self).write(values)
|
||||
member.activity_registration_ids.filtered(
|
||||
lambda r: r.state == 'draft'
|
||||
).write({'state': 'confirmed'})
|
||||
|
||||
|
||||
class GolemActivity(models.Model):
|
||||
@ -105,10 +66,33 @@ class GolemActivityRegistration(models.Model):
|
||||
state = fields.Selection([('draft', 'Draft'), ('confirmed', 'Confirmed'),
|
||||
('canceled', 'Canceled')], required=True,
|
||||
default='draft')
|
||||
invoice_line_id = fields.Many2one('account.invoice.line',
|
||||
string='Invoice line',
|
||||
ondelete='set null')
|
||||
invoice_id = fields.Many2one(related='invoice_line_id.invoice_id')
|
||||
|
||||
@api.multi
|
||||
def state_draft(self):
|
||||
""" Set registration to state draft """
|
||||
self.write({'state': 'draft'})
|
||||
|
||||
@api.multi
|
||||
def state_confirm(self):
|
||||
""" Set registration to state confirmed """
|
||||
if self.filtered(lambda r: r.state == 'canceled'):
|
||||
uerr = _('You can not confirm a canceled registration.')
|
||||
raise UserError(uerr)
|
||||
self.write({'state': 'confirmed'})
|
||||
|
||||
@api.multi
|
||||
def state_cancel(self):
|
||||
""" Set registration to state canceled """
|
||||
self.write({'state': 'canceled'})
|
||||
|
||||
@api.multi
|
||||
def state_remove(self):
|
||||
""" Remove registrations, only if canceled """
|
||||
if self.filtered(lambda r: r.state != 'canceled'):
|
||||
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):
|
||||
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2018 Michel Dessenne <michel@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>
|
||||
|
||||
<template id="golem_member_card_template_inherit_golem_activity_resgitration_state"
|
||||
inherit_id="golem_member.golem_member_card_template">
|
||||
<xpath expr="//table[@id='table_activity_ref']/thead/tr[1]" position="inside">
|
||||
<th>State</th>
|
||||
</xpath>
|
||||
<xpath expr="//table[@id='table_activity_ref']/tbody/tr[1]" position="inside">
|
||||
<td>
|
||||
<span t-field="reg.state"/>
|
||||
</td>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
@ -1,122 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2018 Michel Dessenne <michel@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>
|
||||
|
||||
<template id="activity" inherit_id="golem_member.report_golem_member_template">
|
||||
<xpath expr="//th[@id='activity_inherit_th']" position="after">
|
||||
<th>State</th>
|
||||
<th>Price</th>
|
||||
</xpath>
|
||||
<xpath expr="//td[@id='activity_inherit_td']" position="after">
|
||||
<td class="col-xs-2">
|
||||
<span t-field="t.state" />
|
||||
</td>
|
||||
<td class="col-xs-2">
|
||||
<span t-field="t.activity_price" t-field-options="{'widget': 'monetary',
|
||||
'display_currency': o.currency_id}"/>
|
||||
</td>
|
||||
</xpath>
|
||||
<xpath expr="//tr[@id='activity_inherit_price_sum']" position="before">
|
||||
<t t-set="price_sum" t-value="0"/>
|
||||
</xpath>
|
||||
<xpath expr="//tr[@id='activity_inherit_price_sum']" position="inside">
|
||||
<t t-set="price_sum" t-value="price_sum + t.activity_price"/>
|
||||
</xpath>
|
||||
<xpath expr="//tr[@id='activity_inherit_total']" position="replace">
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td><td><td><td><td><td><td>
|
||||
<td>
|
||||
<strong>
|
||||
TOTAL
|
||||
</strong>
|
||||
</td>
|
||||
<td>
|
||||
<t t-esc="price_sum"
|
||||
t-esc-options="{'widget': 'monetary',
|
||||
'display_currency': o.currency_id}"/>
|
||||
</td>
|
||||
</td></td></td></td></td></td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//table[@id='table_activity_ref']" position="after">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<strong>Invoices</strong>
|
||||
<tr>
|
||||
<th>Activity</th>
|
||||
<th>Date</th>
|
||||
<th>State</th>
|
||||
<th>Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<tr t-foreach="o.activity_registration_ids" t-as="l">
|
||||
<td class="col-xs-3">
|
||||
<spam t-field="l.invoice_line_id.product_id" />
|
||||
</td>
|
||||
<td class="col-xs-3">
|
||||
<spam t-field="l.invoice_id.date_invoice" />
|
||||
</td>
|
||||
<td class="col-xs-3">
|
||||
<spam t-field="l.invoice_id.state" />
|
||||
</td>
|
||||
<td class="col-xs-3">
|
||||
<spam t-field="l.invoice_line_id.price_subtotal"
|
||||
t-field-options="{'widget': 'monetary',
|
||||
'display_currency': o.currency_id}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-striped" >
|
||||
<thead>
|
||||
<strong>Payments</strong>
|
||||
<tr>
|
||||
<th>Invoice number</th>
|
||||
<th>State</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<tr t-foreach="o.activity_registration_ids" t-as="l">
|
||||
<td class="col-xs-6">
|
||||
<spam t-field="l.invoice_id.number" />
|
||||
</td>
|
||||
<td class="col-xs-6">
|
||||
<p t-foreach="l.invoice_id.payment_ids" t-as = "i" >
|
||||
<t t-if="i.state not in ['draft']">
|
||||
<span t-esc="i.state" />
|
||||
</t>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2016 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2016-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
|
||||
@ -18,6 +18,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Form -->
|
||||
<record id="golem_activity_registration_form_inherit_state"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Activity Registration form adaptations</field>
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration.golem_activity_registration_form" />
|
||||
<field name="arch" type="xml">
|
||||
<header position="inside">
|
||||
<field name="state" widget="statusbar" readonly="1" />
|
||||
</header>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Tree -->
|
||||
<record id="golem_activity_registration_tree_inherit_state"
|
||||
model="ir.ui.view">
|
||||
@ -27,29 +41,49 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
ref="golem_activity_registration.golem_activity_registration_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<tree position="attributes">
|
||||
<attribute name="colors">red: state == 'canceled';darkgrey: state == 'draft';</attribute>
|
||||
<attribute name="colors">darkgrey: state == 'canceled';blue: state == 'confirmed';</attribute>
|
||||
<attribute name="delete">0</attribute>
|
||||
</tree>
|
||||
<tree position="inside">
|
||||
<field name="state" invisible="1" />
|
||||
<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': ['|', ('id', '=', False), ('state', '=', 'draft')]}"
|
||||
invisible="not context.get('action_show', 1)" />
|
||||
<button type="object" name="state_confirm" string="Confirm"
|
||||
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': ['|', ('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': ['|', ('id', '=', False), ('state', '!=', 'canceled')]}"
|
||||
invisible="not context.get('action_show', 1)" />
|
||||
</tree>
|
||||
<field name="activity_id" position="after">
|
||||
<field name="invoice_id" readonly="1" />
|
||||
<field name="invoice_line_id" readonly="1" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search -->
|
||||
<record id="golem_activity_registration_search_inherit_state"
|
||||
model="ir.ui.view">
|
||||
<field name="name">Registration state specific searches</field>
|
||||
<field name="name">Activity Registration search adaptations</field>
|
||||
<field name="model">golem.activity.registration</field>
|
||||
<field name="inherit_id"
|
||||
ref="golem_activity_registration.golem_activity_registration_search" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="activity_id" position="after">
|
||||
<field name="invoice_id" widget="many2one" />
|
||||
</field>
|
||||
<filter name="season_default" position="after">
|
||||
<separator />
|
||||
<filter name="state_draft" string="Draft"
|
||||
domain="[('state', '=', 'draft')]" />
|
||||
<filter name="state_confirmed" string="Confirmed"
|
||||
domain="[('state', '=', 'confirmed')]" />
|
||||
<filter name="state_canceled" string="Canceled"
|
||||
domain="[('state', '=', 'canceled')]" />
|
||||
<filter name="group_state" string="By state"
|
||||
context="{'group_by': 'state'}"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
|
||||
Copyright 2017-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
|
||||
@ -30,23 +30,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
colspan="2">
|
||||
Note that you can't register activities if the member is new and not yet saved into the database.
|
||||
</p>
|
||||
<p colspan="2">
|
||||
<p colspan="2" id="golem_activity_registration_buttons">
|
||||
<field name="has_draft_registrations" invisible="1" />
|
||||
<button name="do_validate_registrations" type="object"
|
||||
string="Validate all draft registrations"
|
||||
class="oe_highlight"
|
||||
help="If you validate draft registration, they will be seen as confirmed. Then, an invoice will be created for the current member."
|
||||
help="If you validate draft registrations, they will be seen as confirmed."
|
||||
attrs="{'invisible': [('has_draft_registrations', '=', False)]}" />
|
||||
</p>
|
||||
</field>
|
||||
<!-- TODO : one by one cancelation -->
|
||||
<!-- TODO : do not allow removal if confirmed -->
|
||||
<tree position="attributes">
|
||||
<attribute name="colors">red: state == 'canceled';darkgrey: state == 'draft';</attribute>
|
||||
</tree>
|
||||
<tree position="inside">
|
||||
<field name="state" invisible="1" />
|
||||
</tree>
|
||||
<field name="activity_registration_all_ids" position="attributes">
|
||||
<attribute name="context">{'member_show': 0, 'action_show': 0}</attribute>
|
||||
</field>
|
||||
</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,4 +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/>.
|
||||
|
||||
from . import golem_activity_registration_invoicing
|
||||
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')]
|
||||
)
|
@ -1,108 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# copyright 2017 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 Registration Invoicing Wizard """
|
||||
|
||||
import logging
|
||||
from odoo import models, fields, api
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
class GolemActivityRegistrationInvoicingLine(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Lines """
|
||||
_name = 'golem.activity.registration.invoicing.line'
|
||||
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)
|
||||
price = fields.Float('Price')
|
||||
|
||||
class GolemActivityRegistrationInvoicing(models.TransientModel):
|
||||
""" GOLEM Activity Registration Invoicing Wizard """
|
||||
_name = 'golem.activity.registration.invoicing'
|
||||
_description = 'GOLEM Activity Registration Invoicing Wizard'
|
||||
|
||||
season_id = fields.Many2one('golem.season', 'Season', required=True)
|
||||
member_id = fields.Many2one('golem.member', 'Member', required=True)
|
||||
line_ids = fields.One2many('golem.activity.registration.invoicing.line',
|
||||
'invoicing_id', string='Activities')
|
||||
schedule_id = fields.Many2one('golem.payment.schedule', 'Payment schedule',
|
||||
domain='[("season_id", "=", season_id)]',
|
||||
help='If no schedule is selected, only the '
|
||||
'invoice will be create. Otherwise, draft '
|
||||
'payments will be generated.')
|
||||
journal_id = fields.Many2one('account.journal', 'Journal',
|
||||
domain=[('type', 'in', ('bank', 'cash'))])
|
||||
|
||||
@api.multi
|
||||
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
|
||||
})
|
||||
for line in self.line_ids:
|
||||
product = line.activity_id.product_id
|
||||
# Handling of invoice lines : needs cache record for onchange, then
|
||||
# real writing...
|
||||
invoice_line = self.env['account.invoice.line'].new({
|
||||
'product_id': product.id,
|
||||
'invoice_id': invoice.id
|
||||
})
|
||||
invoice_line._onchange_product_id()
|
||||
line_values = dict(invoice_line._cache)
|
||||
line_values['price_unit'] = line.price
|
||||
invoice_line = self.env['account.invoice.line'].create(line_values)
|
||||
invoice.compute_taxes()
|
||||
line.registration_id.invoice_line_id = invoice_line.id
|
||||
return invoice
|
||||
|
||||
@api.multi
|
||||
def _create_payments(self, invoice):
|
||||
""" Create payment if schedule has been chosen """
|
||||
self.ensure_one()
|
||||
if self.schedule_id and self.schedule_id.occurences > 0:
|
||||
# TODO: make more intelligent price cut
|
||||
amount = invoice.amount_total
|
||||
amount_per_occurence = amount / self.schedule_id.occurences
|
||||
for day in self.schedule_id.day_ids:
|
||||
payment = self.env['account.payment'].new({
|
||||
'payment_type': 'inbound',
|
||||
'partner_type': 'customer',
|
||||
'partner_id': self.member_id.partner_id.id,
|
||||
'amount': amount_per_occurence,
|
||||
'payment_date': day.day,
|
||||
'journal_id': self.journal_id.id,
|
||||
})
|
||||
payment._onchange_journal()
|
||||
payment_values = dict(payment._cache)
|
||||
payment = self.env['account.payment'].create(payment_values)
|
||||
payment.invoice_ids = [(4, invoice.id, False)]
|
||||
|
||||
@api.multi
|
||||
def validate(self):
|
||||
""" Validate and create invoice and payments """
|
||||
self.ensure_one()
|
||||
draft_registrations = self.member_id.activity_registration_ids.filtered(
|
||||
lambda r: r.state == 'draft')
|
||||
draft_registrations.write({'state': 'confirmed'})
|
||||
invoice = self._create_invoice()
|
||||
self._create_payments(invoice)
|
@ -1,54 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright 2017 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="invoicing_form" model="ir.ui.view">
|
||||
<field name="name">GOLEM Activity Registration Invoicing Form</field>
|
||||
<field name="model">golem.activity.registration.invoicing</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Registration invoicing">
|
||||
<p class="oe_grey">Please confirm activity prices and choose a payment schedule if needed.</p>
|
||||
<group>
|
||||
<field name="season_id" readonly="1" />
|
||||
<field name="member_id" readonly="1" />
|
||||
<field name="line_ids" string="Activities and Prices">
|
||||
<tree delete="false" create="false" edit="true" editable="bottom">
|
||||
<field name="activity_id" readonly="1" />
|
||||
<field name="price" sum="Total" />
|
||||
</tree>
|
||||
</field>
|
||||
<field name="schedule_id" />
|
||||
<field name="journal_id"
|
||||
attrs="{'invisible': [('schedule_id', '=', False)],
|
||||
'required': [('schedule_id', '!=', False)]}" />
|
||||
</group>
|
||||
<footer>
|
||||
<button name="validate" string="Validate" type="object"
|
||||
class="oe_highlight" />
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
18
golem_admin/__init__.py
Normal file
18
golem_admin/__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 models
|
34
golem_admin/__manifest__.py
Normal file
34
golem_admin/__manifest__.py
Normal file
@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# 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 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 Admin module',
|
||||
'summary': 'GOLEM Admin module',
|
||||
'description': '''GOLEM Admin module :
|
||||
- New application on top menu ;
|
||||
- Management of users and groups, companies ;
|
||||
- Good default access / rights to do. ''',
|
||||
'version': '10.0.0.1.4',
|
||||
'category': 'GOLEM',
|
||||
'author': 'Fabien Bourgeois',
|
||||
'license': 'AGPL-3',
|
||||
'application': True,
|
||||
'installable': True,
|
||||
'depends': ['base'],
|
||||
'data': ['security/ir.model.access.csv',
|
||||
'views/golem_admin_views.xml']
|
||||
}
|
37
golem_admin/i18n/fr.po
Normal file
37
golem_admin/i18n/fr.po
Normal file
@ -0,0 +1,37 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * golem_admin
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 10.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-07-20 15:54+0000\n"
|
||||
"PO-Revision-Date: 2018-07-20 15:54+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_admin
|
||||
#: model:ir.ui.menu,name:golem_admin.res_company_menu
|
||||
msgid "Companies"
|
||||
msgstr "Sociétés"
|
||||
|
||||
#. module: golem_admin
|
||||
#: model:ir.ui.menu,name:golem_admin.res_groups_menu
|
||||
msgid "Groups"
|
||||
msgstr "Groupes"
|
||||
|
||||
#. module: golem_admin
|
||||
#: model:ir.ui.menu,name:golem_admin.security_menu
|
||||
msgid "Security"
|
||||
msgstr "Sécurité"
|
||||
|
||||
#. module: golem_admin
|
||||
#: model:ir.ui.menu,name:golem_admin.res_users_menu
|
||||
msgid "Users"
|
||||
msgstr "Utilisateurs"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user