Compare commits

...

412 Commits

Author SHA1 Message Date
b00598eaaa [IMP]GOLEM Member : ensures search and show in number manual too 2022-08-26 15:28:35 +02:00
ab07a57270 [ADD]GOLEM Season : add active boolean 2022-06-14 12:04:09 +02:00
c441499d9d [ADD]GOLEM Family : add member family names and search on it 2021-01-14 15:45:58 +01:00
301f88f537 [IMP]GOLEM Member : allow more operators on search age 2021-01-14 15:14:10 +01:00
f695e36811 [IMP]GOLEM : allow force email sender 2020-06-25 14:56:03 +02:00
0434781cd0 [I18N]GOLEM Base : updated translations 2020-05-28 18:36:36 +02:00
4a27a16c90 [IMP]GOLEM Base : partner manager group visible outside of developer mode 2020-05-28 18:35:19 +02:00
06f04b5f82 Merge branch 'master' into auditor_group 2020-05-28 18:06:36 +02:00
f34787e46b [REF]GOLEM Auditor : refactorings, small ones 2020-05-28 17:57:13 +02:00
5ad4ee5e70 [I18N]GOLEM Event translations 2020-05-28 14:05:47 +02:00
5e7a418848 Merge branch 'master' into auditor_group 2020-05-28 09:53:09 +02:00
71f933fdb3 [REF]GOLEM Event : small enhancements 2020-05-28 09:41:57 +02:00
e0901a879e [FIX]GOLEM Activity should not install event 2020-05-28 09:41:06 +02:00
51b88463bb Merge branch 'master' into golem_event 2020-05-28 09:31:36 +02:00
fab585d247 [IMP]GOLEM Activity : show only default season per default 2020-05-28 09:22:28 +02:00
dfd4b97f84 standard model acces right fixation 2020-05-21 15:55:37 +00:00
2201a3b87f Add menu access rights to auditor groups 2020-05-21 00:56:12 +00:00
adc449fca5 create golem_event and edit upcoming filter 2020-05-20 14:24:49 +00:00
60d9e37d9b remove event code from golem_activity 2020-05-20 13:58:18 +00:00
7147abcc50 give group auditor right to read only on every model 2020-05-20 13:44:19 +00:00
dec23148ae create group_golem_auditor 2020-05-20 13:43:18 +00:00
c95a54bd6c Change upcoming filter to current & upcoming on event search 2020-05-20 00:06:57 +00:00
3ad9263f68 make season default filter active on activity action 2020-05-19 23:23:00 +00:00
73f53fdec3 [I18N]GOLEM Member translation issue fixed 2020-01-16 17:01:51 +01:00
a73eafbc02 [IMP]GOLEM Member : analysis with choice between service users and members 2020-01-16 16:53:23 +01:00
165830363a [FIX]GOLEM Activity Registration Custom Price : model security fix 2019-12-12 04:18:35 +01:00
d0d8d15799 [IMP]GOLEM Member Minor : do not hide minor tab anymoe 2019-12-12 04:17:58 +01:00
17ddecbbfb [ADD]GOLEM Activity Registration Payment : handle openings
* Open invoices, including those linked to minors ;
* Open payments, including those linked to minors.
2019-07-30 11:53:01 +02:00
3c4ba1beae [FIX]GOLEM Activity Registration : correct invoice view 2019-07-30 08:53:17 +02:00
9f36b0a365 [FIX]GOLEM Registration Payment : bad domains
Were made from onchange and not using is_default anymore.
2019-07-29 18:19:21 +02:00
481ca0994d [IMP]GOLEM : store is_default for members and activities 2019-07-29 18:17:25 +02:00
cd2afd3b22 [FIX]GOLEM Activity Registration : do not allow activity price edit
In activity lines, default price should not be editable : it brings
confusion with registration prices.
2019-02-05 10:17:14 +01:00
cbb4c92b5a [FIX]GOLEM Activity Registration : fix on analysis wizard form 2019-01-21 17:34:40 +01:00
e3f7a6c626 [IMP]GOLEM Analysis : pivot axes, by tag and area.. 2019-01-21 17:06:27 +01:00
1561a47a83 [FIX]GOLEM Member / Registration analysis fix on reusing current
Current analysis will add / double results with now truncate.
2019-01-21 17:03:36 +01:00
a533a6b7f8 Merge branch 'master' into analysis 2019-01-21 16:46:37 +01:00
5a4e46f9a5 [ADD]GOLEM Member : service user mailing from tree view 2019-01-21 15:37:44 +01:00
e1ff683494 [IMP]GOLEM Activity Registration Payment : invoice filters
* Last year should not show this year ;
* Translations.
2019-01-21 12:31:37 +01:00
4898a0d93d [REF][IMP]GOLEM analysis : add flexibility
* On get members ;
* On get registrations and use it for state addon.
2019-01-21 12:20:36 +01:00
1c3f10ad0a [IMP]GOLEM analysis wizards : use header, not footer in current target 2019-01-21 12:14:43 +01:00
9705eb0f5a [IMP]GOLEM analysis : use m2o / o2m to avoid full erasal on new analysis 2019-01-21 12:10:22 +01:00
d895203d1a [REF]GOLEM Member : small refactoring on analysis 2019-01-21 11:55:19 +01:00
9bc6ffd6bb [REF][IMP]GOLEM Activity Registration : analysis small enhancements 2019-01-21 11:52:26 +01:00
fed5da9535 [I18N]GOLEM Activity Registration Custom Price updated translations 2019-01-21 11:21:58 +01:00
7254c2f737 [ADD]GOLEM Activity Custom Price : service user analysis
* New option for service user analysis with fquotient slices.
2019-01-21 11:19:58 +01:00
408dc00e1b [REF]GOLEM Member Family Quotient : small refactorings 2019-01-21 11:18:41 +01:00
6482489aa9 [IMP]GOLEM Member : do not return pivot view per default 2019-01-21 11:16:01 +01:00
48507f10d6 [ADD][REF]GOLEM Member : sevrice user analysis
* Small / medium refactoring on analysis ;
* Usage of current instead of new ;
* Renamings / typos.
2019-01-21 10:49:28 +01:00
f1725b2096 [REF]GOLEM Member : age range small refactorings 2019-01-21 09:42:06 +01:00
953d0bca3d Merge branch 'master' into analysis 2019-01-21 05:51:18 +01:00
5318431970 [IMP]GOLEM Member : better regexp for area street auto completion 2019-01-21 05:46:46 +01:00
0d5238fca8 [Analyses pour la ville] edit __manifest__ 2019-01-16 01:26:46 +01:00
e63feb99c9 [Analyses pour la ville] Add account.invoice filter to acheive financial analysis 2019-01-16 01:26:25 +01:00
00eafb7837 [Analyses pour la ville] small improvment 2019-01-14 14:48:25 +01:00
6e81fd3026 [Analyses pour la ville] take into account only confirmed registration 2019-01-14 14:48:00 +01:00
58717a8e79 [Analyses pour la ville] small improvment 2019-01-14 14:34:44 +01:00
c46d91bc50 [Analyses pour la ville] small improvment 2019-01-14 14:33:21 +01:00
06e0116283 [Analyses pour la ville] Add analysis by tag 2019-01-14 14:32:08 +01:00
89eb287ee1 [Analyses pour la ville] small improvment 2019-01-14 13:13:19 +01:00
cfd6eca541 [Analyses pour la ville] small code cleaning 2019-01-14 13:11:28 +01:00
fecb1df3e2 [Analyses pour la ville] Edit __manifest__ 2019-01-14 13:10:31 +01:00
d6320b7b1a [Analyses pour la ville] edit __init__ 2019-01-14 13:10:16 +01:00
e00dccf50e [Analyses pour la ville] Add member analysis by family_quotient and area 2019-01-14 13:09:50 +01:00
9c3dd1c421 [Analyses pour la ville] Edit __manifest__ 2019-01-14 11:49:45 +01:00
761370b0ca [Analyses pour la ville] edit __init__ 2019-01-14 11:49:32 +01:00
56a48a311d [Analyses pour la ville] Add Analyse by age area and activity 2019-01-14 11:49:11 +01:00
c2e6476a2e [Analyses pour la ville] edit __manifest__ 2019-01-14 03:31:06 +01:00
07c345f67c [Analyses pour la ville] edit __init__ 2019-01-14 03:30:54 +01:00
c06eda9a63 [Analyses pour la ville] Add member analysis assistant 2019-01-14 03:30:33 +01:00
af1bb8966c [Analyses pour la ville] edit wizard/__init__ 2019-01-14 03:30:11 +01:00
703c51c03e [Analyses pour la ville]Add member analysis views pivot 2019-01-14 03:29:52 +01:00
bf088d413e [Analyses pour la ville] Add member analysis wizard 2019-01-14 03:29:23 +01:00
2c237ce6db [Analyses pour la ville] edit models/__init__ 2019-01-14 03:28:31 +01:00
5b338e0704 [Analyses pour la ville] Add age range security 2019-01-14 03:28:03 +01:00
3277a0c476 [Analyses pour la ville] Create Age range views 2019-01-14 03:27:48 +01:00
4a762f83e9 [Analyses pour la ville] Create age range model 2019-01-14 03:27:30 +01:00
fc943bf71e Remove number from street before saving it or extracting it from Territories 2018-11-17 22:24:39 +01:00
3764bb0f9e [I18N]GOLEM Activity Registration Payment Member Minor updated translations 2018-11-01 19:55:19 +01:00
6a7c9beee9 [REF]GOLEM Member Account : better action handling
And ensure customer not supplier invoies
2018-11-01 19:51:57 +01:00
3bdc141dad [FIX]GOLEM Family Membership : ensure customer views, not supplier on invoices 2018-11-01 19:50:56 +01:00
78238bd562 [FIX]GOLEM Activity Registration Payment Member Minor : handle payment
On the name of on payments too
2018-11-01 19:50:02 +01:00
1c156fe667 [IMP]GOLEM Member Minor : small enhancements around invoice partners 2018-11-01 19:48:58 +01:00
596ec855e8 [REF]GOLEM Member / Family Membership for minors
Ensures that, is family is not installed, only guardians are handled.
2018-11-01 19:12:13 +01:00
f7ceab753f [FIX]GOLEM Family Membership : ensure minor is installed 2018-11-01 18:47:47 +01:00
a11675fe35 [ADD][REF]GOLEM Activity Registration Payment : refactor addons and depndencies
* Payment may not have minor as dependency, so we should not use it for minors ;
* Add two glue addons with some functional around guardians for minor.
2018-11-01 18:47:21 +01:00
c8ccf3e4fa [REF]GOLEM Activity Registration Payment 2018-11-01 17:55:38 +01:00
41cd2e863a Merge branch 'master' into minor_invoice_payment 2018-11-01 16:24:50 +01:00
92370db734 [REF][FIX]GOLEM Member : filters and age
* Age : do not use compute, as it evole from time to time ;
* Fix area_id group by ;
* Better places for new filters and searches.
2018-11-01 16:21:39 +01:00
9390ad88ce [REF]GOLEM Activity : add o2m animated activities 2018-11-01 16:18:18 +01:00
e68bd4c5b2 Merge branch 'master' into contacts_enhancements 2018-11-01 15:08:57 +01:00
6bab130eff Add partner_ids to created minor invoice 2018-10-30 10:48:44 +00:00
6038b5c807 Add partner_ids to supplier invoice 2018-10-30 10:46:28 +00:00
7911a9c630 Add family members to membership invoice 2018-10-29 22:53:09 +00:00
95426c0e90 Create activity invoice in the name of an other contact in case of minor member 2018-10-29 22:21:22 +00:00
2ae88b9905 [TYPO]GOLEM Member : typo handling on area 2018-10-26 17:48:10 +02:00
88a28b0091 [REF]GOLEM Family / History : area small enhancements 2018-10-26 17:47:22 +02:00
96b844b6af small refactorings 2018-10-26 13:20:04 +01:00
8fa32e185e Add area_id to family_history 2018-10-26 13:19:49 +01:00
5cc81003da Add area_id filters 2018-10-26 13:11:39 +01:00
51ab81f916 area autocompletion and street sauvegarde 2018-10-26 13:07:18 +01:00
a9888427ec Add area_id to family 2018-10-26 12:27:00 +01:00
5ca2a14e64 small refactorings 2018-10-26 12:06:31 +01:00
34a697d5dc Add age and area_id filter for contacts 2018-10-26 09:01:44 +01:00
a8807a9798 Add filter and group_by activity for animator 2018-10-26 08:56:58 +01:00
2599eb55fb [ADD][REF]GOLEM Member and Family Histories enhancements
* Small refactorings ;
* Add zip code history handling ;
* Add translations and base security.
2018-10-26 08:48:53 +02:00
e3d2c63402 Merge branch 'master' into data_history 2018-10-25 18:30:20 +02:00
3dcdd23d90 [REF][FIX]GOLEM Member Minor : membership invoice on legal guardians
* Small refacorings ;
* Better require for legal guardian when minor ;
* Adaptations to new legal guardians ;
* Fix on last invoice gathering.
2018-10-25 17:55:49 +02:00
d057579378 Merge branch 'master' into minor_invoice 2018-10-25 16:55:47 +02:00
55cf4080fb Merge branch 'master' of ssh://git.yaltik.net:61722/Yaltik/golem 2018-10-24 08:02:25 +02:00
e146cab234 [I18N]GOLEM Member Minor : updated translations 2018-10-24 08:01:54 +02:00
0a035ce504 [REF][FIX]GOLEM Member Minor : new legal guardians
* Remove button to do default (and so browser reload) in favor of parent
constraint ;
* Ensures there is no double (two times same person) with SQL
constraint ;
* Add SQL on migration script to handle old column name inherited from
m2m ;
* Add base security on new model ;
2018-10-24 07:59:15 +02:00
da07c202f3 [REF][FIX]GOLEM Member Minor : new legal guardians
* Remove button to do default (and so browser reload) in favor of parent
constraint ;
* Ensures there is no double (two times same person) with SQL
constraint.
2018-10-24 07:57:15 +02:00
aa9eb113f1 [REM][TMP]GOLEM Family Minor : do not overwrite domain
This addon will be removed
2018-10-24 07:54:52 +02:00
d78bac1c83 Merge branch 'master' into legal_guardians 2018-10-23 18:30:04 +02:00
9fec3aeaef [FIX]GOLEM Family Membership : do not required family fields
Because we extend default invoicing transience model, we will need these
fields for all memberships...
2018-10-23 18:23:07 +02:00
7b9cbb4145 [FIX]GOLEM Activity Registration Payment : unique invoice this season
And not default season only
2018-10-23 18:22:04 +02:00
64a1fac6c8 Merge branch 'master' into unique_invoice_per_season 2018-10-23 17:52:28 +02:00
b9639ebef6 Enable is_animator Boolean in contact 2018-10-23 16:28:03 +01:00
9deb04a196 Add is_animator filter to search view 2018-10-23 16:27:35 +01:00
41c7339221 Edit __manifest__ 2018-10-23 16:25:39 +01:00
353a920ee0 Adding not_disclosed to gender's options 2018-10-23 13:20:53 +01:00
473e3da65d Small refactorings 2018-10-22 21:24:57 +01:00
e5285ecebc Edit init 2018-10-22 20:57:54 +01:00
519d0ef2ea Create family history model 2018-10-22 20:57:41 +01:00
452867d084 Add save family history method 2018-10-22 20:57:17 +01:00
5363078872 edit __manifest__ 2018-10-22 20:56:42 +01:00
b288d83fc0 small refactorings 2018-10-22 20:56:19 +01:00
c966acc556 Make member_history_ids readonly 2018-10-22 20:55:46 +01:00
04f383a951 [REF]GOLEM Member / Custom Price : territories enhancements
Global refactoring : small enhancements from MR code + ACLs + french i18n
2018-10-22 18:10:44 +02:00
9735571967 Small refactorings 2018-10-22 09:55:03 +01:00
66b851692e Create family_history module 2018-10-19 13:15:09 +01:00
a0fbf3ac31 Merge branch 'master' into areas_enhancements 2018-10-19 09:08:10 +02:00
cc479d3908 [REF][IMP]GOLEM Family single-parent small enhancements 2018-10-19 09:04:54 +02:00
0bdf720b02 Merge branch 'master' into family_mono 2018-10-19 08:39:24 +02:00
4c61b8c342 Edit models/manifest 2018-10-18 17:06:06 +01:00
942414eaac Edit __manifest__ 2018-10-18 17:05:45 +01:00
6780f279ce Add required fields 2018-10-18 17:05:31 +01:00
97f5b25534 Add constrains to member to save history 2018-10-18 17:05:15 +01:00
45ef7f483f Add history tab to member form 2018-10-18 17:04:52 +01:00
759a9c957d Merge branch 'master' into Historique_des_donnees_CAF 2018-10-18 12:10:19 +01:00
c891152b2c Add required fields 2018-10-18 11:58:50 +01:00
850aeb51ce create golem_member_history model 2018-10-18 10:07:03 +01:00
35ac9babf0 create models/__init__ 2018-10-18 10:06:40 +01:00
44fca4bd4f Create __manifest__ 2018-10-18 09:35:14 +01:00
1d66f540d0 Create __init__ 2018-10-18 09:34:52 +01:00
201109021d prevent loop in area parenting 2018-10-12 17:17:24 +01:00
1bcb4ff5bb small refactoring 2018-10-12 17:16:44 +01:00
ace87392db compute root area 2018-10-12 16:06:18 +01:00
71f7299aaf Change member.area_id to area_id.root_id 2018-10-12 16:05:01 +01:00
03819f5f3c remove sub area from price line 2018-10-12 02:48:12 +01:00
35c54abc15 Code refactoring and improvement 2018-10-12 01:48:10 +01:00
2eda76a20d small improvement 2018-10-11 23:50:47 +01:00
6d8863565e save street with the area 2018-10-11 23:50:22 +01:00
61411705eb Add area Form 2018-10-11 17:24:47 +01:00
667de88bd8 Edit models/__init__ 2018-10-11 16:45:34 +01:00
0d24d6d69d Create Area.street model 2018-10-11 16:45:16 +01:00
561786430a invoice form improvement 2018-10-09 14:37:23 +01:00
6307329e98 move membership from the legal_guardian to the minor 2018-10-09 14:36:24 +01:00
5ac1331652 code refactoring 2018-10-09 14:35:40 +01:00
afddb3c58d Add partner_ids to account_invoice 2018-10-08 14:37:14 +01:00
841d91bb41 code refactoring 2018-10-08 02:50:58 +01:00
9a36a90c80 Edit __init__ 2018-10-08 02:49:49 +01:00
3793e1dda3 Add membership_invoice_action for minor members 2018-10-08 02:49:28 +01:00
ec2b1c5c49 Add src_member_id and partner_id domain in membership wizard 2018-10-08 02:48:49 +01:00
f82ffa68dd Extend the Buy membership button 2018-10-08 02:48:11 +01:00
17eb52ac28 Show partner_id and src_member_id in the wizard form 2018-10-08 02:47:18 +01:00
d0a5bbe6a0 Edit __manifest__ 2018-10-08 02:46:26 +01:00
a0f56faac4 undo some changes 2018-10-07 23:57:17 +01:00
722756b2a1 undo some changes 2018-10-07 23:45:37 +01:00
9af857a553 undo changes 2018-10-07 23:39:01 +01:00
308ee2e7bd include partner in legal_guardian_ids 2018-10-05 15:31:31 +01:00
eaf48497b2 Show partner in membership assistant 2018-10-05 15:30:58 +01:00
709f73a7d1 check if there is a membership invoice to add activities invoice lines 2018-10-03 22:02:01 +01:00
265f817f90 Migration script 2018-10-01 23:57:22 +01:00
a2ac0fbb79 Edit version 2018-10-01 23:56:53 +01:00
b87a4d57ae Small code refactorings 2018-10-01 23:56:26 +01:00
61eaea0ea6 Small code refactorings 2018-10-01 23:55:02 +01:00
f63264fe62 Forbide the default legal gardian removal is he's not the only 2018-10-01 14:31:28 +01:00
f69c1f4951 edit init 2018-10-01 01:25:28 +01:00
a58caf5b83 Create legal_gardian module, and add do_default and create function 2018-10-01 01:25:19 +01:00
f864d4a5ca Add the the new legal_guardian2_ids field to golem_member 2018-10-01 01:24:13 +01:00
8a5d18c2f0 Add the new legal gardian tree to form 2018-10-01 01:23:31 +01:00
66b5057709 Add single_parent field to model 2018-09-28 02:21:38 +01:00
459972669c Add single_parent field and filter to views 2018-09-28 02:21:16 +01:00
4c9bfe446a Small code refactoring 2018-09-28 02:04:00 +01:00
6105d2d8c0 edit models/__init__ 2018-09-28 02:01:11 +01:00
3bcba79dbb Add default gardian field and button to view 2018-09-28 02:00:53 +01:00
a907c23e06 Add default gardian field and function 2018-09-28 02:00:22 +01:00
5e983043e5 [FIX]GOLEM Admin : allow user creation even with auth_signup addon installed 2018-09-26 13:57:29 +02:00
429302448f [FIX]GOLEM Activity Registration : do not required boolean 2018-09-26 12:14:03 +02:00
6cb4d02808 [I18N]GOLEM Activity Registration Payment updated translations 2018-09-26 11:58:36 +02:00
18957c4568 [IMP]GOLEM Activity Registration State : small enhancements
* Reload client to reflect changes after unlink registration ;
* Do no show buttons until registration has been saved.
2018-09-26 11:44:24 +02:00
661aabcfe8 [FIX]GOLEM Activity Registration Payment : fix cascade on wizard invoicing 2018-09-26 11:42:35 +02:00
223bc581fd [REF][IMP]GOLEM Activity Registration Payment free activities 2018-09-26 11:41:38 +02:00
08927bba53 Merge branch 'master' into activity_free 2018-09-26 10:37:06 +02:00
87e7bccb57 [ADD]GOLEM Activity Registration : dynamic domain for only subscribers
* Filter members according to activity ;
* Filter activities according to member.
2018-09-26 10:33:17 +02:00
4d889a3eba Merge branch 'master' into activity_only_subscribers 2018-09-26 09:45:45 +02:00
ba375e62dd [ADD]GOLEM PCS : i18n translations 2018-09-24 16:20:31 +02:00
0f07bb09eb [ADD]GOLEM PCS : base security access 2018-09-24 16:20:31 +02:00
0f92e44b5c [IMP]GOLEM PCS : no_open on PCS forms 2018-09-24 16:20:31 +02:00
d00462aa41 [ADD]GOLEM PCS : move to partner, add on partner forms 2018-09-24 16:07:47 +02:00
518749b78f [REF]GOLEM PCS : several refactorings 2018-09-24 15:56:40 +02:00
e8c38a09ef remove limite_registration module 2018-09-20 14:00:24 +01:00
206041d3be remove init 2018-09-20 13:59:20 +01:00
59d8b897f6 Add field and logic to models 2018-09-20 13:49:01 +01:00
425ddd4f02 Add field and filter to activity views 2018-09-20 13:48:26 +01:00
cbfccd5515 Prevent free activity from being invoiced 2018-09-19 16:54:35 +01:00
0c3a62cac8 Edit models/__init__ 2018-09-19 16:53:30 +01:00
85a734f9c2 Add free_activity field and filter to activity views 2018-09-19 16:53:04 +01:00
0924ac6437 Edit __manifest__ 2018-09-19 16:52:28 +01:00
2c9e7f2442 Add free_activity field to activity 2018-09-19 16:51:46 +01:00
20919252d1 Create models __init__ 2018-09-19 13:08:47 +01:00
6dd9652dc1 Edit activity registration model 2018-09-19 13:08:30 +01:00
ab3c97143e Edit activity model 2018-09-19 13:08:07 +01:00
2720d50099 Edit activity views 2018-09-19 13:07:39 +01:00
fdbae8aa3b Create __init__ 2018-09-19 13:07:15 +01:00
c1116fa129 Create __manifest__ 2018-09-19 13:07:00 +01:00
4e33afff0b Create manifest 2018-09-17 13:49:15 +01:00
a4ae56277a Create init 2018-09-17 13:49:02 +01:00
fdf95b6aa5 Create member_views 2018-09-17 13:48:33 +01:00
6949825e01 Create models/init 2018-09-17 13:48:16 +01:00
fb626e4885 Add pcs_id to golem.member 2018-09-17 13:47:57 +01:00
656ffd6aa2 Create golem.pcs 2018-09-17 13:47:37 +01:00
cdefa64770 Create pcs data 2018-09-17 13:47:14 +01:00
6054b3ac87 [IMP]GOLEM Base : allow long user / pass for SMTP 2018-08-27 13:11:54 +02:00
db0b9f3c34 [I18N]GOLEM Activity Registration Payment updated translations 2018-08-27 12:24:31 +02:00
66567045c6 [IMP]GOLEM Activity / Member : do not allow direct season creation 2018-08-27 12:24:00 +02:00
29792a7712 [IMP][I18N]GOLEM Season : linked subscription better with m2m widget 2018-08-27 11:50:10 +02:00
27235e0b3f [IMP]GOLEM Member Area : add on member search 2018-08-27 11:21:52 +02:00
64c1fd4773 [ADD]GOLEM Member UTM module : allow origin for res.partner 2018-08-27 10:40:51 +02:00
8318ac4fcf [FIX]GOLEM Member : bad menu parent 2018-08-27 10:38:40 +02:00
150cb1ac39 [ADD][FIX]GOLEM Member Minor enhancements
* add can leave boolean ;
* do not store is minor / adult and create efficient search function.
2018-08-26 18:17:25 +02:00
063da04cf0 [IMP]GOLEM Member Family Quotient : on partner form too 2018-08-26 18:17:25 +02:00
164be1025e [IMP]GOLEM Member : picture agreement should not be checked per default 2018-08-26 17:42:40 +02:00
9d66afb2e2 [I18N]GOLEM Family Membership translations 2018-08-21 11:15:15 +02:00
09017b13e9 [ADD]GOLEM Family Membership : multiple enhancements
* Ability to choose 1:n members for each subscription ;
* Do not invoice more than 1 person ;
* Keep subscription tracking info on family form ;
* Allow subscription cancel.
2018-08-21 11:10:54 +02:00
d6e3da556a [IMP]GOLEM Famil: name XML pages on form 2018-08-21 11:09:11 +02:00
cc12c13170 [IMP]GOLEM Member : do not include canceled on subscribers 2018-08-21 11:08:57 +02:00
390bcb18f1 [REF]GOLEM Family Membership : small refactorings / quality 2018-08-20 11:33:26 +02:00
3676634790 Merge branch 'master' into family_subscription 2018-08-20 11:03:37 +02:00
eb5e82bfa7 [IMP]GOLEM Activity Registration Custom Price : copy price lignes 2018-08-20 10:52:22 +02:00
b30d5cb2b8 small code refactoring 2018-08-13 17:09:27 +01:00
a52ccbcd20 fix domain restriction 2018-08-13 17:09:10 +01:00
047d57ad5d edit init 2018-08-13 16:49:09 +01:00
9e940ce4ff edit golem family 2018-08-13 16:49:00 +01:00
12f5a08bfc edit golem family views 2018-08-13 16:48:33 +01:00
0249a1c50f create __init__ 2018-08-13 16:48:14 +01:00
301cabfa07 create wizard views 2018-08-13 16:48:02 +01:00
c1e370281e create wizard python code 2018-08-13 16:47:49 +01:00
c5ce18361d edit manifest 2018-08-13 16:47:30 +01:00
a4d6becaaa edit init 2018-08-13 16:47:21 +01:00
2f97fa9c40 add membership button to family form 2018-08-12 19:23:54 +01:00
a13f8cacf3 create init 2018-08-12 19:16:41 +01:00
363768f901 create manifest 2018-08-12 19:15:23 +01:00
78164bd55c [IMP]GOLEM Activity Registration : search from member was misplaced 2018-08-09 16:39:17 +02:00
e5fefa2e9d [IMP]GOLEM Activity : display hour start (or nothing) on tree
And adaptations for Activity Registration addon
2018-08-09 15:47:57 +02:00
3ccce89bf1 [IMP]GOLEM Activity : order by defautl code then name then id 2018-08-09 11:27:24 +02:00
5ca67d5a48 [FIX]GOLEM Payement depends on payment 2018-08-05 07:30:11 +02:00
970fa991b5 [FIX]GOLEM Payment fixes
* Allow direct creation of schedule days ;
* Cascade delete for days and schedules.
2018-08-05 06:36:58 +02:00
2ce0ddfc8c [FIX]GOLEM Activity Registration Custom Price : obsolete model in security 2018-08-05 06:09:33 +02:00
46605a8227 [FIX]GOLEM Activity Registration Payment : fix auto confirmation of all draft activities 2018-08-05 05:51:38 +02:00
56f6bd9615 [IMP]GOLEM Activity Registration Payment : manage canceled invoice 2018-08-05 05:50:51 +02:00
8b40f33a9d [IMP]GOLEM Activity Registration Payment : better invoicing form organization 2018-08-04 08:00:42 +02:00
f1aa568e78 [ADD]GOLEM Activity Registration Custom Price new module
See manifest for description
2018-08-04 01:18:39 +02:00
39a2565d07 [IMP]GOLEM Activity Registration Payment : more flexibility, float 2 monetary 2018-08-04 01:18:39 +02:00
e2d72cb4ab [REF]GOLEM Member FamilyQuotient : field renaming 2018-08-04 01:18:39 +02:00
9307ece7d1 [ADD]GOLEM Member : new area field (m2o) 2018-08-04 01:06:06 +02:00
233e4a268e [ADD]GOLEM Base : matrix 2D dependency 2018-08-04 00:58:38 +02:00
757089762f [IMP][I18N][MIG]GOLEM Resource end renaming work 2018-08-03 10:54:28 +02:00
8060d261e3 Merge branch 'master' into resource_typo 2018-08-03 10:39:02 +02:00
fa539c29dd [IMP]GOLEM Membership : default categories to 706/604 accounts 2018-08-03 10:35:19 +02:00
cf4a804038 [IMP]GOLEM Activity : product category accounts now required 2018-08-03 10:34:36 +02:00
26d8e1c5f4 [ADD]GOLEM Payment : improve search views 2018-08-03 09:49:54 +02:00
22df2eea36 [ADD]GOLEM Member Account : add smart button for payments
Also improve the method for opening invoices and store whole amount paid.
2018-08-03 09:46:05 +02:00
569c167e36 update version 2018-08-03 00:03:34 +01:00
e6e15bf66c fix availability spelling mistake 2018-08-02 18:43:58 +01:00
037a69d09e [IMP]GOLEM Activity Registration : no more empty table for activities, invoices payments. 2018-08-02 18:48:19 +02:00
245ef22c80 [ADD]GOLEM Activity Registration Payment : add invoicing on member card template 2018-08-02 18:36:01 +02:00
cd4c0fc872 [ADD]GOLEM Activity Registration State : state on member card report 2018-08-02 18:34:02 +02:00
cce4cbccfc [IMP]GOLEM Activity Registration : member card activities with less columns 2018-08-02 18:32:30 +02:00
7b022c6623 [ADD]GOLEM Activity Registration : invoicing, payment wizard
* Add invoicing information on registration ;
* Enhance payment wizard by better naming journal.
2018-08-01 18:20:11 +02:00
6e778399ef [IMP]GOLEM Activity Registration : member on form 2018-08-01 18:20:11 +02:00
d82babaa25 [REF][ADD]GOLEM Payement
* Refactor days from m2m to o2m ;
* Allow better flow for filling ;
* Check date coherence.
2018-08-01 18:20:11 +02:00
00451b4f9f [IMP]GOLEM Member : small enhancement, do not show number where is not on report 2018-08-01 18:20:11 +02:00
33ded22f1b [REF][IMP]GOLEM Activity Registrations
* Large refactoring around registration trees (using contexts) ;
* Enhancement on base tree view and form.
2018-08-01 18:20:11 +02:00
84c8166294 [FIX]GOLEM Activity Registration : fix for registration in member card template 2018-08-01 18:20:11 +02:00
4a2de70755 [REF][ADD]GOLEM Registration State : individual confirm, draft, cancel, removals 2018-08-01 18:20:11 +02:00
ce55580bf7 [FIX]GOLEM Activity Registration : activity price
Users should not be able to edit activity price form registrations.
2018-08-01 18:20:11 +02:00
893bfcd79b [IMP][REF]GOLEM Family : enhancements
* Allow partner selection from family members tab ;
* Allow family linking from new sevrice user, without mandatory save ;
* Fix UI for family tab ;
* Create a family from sevrice user through button on header.
2018-08-01 18:20:10 +02:00
d070acfbe0 [IMP]GOLEM Member : add header on form 2018-08-01 18:20:10 +02:00
189eccba41 [IMP]GOLEM Family : on partner form, always visible 2018-08-01 18:20:10 +02:00
776371e6db [IMP]GOLEM Family : ability to select existing partners from family form 2018-08-01 18:20:10 +02:00
04cfcf43e4 [TYPO]GOLEM Member : is_service_user betten than is_member 2018-08-01 18:20:10 +02:00
bb51ff6c25 [FIX]GOLEM Season : fix duplicate / copy name and default 2018-08-01 18:20:10 +02:00
69d4cfcf00 [ADD]GOLEM Base : add document dependency 2018-08-01 18:20:10 +02:00
244ee83487 [REF][IMP]GOLEM Registrations states and payments
Huge refactoring, separing states management from payment and invoice
managements
2018-08-01 18:20:10 +02:00
3270ceab13 [I18N]Typo on translations 2018-07-20 18:24:39 +02:00
9b2462a132 [ADD]New module GOLEM Admin for managements users, groups, companies 2018-07-20 17:54:47 +02:00
1829c62879 [IMP]GOLEM Membership : default account for subscription 2018-07-20 17:32:10 +02:00
410ef7c0eb [I18N]Updated french translations (membre > usager) 2018-07-20 17:08:59 +02:00
44dde64e36 [IMP]GOLEM Member : better filters for partners and members 2018-07-20 17:04:23 +02:00
5746a30a62 [IMP]GOLEM Member(ship) : whole menu reorganization 2018-07-20 16:23:56 +02:00
621f6efb27 [I18N]Updates translations 2018-07-20 12:09:47 +02:00
25d2f6ac62 [IMP]GOLEM Member numbers now generated only after memberships 2018-07-20 12:02:53 +02:00
ad003e27f5 [REF]GOLEM Member now depends on membership, not inverse + fixes / consequences 2018-07-20 11:19:08 +02:00
c18b0a20a7 [REF]Huge refactoring around is_current / default season
Not computed anymore
Replaced is_current by more coherent is_default
Not seen current season only per default.
2018-07-20 10:09:24 +02:00
824f187fce [REF]GOLEM Season : model small refactoring 2018-07-20 08:12:51 +02:00
81f2b0d03b [FIX]GOLEM Member : better naming and res.partner form fix 2018-07-18 11:18:28 +02:00
fa94b26859 [REM]GOLEM Activity : remove useless property configuration 2018-07-17 17:48:58 +02:00
ad0d5b0ff6 [ADD]GOLEM Membership : accounting data
* Default memebrship accounts ;
* New journals : check, credit card.
2018-07-17 17:48:15 +02:00
601971cd92 [FIX]GOLEM Member : fix number manual and make it required on form 2018-07-17 12:35:26 +02:00
2f297f4db0 [FIX]GOLEM Family : linked member partner should not be required, for member creation 2018-07-17 12:13:04 +02:00
06618da5f1 [ADD]GOLEM Activity Registration State : add generated invoice and payments
Add generated invoice and payments on wizard.
Allow to see them with navigation buttons.
2018-07-17 11:32:00 +02:00
3fd0b457c3 [FIX]GOLEM Activity : categ_id should not had been inherited 2018-07-17 10:45:04 +02:00
c683931250 [IMP]GOLEM Activity Registration State : rounded payments
Round payments with ceil payments for first ones, balance for the last
one (or unique).
2018-07-17 10:11:10 +02:00
7c51acbfc9 [REF]GOLEM Activity Registration State small refactoring 2018-07-17 09:42:58 +02:00
5006d2d2b4 [ADD]GOLEM Activity : location char field, audience m2o 2018-07-17 09:33:56 +02:00
61b2e06bae [ADD]GOLEM Member : electronic processing boolean 2018-07-17 09:01:36 +02:00
2d6bdcdab8 [I18N]GOLEM Resource Pack forgotten french translation 2018-07-17 08:31:32 +02:00
619605da67 [TYPO]GOLEM Activity Registration 2018-07-17 08:28:02 +02:00
151fa26e6e [REF]GOLEM Member : small ref 2018-07-17 08:26:49 +02:00
bf050e225f [I18N]GOLEM Activity + registration updated translations 2018-06-12 16:19:15 +02:00
7439bea559 [REL]GOLEM Activity : bump versions 2018-06-11 18:11:28 +02:00
97fcfa6cb1 [IMP]GOLEM Activity Registration report : enhance name, phones renders 2018-06-11 18:10:25 +02:00
3171e3c42d [REF]GOLEM Activity report : template code refactoring 2018-06-11 17:58:45 +02:00
5175f03f4f Merge branch 'master' into activity_report 2018-06-11 16:56:08 +02:00
0421f494bc [REF][I18N]GOLEM Resource Pack : small refactorings and updated translations 2018-05-25 18:52:26 +02:00
e76a516177 Merge branch 'master' into resource_pack_quick 2018-05-25 18:19:03 +02:00
392c195b42 [IMP]GOLEM Resource Report : better menus for reports, updated translations 2018-05-25 18:18:49 +02:00
8ff013c485 Merge branch 'master' into resource_pack_quick 2018-05-25 18:03:16 +02:00
1a66cbd81c [IMP]GOLEM Resource Account : better coherence for quantities and UoM, using XMLIDS 2018-05-25 17:41:27 +02:00
c89cc9a2ed Merge branch 'master' into timing_invoice 2018-05-25 17:27:53 +02:00
41633d574f [FIX]GOLEM Resource Report : at least 1 resource is needed 2018-05-25 17:16:19 +02:00
3353db163f Merge branch 'reservations_report' 2018-05-25 16:58:47 +02:00
b820207d67 [I18N]GOLEM Resource Report : translations 2018-05-25 16:56:02 +02:00
ff8a4df86a [FIX]GOLEM Resource Report : only validated resource should be printed 2018-05-25 16:49:44 +02:00
654d2de6b4 [REF][IMP]GOLEM Resource Report : huge refactoring of report model and data with representation per date, then, resource, then dates, then periods 2018-05-25 16:49:44 +02:00
66a46d65f6 [REF]GOLEM Resource Report : global refactoring 2018-05-25 11:42:48 +02:00
704e2809c2 [FIX]GOLEM Resource Report : bad data ordering when installing 2018-05-25 09:56:48 +02:00
a39e8a3957 manifest addaptation 2018-05-08 16:00:17 +01:00
d86c482a03 Add members registred list to report 2018-05-08 15:59:46 +01:00
0d34421f4d Add activity template 2018-05-08 01:31:05 +01:00
42bbe74fab Add report to activity 2018-05-07 17:51:47 +01:00
eloyoussef
0b97623c02 fonction de creation des reservation 2018-04-19 14:54:43 +02:00
eloyoussef
1b6a3c674e Creation du wizard pour la creation rapide des reservation 2018-04-19 13:54:15 +02:00
460d138730 [FIX]GOLEM Resource Pack : add name on form, as it is required 2018-04-18 17:50:05 +02:00
0e20503a8b [ADD]Updated translations for GOLEM Resources 2018-04-17 08:57:08 +02:00
e8d6336bca Merge branch 'golem_resource_pack' 2018-04-17 08:48:59 +02:00
fb51cf9dc0 [FIX]GOLEM Resource Account : keep reservation_id on invoice context, thanks Youssef for catching the bug 2018-04-17 08:48:26 +02:00
6ccf24e485 [FIX]GOLEM Resource Pack : tests adaptations and fixes after refactoring 2018-04-17 08:48:26 +02:00
b855e1436e [WIP][REF]GOLEM Resource Pack : 1rst pass of refactoring on models and views 2018-04-17 08:48:26 +02:00
21f5b6789a [I18N]Update transations 2018-04-17 08:48:26 +02:00
d19e650158 [REF][REM]GOLEM Resource Account : remove useless methods on wizard for adding on invoice 2018-04-17 08:48:26 +02:00
28a3e84105 [FIX]GOLEM Resource Account : with no income and product name, we should handle unicode characters 2018-04-17 08:48:26 +02:00
95cc14a4ee [REF]GOLEM Resource Account : add to invoice refactoring / small enhancements 2018-04-17 08:48:26 +02:00
c446fccd03 [I18N]GOLEM Resource : updated translation 2018-04-17 08:48:26 +02:00
3ce2f43b35 [IMP][REF]GOLEM Resource : make resource product per default 2018-04-17 08:48:26 +02:00
eloyoussef
7e845ae932 filtre ressources liées aux produits 2018-04-17 08:48:26 +02:00
eloyoussef
b584cf8bef fonction d'ajout de reservation au facture 2018-04-17 08:48:26 +02:00
eloyoussef
482e4c0b69 list des factures du meme clients 2018-04-17 08:48:26 +02:00
07e2291189 [FIX]GOLEM Resource Account : keep reservation_id on invoice context, thanks Youssef for catching the bug 2018-04-16 19:18:12 +02:00
988e53bc50 [I18N]Update transations 2018-04-16 18:14:12 +02:00
4104fbace9 [REF][REM]GOLEM Resource Account : remove useless methods on wizard for adding on invoice 2018-04-16 18:14:02 +02:00
eloyoussef
b105d87745 code refactoring 2018-04-16 18:04:05 +02:00
5e27186939 [FIX]GOLEM Resource Account : with no income and product name, we should handle unicode characters 2018-04-16 17:55:32 +02:00
6d163a7a93 [REF]GOLEM Resource Account : add to invoice refactoring / small enhancements 2018-04-16 17:55:02 +02:00
eloyoussef
e7464a62b3 code refactoring 2018-04-16 17:48:14 +02:00
eloyoussef
1398cb945d modification couleurs 2018-04-16 17:10:22 +02:00
720500a4f7 Merge branch 'master' into Add_reservation_to_existing_invoice 2018-04-16 16:53:47 +02:00
408ae9a8c3 [I18N]GOLEM Resource : updated translation 2018-04-16 16:33:03 +02:00
6b9731335e [IMP][REF]GOLEM Resource : make resource product per default 2018-04-16 16:32:50 +02:00
eloyoussef
ce325aa054 Amélioration de l'affichage du rappoort 2018-04-13 19:18:59 +02:00
eloyoussef
94bdd6240a quelques améliorations 2018-04-12 18:58:19 +02:00
eloyoussef
01a34e0e3b fonction de reporting 2018-04-12 18:25:57 +02:00
eloyoussef
c669ddae2f code refactoring 2018-04-12 00:52:05 +02:00
eloyoussef
2abaabc002 wizard pour choisir les resources 2018-04-11 21:27:07 +02:00
eloyoussef
3c2ce0ceba modification du calcul du quantité selon uom 2018-04-09 18:49:50 +02:00
eloyoussef
53e28fec61 filtre ressources liées aux produits 2018-04-06 14:38:30 +02:00
eloyoussef
4712b3e689 fonction d'ajout de reservation au facture 2018-04-04 17:57:01 +02:00
eloyoussef
08eb3ecb4b list des factures du meme clients 2018-04-03 12:33:31 +02:00
eloyoussef
7223afa486 Ajout des tests pour facturation des packs 2018-04-01 02:02:22 +02:00
eloyoussef
9961933f96 refactoration de code 2018-03-31 17:17:08 +02:00
eloyoussef
66c01206f0 contrainte sur les clients multiples 2018-03-31 02:47:05 +02:00
eloyoussef
a0fc41cbcc ajout des tests pack 2018-03-31 00:33:26 +02:00
eloyoussef
1415b0306f amélioration de vue et raison de rejection 2018-03-30 19:03:57 +02:00
eloyoussef
fdf556a8d8 Fonction de facturation 2018-03-30 17:27:40 +02:00
eloyoussef
36058fe141 Création de module pack_account : structure de modèle et vue 2018-03-30 11:49:58 +02:00
eloyoussef
1afbe75845 Ajout de securité et colorisation de la liste 2018-03-30 02:10:54 +02:00
eloyoussef
a0721e6a1c Fonction de verification et manipulation de status 2018-03-30 01:59:16 +02:00
eloyoussef
e738473b53 Merge branch 'master' into golem_resource_pack 2018-03-29 17:07:47 +02:00
fa635b496e [FIX]GOLEM Resource Option is not an application 2018-03-29 16:46:46 +02:00
0cbf3719f2 [FIX]GOLEM Resource views : bad order for new install (calendar view needs form view) 2018-03-29 16:46:26 +02:00
eloyoussef
0a4abc795f Ajout de fonction de confirmation de pack 2018-03-29 15:05:48 +02:00
f710947771 [FIX]GOLEM Resource Option : should not see other options on own definition list on ressource form 2018-03-29 10:02:41 +02:00
350ff3e52a [ADD]GOLEM Base : now depends on backend theme 2018-03-29 09:07:26 +02:00
ced4cbf42a [I18N]GOLEM Resource Option : translations 2018-03-29 08:57:18 +02:00
0bb22d7b1b [IMP]GOLEM Resource Option : base security for new model 2018-03-29 08:56:57 +02:00
8ea116675e [REF][ADD]GOLEM Resource Option : options tree under configuration, active for options and m2m for reservation (finally), multiple small enhancements 2018-03-29 08:35:19 +02:00
0e250ea075 [REF][IMP]GOLEM Resource Option : small refactoring / quality and performance 2018-03-29 08:07:59 +02:00
e7fad86347 [FIX]GOLEM Resource Option : need unicode string to handle non-ascii / special characters 2018-03-29 07:56:20 +02:00
7b390534f2 Merge branch 'master' into golem_resource_option 2018-03-29 07:49:36 +02:00
eloyoussef
24d08c0774 Ajout des champs et design views 2018-03-28 18:03:17 +02:00
eloyoussef
e36c9b537c Création du module resource pack basique 2018-03-28 16:57:56 +02:00
6b3942389d [I18N]GOLEM Member Pre-creation Search translations 2018-03-27 17:13:15 +02:00
5e557edf22 [REF][IMP]Huge refactoring and small enhanceme GOLEM Member Precreation Search 2018-03-27 17:09:18 +02:00
ffa453d2c8 [MOV][WIP]GOLEM Precreation search : renaming module 2018-03-27 16:11:26 +02:00
f3e45b885d [REF][IMP]GOLEM PreCreation : now from submenu on member module 2018-03-27 16:00:07 +02:00
671cb68b86 [IMP]GOLEM Member : new tools menu 2018-03-27 15:58:54 +02:00
96b29fdc9f Merge branch 'master' into golem_precreation_member 2018-03-27 12:32:29 +02:00
eloyoussef
991e5bc39a Ajout du fonctionnement pour contact 2018-03-23 17:31:04 +01:00
eloyoussef
79c8d501a0 Fonction de recherche de membres 2018-03-23 15:44:37 +01:00
eloyoussef
4cd64ef8aa ajout du module et wizard à lancer 2018-03-22 16:47:54 +01:00
354 changed files with 16553 additions and 1938 deletions

View File

@ -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']
}

View File

@ -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>

View File

@ -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>&gt;"
msgstr "<strong>Intervenant : </strong>&gt;"
#. 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>&gt;"
msgstr "<strong>Tarif : </strong>&gt;"
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Reference : </strong>&gt;"
msgstr "<strong>Référence : </strong>&gt;"
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Season : </strong>&gt;"
msgstr "<strong>Saison : </strong>&gt;"
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Start Hour : </strong>&gt;"
msgstr "<strong>Heure de début : </strong>&gt;"
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Stop Hour : </strong>&gt;"
msgstr "<strong>Heure de fin : </strong>&gt;"
#. 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é..."

View File

@ -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>&gt;"
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>&gt;"
msgstr ""
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Reference : </strong>&gt;"
msgstr ""
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Season : </strong>&gt;"
msgstr ""
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Start Hour : </strong>&gt;"
msgstr ""
#. module: golem_activity
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "<strong>Stop Hour : </strong>&gt;"
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"

View File

@ -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

View File

@ -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)

View 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

View 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>

View File

@ -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 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_product_template_auditor Access Product Template Auditor product.model_product_template golem_base.group_golem_auditor 1 0 0 0
3 access_product_template_user Access Product Template User product.model_product_template golem_base.group_golem_user 1 1 1 0
4 access_product_template_manager Access Product Template Manager product.model_product_template golem_base.group_golem_manager 1 1 1 1
5 access_product_product_auditor Access Product Product Auditor product.model_product_product golem_base.group_golem_auditor 1 0 0 0
6 access_product_product_user Access Product Product User product.model_product_product golem_base.group_golem_user 1 1 1 0
7 access_product_product_manager Access Product Product Manager product.model_product_product golem_base.group_golem_manager 1 1 1 1
8 access_product_price_history_auditor Access Product Price History Auditor product.model_product_price_history golem_base.group_golem_auditor 1 0 0 0
9 access_product_price_history_user Access Product Price History User product.model_product_price_history golem_base.group_golem_user 1 1 1 0
10 access_product_price_history_manager Access Product Price History Manager product.model_product_price_history golem_base.group_golem_manager 1 1 1 1
11 access_product_category_auditor Access Product Category Auditor product.model_product_category golem_base.group_golem_auditor 1 0 0 0
12 access_product_category_user Access Product Category User product.model_product_category golem_base.group_golem_user 1 0 0 0
13 access_product_category_manager Access Product Category Manager product.model_product_category golem_base.group_golem_manager 1 1 1 1
14 access_golem_activity_auditor Access GOLEM Activity Auditor model_golem_activity golem_base.group_golem_auditor 1 0 0 0
15 access_golem_activity_user Access GOLEM Activity User model_golem_activity golem_base.group_golem_user 1 1 1 0
16 access_golem_activity_manager Access GOLEM Activity Manager model_golem_activity golem_base.group_golem_manager 1 1 1 1
17 access_golem_activity_type_auditor Access GOLEM Activity Type Auditor model_golem_activity_type golem_base.group_golem_auditor 1 0 0 0
18 access_golem_activity_type_user Access GOLEM Activity Type User model_golem_activity_type golem_base.group_golem_user 1 1 1 0
19 access_golem_activity_type_manager Access GOLEM Activity Type Manager model_golem_activity_type golem_base.group_golem_manager 1 1 1 1
20 access_golem_activity_audience_auditor Access GOLEM Activity Audience Auditor model_golem_activity_audience golem_base.group_golem_auditor 1 0 0 0
21 access_golem_activity_audience_user Access GOLEM Activity Audience User model_golem_activity_audience golem_base.group_golem_user 1 1 1 0
22 access_golem_activity_audience_manager Access GOLEM Activity Audience Manager model_golem_activity_audience golem_base.group_golem_manager 1 1 1 1

View File

@ -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):

View File

@ -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>

View File

@ -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',

View File

@ -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"

View File

@ -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 ""

View File

@ -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()

View File

@ -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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 golem_activity_queue_auditor_rule GOLEM Activity Queue Auditor Rule model_golem_activity_queue golem_base.group_golem_auditor 1 0 0 0
3 golem_activity_queue_user_rule GOLEM Activity Queue User Rule model_golem_activity_queue golem_base.group_golem_user 1 1 1 1
4 golem_activity_queue_manager_rule GOLEM Activity Queue Manager Rule model_golem_activity_queue golem_base.group_golem_manager 1 1 1 1

View File

@ -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','&lt;' , 1), ('queue_allowed', '=', True), ('is_current', '=', True)]"
domain="[('places_remain','&lt;' , 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"

View File

@ -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','&lt;' , 1), ('queue_allowed', '=', True), ('is_current', '=', True)]"
domain="[('places_remain','&lt;' , 1), ('queue_allowed', '=', True), ('is_default', '=', True)]"
options="{'no_create': True}"/>
<field name="season_id" readonly="1" />
</tree>

View File

@ -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

View File

@ -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']
}

View File

@ -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"

View File

@ -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 ""

View File

@ -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.')

View File

@ -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>

View File

@ -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>

View File

@ -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 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_golem_activity_registration_auditor Access GOLEM Activity Registration Auditor model_golem_activity_registration golem_base.group_golem_auditor 1 0 0 0
3 access_golem_activity_registration_user Access GOLEM Activity Registration User model_golem_activity_registration golem_base.group_golem_user 1 1 1 1
4 access_golem_activity_registration_manager Access GOLEM Activity Registration Manager model_golem_activity_registration golem_base.group_golem_manager 1 1 1 1

View File

@ -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>

View File

@ -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 &lt;= 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>

View File

@ -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>

View 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

View File

@ -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',
}

View File

@ -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>

View 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')

View File

@ -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>

View File

@ -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

View 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']
}

View 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."

View 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 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 ""

View 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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 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
3 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
4 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
5 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
6 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
7 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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View 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)

View File

@ -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')

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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

View 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

View 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']
}

View 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"

View File

@ -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 ""

View 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

View 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

View File

@ -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')

View 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)

View File

@ -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>

View File

@ -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', '&gt;=', (context_today() - datetime.timedelta(days=365.25)).strftime('%Y-01-01')), ('date_invoice', '&lt;', context_today().strftime('%Y-01-01'))]" />
<filter name="invoice_this_year" string="This year invoices"
domain="[('date_invoice', '&gt;=', 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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)]
}

View File

@ -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>

View 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

View File

@ -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'],
}

View 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"

View 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 ""

View 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_activity_registration_invoicing

View File

@ -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

View 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

View File

@ -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']
}

View 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"

View 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 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 ""

View File

@ -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

View File

@ -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

View File

@ -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>

View 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_activity_registration_invoicing

View File

@ -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

View File

@ -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

View File

@ -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']
}

View File

@ -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"

View File

@ -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 ""

View File

@ -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):

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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')]
)

View File

@ -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)

View File

@ -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
View 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

View 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
View 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