Compare commits

..

222 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
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
188 changed files with 6200 additions and 407 deletions

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2016-2020 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -19,7 +19,7 @@
'name': 'GOLEM activities', 'name': 'GOLEM activities',
'summary': 'Extends Odoo products for multi-activity', 'summary': 'Extends Odoo products for multi-activity',
'description': 'Extends Odoo products for multi-activity', 'description': 'Extends Odoo products for multi-activity',
'version': '10.0.2.6.1', 'version': '10.0.2.8.2',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne', 'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3', 'license': 'AGPL-3',

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-09 13:33+0000\n" "POT-Creation-Date: 2018-11-01 15:16+0000\n"
"PO-Revision-Date: 2018-08-09 15:47+0200\n" "PO-Revision-Date: 2018-11-01 16:17+0100\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -173,13 +173,13 @@ msgid "Activity audience"
msgstr "Public" msgstr "Public"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:160 #: code:addons/golem_activity/models/golem_activity.py:167
#, python-format #, python-format
msgid "Activity end date can not be set after linked season end." 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." msgstr "La date de fin ne peut pas être apprêt la date de fin de la saison."
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:156 #: code:addons/golem_activity/models/golem_activity.py:163
#, python-format #, python-format
msgid "Activity start date can not be set before linked season start." 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." msgstr "La date de début ne peut pas être avant la date de début de la saison."
@ -194,6 +194,12 @@ msgstr "Type d'activité"
msgid "Adults" msgid "Adults"
msgstr "Adultes" 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 #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_animator_id #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_animator_id
msgid "Animator" msgid "Animator"
@ -205,7 +211,7 @@ msgid "Arts martiaux"
msgstr "Arts martiaux" msgstr "Arts martiaux"
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4516 #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4022
msgid "Audience" msgid "Audience"
msgstr "Public" msgstr "Public"
@ -392,7 +398,7 @@ msgid "Expense Account"
msgstr "Compte de dépenses" msgstr "Compte de dépenses"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:178 #: code:addons/golem_activity/models/golem_activity.py:185
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Friday" msgid "Friday"
@ -573,7 +579,7 @@ msgid "Membership Start Date"
msgstr "Date de début d'adhésion" msgstr "Date de début d'adhésion"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:174 #: code:addons/golem_activity/models/golem_activity.py:181
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Monday" msgid "Monday"
@ -590,6 +596,11 @@ msgstr "Nom"
msgid "Others" msgid "Others"
msgstr "Autres" msgstr "Autres"
#. module: golem_activity
#: model:ir.model,name:golem_activity.model_res_partner
msgid "Partner"
msgstr "Partenaire"
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_price #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_price
msgid "Price" msgid "Price"
@ -655,12 +666,6 @@ msgstr "Description achat"
msgid "Purchase Unit of Measure" msgid "Purchase Unit of Measure"
msgstr "Unité de mesure d'achat" msgstr "Unité de mesure d'achat"
#. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_resource_ids
#: model:ir.model.fields,field_description:golem_activity.field_product_product_resource_ids
msgid "Resource ids"
msgstr "Resources"
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description_sale #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description_sale
msgid "Sale Description" msgid "Sale Description"
@ -672,7 +677,7 @@ msgid "Sale Price"
msgstr "Prix de vente" msgstr "Prix de vente"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:179 #: code:addons/golem_activity/models/golem_activity.py:186
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Saturday" msgid "Saturday"
@ -725,8 +730,8 @@ msgid "Start date"
msgstr "Date de début" msgstr "Date de début"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:153 #: code:addons/golem_activity/models/golem_activity.py:160
#: code:addons/golem_activity/models/golem_activity.py:205 #: code:addons/golem_activity/models/golem_activity.py:212
#, python-format #, python-format
msgid "Start of the period cannot be after end of the period." 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" msgstr "Le début de la période ne peut être antérieure à sa fin"
@ -742,7 +747,7 @@ msgid "Stop time"
msgstr "Heure de fin" msgstr "Heure de fin"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:180 #: code:addons/golem_activity/models/golem_activity.py:187
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Sunday" msgid "Sunday"
@ -793,7 +798,7 @@ msgid "This field holds the image used as image for the activity."
msgstr "This field holds the image used as image for the activity." msgstr "This field holds the image used as image for the activity."
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:177 #: code:addons/golem_activity/models/golem_activity.py:184
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Thursday" msgid "Thursday"
@ -810,14 +815,14 @@ msgid "True"
msgstr "True" msgstr "True"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:175 #: code:addons/golem_activity/models/golem_activity.py:182
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Tuesday" msgid "Tuesday"
msgstr "Mardi" msgstr "Mardi"
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3929 #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3987
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template #: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "Type" msgid "Type"
msgstr "Type" msgstr "Type"
@ -854,7 +859,7 @@ msgid "Warranty"
msgstr "Garantie" msgstr "Garantie"
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:176 #: code:addons/golem_activity/models/golem_activity.py:183
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Wednesday" msgid "Wednesday"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-09 13:33+0000\n" "POT-Creation-Date: 2018-11-01 15:16+0000\n"
"PO-Revision-Date: 2018-08-09 13:33+0000\n" "PO-Revision-Date: 2018-11-01 15:16+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -170,13 +170,13 @@ msgid "Activity audience"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:160 #: code:addons/golem_activity/models/golem_activity.py:167
#, python-format #, python-format
msgid "Activity end date can not be set after linked season end." msgid "Activity end date can not be set after linked season end."
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:156 #: code:addons/golem_activity/models/golem_activity.py:163
#, python-format #, python-format
msgid "Activity start date can not be set before linked season start." msgid "Activity start date can not be set before linked season start."
msgstr "" msgstr ""
@ -191,6 +191,12 @@ msgstr ""
msgid "Adults" msgid "Adults"
msgstr "" 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 #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_animator_id #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_animator_id
msgid "Animator" msgid "Animator"
@ -202,7 +208,7 @@ msgid "Arts martiaux"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4516 #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_audience_id_4022
msgid "Audience" msgid "Audience"
msgstr "" msgstr ""
@ -389,7 +395,7 @@ msgid "Expense Account"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:178 #: code:addons/golem_activity/models/golem_activity.py:185
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Friday" msgid "Friday"
@ -570,7 +576,7 @@ msgid "Membership Start Date"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:174 #: code:addons/golem_activity/models/golem_activity.py:181
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Monday" msgid "Monday"
@ -587,6 +593,11 @@ msgstr ""
msgid "Others" msgid "Others"
msgstr "" msgstr ""
#. module: golem_activity
#: model:ir.model,name:golem_activity.model_res_partner
msgid "Partner"
msgstr ""
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_price #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_price
msgid "Price" msgid "Price"
@ -652,12 +663,6 @@ msgstr ""
msgid "Purchase Unit of Measure" msgid "Purchase Unit of Measure"
msgstr "" msgstr ""
#. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_resource_ids
#: model:ir.model.fields,field_description:golem_activity.field_product_product_resource_ids
msgid "Resource ids"
msgstr ""
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description_sale #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_description_sale
msgid "Sale Description" msgid "Sale Description"
@ -669,7 +674,7 @@ msgid "Sale Price"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:179 #: code:addons/golem_activity/models/golem_activity.py:186
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Saturday" msgid "Saturday"
@ -722,8 +727,8 @@ msgid "Start date"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:153 #: code:addons/golem_activity/models/golem_activity.py:160
#: code:addons/golem_activity/models/golem_activity.py:205 #: code:addons/golem_activity/models/golem_activity.py:212
#, python-format #, python-format
msgid "Start of the period cannot be after end of the period." msgid "Start of the period cannot be after end of the period."
msgstr "" msgstr ""
@ -739,7 +744,7 @@ msgid "Stop time"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:180 #: code:addons/golem_activity/models/golem_activity.py:187
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Sunday" msgid "Sunday"
@ -790,7 +795,7 @@ msgid "This field holds the image used as image for the activity."
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:177 #: code:addons/golem_activity/models/golem_activity.py:184
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Thursday" msgid "Thursday"
@ -807,14 +812,14 @@ msgid "True"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:175 #: code:addons/golem_activity/models/golem_activity.py:182
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3929 #: model:ir.model.fields,field_description:golem_activity.field_golem_activity_type_id_3987
#: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template #: model:ir.ui.view,arch_db:golem_activity.golem_activity_report_template
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -851,7 +856,7 @@ msgid "Warranty"
msgstr "" msgstr ""
#. module: golem_activity #. module: golem_activity
#: code:addons/golem_activity/models/golem_activity.py:176 #: code:addons/golem_activity/models/golem_activity.py:183
#: selection:golem.activity,weekday:0 #: selection:golem.activity,weekday:0
#, python-format #, python-format
msgid "Wednesday" msgid "Wednesday"

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # 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 # 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/>. # 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 -*- # -*- coding: utf-8 -*-
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -105,8 +105,7 @@ class GolemActivity(models.Model):
index=True, auto_join=True, index=True, auto_join=True,
ondelete='restrict') ondelete='restrict')
is_default = fields.Boolean('Default season?', is_default = fields.Boolean('Default season?',
compute='_compute_is_default', compute='_compute_is_default', store=True)
search='_search_is_default')
@api.depends('season_id') @api.depends('season_id')
def _compute_is_default(self): def _compute_is_default(self):
@ -115,18 +114,6 @@ class GolemActivity(models.Model):
for activity in self: for activity in self:
activity.is_default = (default_season == activity.season_id) activity.is_default = (default_season == activity.season_id)
@api.multi
def _search_is_default(self, operator, value):
""" Search function for is default """
if operator in ('in', '='):
operator = '=' if value else '!='
elif operator in ('not in', '!='):
operator = '!=' if value else '='
else:
err = _('Unsupported operator for defautl season search')
raise NotImplementedError(err)
return [('season_id', operator, self.default_season().id)]
animator_id = fields.Many2one('res.partner', string='Animator', animator_id = fields.Many2one('res.partner', string='Animator',
index=True, auto_join=True, index=True, auto_join=True,
domain=[('is_company', '=', False)]) domain=[('is_company', '=', False)])
@ -221,3 +208,11 @@ class ProductCategory(models.Model):
property_account_income_categ_id = fields.Many2one(required=True) property_account_income_categ_id = fields.Many2one(required=True)
property_account_expense_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

@ -1,15 +1,22 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 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_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_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_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_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_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_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_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_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_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_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_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_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_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 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,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2017-2018 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 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 it under the terms of the GNU Affero General Public License as published by
@ -187,7 +188,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Actions --> <!-- Actions -->
<act_window id="golem_activity_action" name="GOLEM Activities" <act_window id="golem_activity_action" name="GOLEM Activities"
res_model="golem.activity" view_mode="tree,form,calendar" /> res_model="golem.activity" view_mode="tree,form,calendar"
context="{'search_default_season_default': 1}"/>
<act_window id="golem_activity_type_action" name="GOLEM Activity Types" <act_window id="golem_activity_type_action" name="GOLEM Activity Types"
res_model="golem.activity.type" view_mode="tree" /> res_model="golem.activity.type" view_mode="tree" />
<act_window id="golem_activity_audience_action" name="GOLEM Activity Audiences" <act_window id="golem_activity_audience_action" name="GOLEM Activity Audiences"
@ -201,25 +203,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Menus --> <!-- Menus -->
<menuitem id="golem_activity_menu" name="Activities" sequence="30" <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" /> web_icon="golem_activity,static/description/icon.png" />
<menuitem id="golem_activity_menu_list" name="Activities" <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" /> parent="golem_activity_menu" sequence="1" action="golem_activity_action" />
<menuitem id="golem_activity_menu_configuration" name="Configuration" <menuitem id="golem_activity_menu_configuration" name="Configuration"
parent="golem_activity_menu" sequence="90" 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" <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" parent="golem_activity_menu_configuration" sequence="5"
action="golem_activity_type_action" /> action="golem_activity_type_action" />
<menuitem id="golem_activity_audience_menu_list" name="Activity Audiences" <menuitem id="golem_activity_audience_menu_list" name="Activity Audiences"
groups="golem_base.group_golem_manager" groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
parent="golem_activity_menu_configuration" sequence="7" parent="golem_activity_menu_configuration" sequence="7"
action="golem_activity_audience_action" /> action="golem_activity_audience_action" />
<menuitem id="product_category_menu" name="Categories" <menuitem id="product_category_menu" name="Categories"
parent="golem_activity_menu_configuration" sequence="10" 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" /> action="product_category_action" />
</data> </data>

View File

@ -1,3 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 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_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 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

@ -15,4 +15,4 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # 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 -*- # -*- 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 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -18,7 +18,7 @@
{ {
'name': 'GOLEM Activity Member Registrations', 'name': 'GOLEM Activity Member Registrations',
'summary': 'GOLEM Activities Member Registrations management', 'summary': 'GOLEM Activities Member Registrations management',
'version': '10.0.1.4.5', 'version': '10.0.1.6.5',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne', 'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3', 'license': 'AGPL-3',
@ -30,5 +30,7 @@
'views/golem_activity_views.xml', 'views/golem_activity_views.xml',
'report/golem_member_card_templates.xml', 'report/golem_member_card_templates.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'report/golem_activity_report_templates.xml'] 'report/golem_activity_report_templates.xml',
'wizard/golem_activity_registration_analysis_wizard_views.xml',
'wizard/golem_member_analysis_views.xml']
} }

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-09 14:23+0000\n" "POT-Creation-Date: 2019-01-21 10:49+0000\n"
"PO-Revision-Date: 2018-08-09 16:38+0200\n" "PO-Revision-Date: 2019-01-21 11:51+0100\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -53,6 +53,7 @@ msgstr "Activités de la saison par défaut"
#. module: golem_activity_registration #. 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_activity_registration_activity_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_analysis_activity_id
msgid "Activity" msgid "Activity"
msgstr "Activité" msgstr "Activité"
@ -61,16 +62,46 @@ msgstr "Activité"
msgid "Activity registrations" msgid "Activity registrations"
msgstr "Inscriptions" 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 #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids
msgid "All activities" msgid "All activities"
msgstr "Toutes les activités" 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 #. 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_card_template_inherit_golem_activity_resgitration
msgid "Animator" msgid "Animator"
msgstr "Intervenant" msgstr "Intervenant"
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season start"
msgstr "Au début de la saison"
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season stop"
msgstr "À la fin de la saison"
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
msgid "Base price" msgid "Base price"
@ -79,7 +110,12 @@ msgstr "Prix de base"
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.model.fields,help:golem_activity_registration.field_golem_activity_registration_activity_price #: 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." 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 #. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search
@ -87,11 +123,13 @@ msgid "By season"
msgstr "Par saison" msgstr "Par saison"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_uid
msgid "Created by" msgid "Created by"
msgstr "Créé par" msgstr "Créé par"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_date
msgid "Created on" msgid "Created on"
msgstr "Créé le" msgstr "Créé le"
@ -117,6 +155,7 @@ msgid "Default season?"
msgstr "Saison par défaut?" msgstr "Saison par défaut?"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_display_name
msgid "Display Name" msgid "Display Name"
msgstr "Nom affiché" msgstr "Nom affiché"
@ -141,6 +180,11 @@ msgstr "Activité"
msgid "GOLEM Activity Registration" msgid "GOLEM Activity Registration"
msgstr "Inscription à l'activité" 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 #. module: golem_activity_registration
#: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action #: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action
msgid "GOLEM Activity Registration List" msgid "GOLEM Activity Registration List"
@ -151,12 +195,18 @@ msgstr "Liste des inscriptions aux activités"
msgid "GOLEM Member" msgid "GOLEM Member"
msgstr "Adhérent" msgstr "Adhérent"
#. module: golem_activity_registration
#: model:ir.model,name:golem_activity_registration.model_golem_member_analysis
msgid "GOLEM Members Analysis Adaption"
msgstr "GOLEM Members Analysis Adaption"
#. module: golem_activity_registration #. 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_card_template_inherit_golem_activity_resgitration
msgid "Hours" msgid "Hours"
msgstr "Horaires" msgstr "Horaires"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_id
msgid "ID" msgid "ID"
msgstr "ID" msgstr "ID"
@ -168,19 +218,28 @@ msgstr "Fixe :"
#. module: golem_activity_registration #. 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___last_update
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard___last_update
msgid "Last Modified on" msgid "Last Modified on"
msgstr "Dernière Modification le" msgstr "Dernière Modification le"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_uid
msgid "Last Updated by" msgid "Last Updated by"
msgstr "Dernière mise à jour par" msgstr "Dernière mise à jour par"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_date
msgid "Last Updated on" msgid "Last Updated on"
msgstr "Dernière mise à jour le" msgstr "Dernière mise à jour le"
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
#, python-format
msgid "Member Analysis"
msgstr "Analyse des usagers"
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration
@ -188,10 +247,16 @@ msgid "Members"
msgstr "Adhérents" msgstr "Adhérents"
#. module: golem_activity_registration #. 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 #: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "Now"
msgstr "Ce jour"
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:39 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:39
#: sql_constraint:golem.activity:0 #: sql_constraint:golem.activity:0
@ -204,6 +269,22 @@ msgstr "Le nombre de places ne peut pas être négatif"
msgid "On default season, there is no activity for this member." 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." 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 #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places
msgid "Places" msgid "Places"
@ -219,6 +300,16 @@ msgstr "Places prises"
msgid "Practiced activities" msgid "Practiced activities"
msgstr "Activités pratiquées" 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 #. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration
msgid "Remain" msgid "Remain"
@ -235,17 +326,23 @@ msgid "Sale Price"
msgstr "Prix de vente" msgstr "Prix de vente"
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_season_id
msgid "Season" msgid "Season"
msgstr "Saison" msgstr "Saison"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_start_activity_area
msgid "Service User Analysis"
msgstr "Analyse des usagers"
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
msgid "Service user" msgid "Service user"
msgstr "Usager" msgstr "Usager"
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:70 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:71
#, python-format #, python-format
msgid "Sorry, there is no more place !" msgid "Sorry, there is no more place !"
msgstr "Désolé, il n'y a plus de place disponible !" msgstr "Désolé, il n'y a plus de place disponible !"
@ -256,13 +353,19 @@ msgid "Subscription"
msgstr "Inscription" msgstr "Inscription"
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:100 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:119
#, python-format
msgid "Subscription can not be executed : the targeted activity is only for subscriber."
msgstr "L'inscription n'a pas pu être faite : l'activité choisie est réservée aux adhérents."
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:123
#, python-format #, python-format
msgid "Subscription can not be executed : the targeted member is not on the same season as the activity." 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é." 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 #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:92 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:93
#: sql_constraint:golem.activity.registration:0 #: sql_constraint:golem.activity.registration:0
#, python-format #, python-format
msgid "This member has already been registered for this activity." msgid "This member has already been registered for this activity."

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-09 14:23+0000\n" "POT-Creation-Date: 2019-01-21 10:49+0000\n"
"PO-Revision-Date: 2018-08-09 14:23+0000\n" "PO-Revision-Date: 2019-01-21 10:49+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -53,6 +53,7 @@ msgstr ""
#. module: golem_activity_registration #. 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_activity_registration_activity_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_analysis_activity_id
msgid "Activity" msgid "Activity"
msgstr "" msgstr ""
@ -61,16 +62,46 @@ msgstr ""
msgid "Activity registrations" msgid "Activity registrations"
msgstr "" 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 #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids
msgid "All activities" msgid "All activities"
msgstr "" 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 #. 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_card_template_inherit_golem_activity_resgitration
msgid "Animator" msgid "Animator"
msgstr "" msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season start"
msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season stop"
msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
msgid "Base price" msgid "Base price"
@ -81,17 +112,24 @@ msgstr ""
msgid "Base price to compute the customer price. Sometimes called the catalog price." msgid "Base price to compute the customer price. Sometimes called the catalog price."
msgstr "" msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,analyse_type:0
msgid "By area and activity"
msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search
msgid "By season" msgid "By season"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_uid
msgid "Created by" msgid "Created by"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_date
msgid "Created on" msgid "Created on"
msgstr "" msgstr ""
@ -117,6 +155,7 @@ msgid "Default season?"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_display_name
msgid "Display Name" msgid "Display Name"
msgstr "" msgstr ""
@ -141,6 +180,11 @@ msgstr ""
msgid "GOLEM Activity Registration" msgid "GOLEM Activity Registration"
msgstr "" 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 #. module: golem_activity_registration
#: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action #: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action
msgid "GOLEM Activity Registration List" msgid "GOLEM Activity Registration List"
@ -151,12 +195,18 @@ msgstr ""
msgid "GOLEM Member" msgid "GOLEM Member"
msgstr "" msgstr ""
#. module: golem_activity_registration
#: model:ir.model,name:golem_activity_registration.model_golem_member_analysis
msgid "GOLEM Members Analysis Adaption"
msgstr ""
#. module: golem_activity_registration #. 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_card_template_inherit_golem_activity_resgitration
msgid "Hours" msgid "Hours"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_id
msgid "ID" msgid "ID"
msgstr "" msgstr ""
@ -168,19 +218,28 @@ msgstr ""
#. module: golem_activity_registration #. 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___last_update
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard___last_update
msgid "Last Modified on" msgid "Last Modified on"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_uid
msgid "Last Updated by" msgid "Last Updated by"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_date
msgid "Last Updated on" msgid "Last Updated on"
msgstr "" msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
#, python-format
msgid "Member Analysis"
msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration
@ -188,10 +247,16 @@ msgid "Members"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "Now"
msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:39 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:39
#: sql_constraint:golem.activity:0 #: sql_constraint:golem.activity:0
@ -204,6 +269,22 @@ msgstr ""
msgid "On default season, there is no activity for this member." msgid "On default season, there is no activity for this member."
msgstr "" 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 #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places
msgid "Places" msgid "Places"
@ -219,6 +300,16 @@ msgstr ""
msgid "Practiced activities" msgid "Practiced activities"
msgstr "" 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 #. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration #: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration
msgid "Remain" msgid "Remain"
@ -235,17 +326,23 @@ msgid "Sale Price"
msgstr "" msgstr ""
#. module: golem_activity_registration #. 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 #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_season_id
msgid "Season" msgid "Season"
msgstr "" msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_start_activity_area
msgid "Service User Analysis"
msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id #: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
msgid "Service user" msgid "Service user"
msgstr "" msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:70 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:71
#, python-format #, python-format
msgid "Sorry, there is no more place !" msgid "Sorry, there is no more place !"
msgstr "" msgstr ""
@ -256,13 +353,19 @@ msgid "Subscription"
msgstr "" msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:100 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:119
#, python-format
msgid "Subscription can not be executed : the targeted activity is only for subscriber."
msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:123
#, python-format #, python-format
msgid "Subscription can not be executed : the targeted member is not on the same season as the activity." msgid "Subscription can not be executed : the targeted member is not on the same season as the activity."
msgstr "" msgstr ""
#. module: golem_activity_registration #. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:92 #: code:addons/golem_activity_registration/models/golem_activity_registration.py:93
#: sql_constraint:golem.activity.registration:0 #: sql_constraint:golem.activity.registration:0
#, python-format #, python-format
msgid "This member has already been registered for this activity." msgid "This member has already been registered for this activity."

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -43,6 +43,7 @@ class GolemActivity(models.Model):
index=True) index=True)
places_used = fields.Integer('Places used', compute='compute_places_used', places_used = fields.Integer('Places used', compute='compute_places_used',
store=True) store=True)
only_for_subscriber = fields.Boolean(default=False)
@api.multi @api.multi
@api.depends('activity_registration_ids') @api.depends('activity_registration_ids')
@ -91,11 +92,33 @@ class GolemActivityRegistration(models.Model):
('registration_uniq', 'UNIQUE (member_id, activity_id)', ('registration_uniq', 'UNIQUE (member_id, activity_id)',
_('This member has already been registered for this activity.'))] _('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') @api.constrains('member_id', 'activity_id')
def _check_season_reliability(self): def _check_season_reliability(self):
""" Forbid registration when member season if not coherent with """ Forbid registration when member season if not coherent with
activity season or are duplicates """ activity season or are duplicates """
for reg in self: 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: if reg.activity_id.season_id not in reg.member_id.season_ids:
emsg = _('Subscription can not be executed : the targeted ' emsg = _('Subscription can not be executed : the targeted '
'member is not on the same season as the activity.') 'member is not on the same season as the activity.')

View File

@ -1,3 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 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_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 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"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="activity_id" domain="[('is_default', '=', True)]" <field name="activity_id" domain="[('is_default', '=', True)]"
invisible="not context.get('activity_show', 1)" /> invisible="not context.get('activity_show', 1)" />
<field name="activity_price" string="Base price" sum="Total" <field name="activity_price" string="Base price" sum="Total"
invisible="not context.get('activity_show', 1)" /> invisible="not context.get('activity_show', 1)" readonly="1" />
</tree> </tree>
</field> </field>
</record> </record>
@ -86,7 +86,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<menuitem id="golem_activity_registration_menu" name="Activity registrations" <menuitem id="golem_activity_registration_menu" name="Activity registrations"
parent="golem_activity.golem_activity_menu" parent="golem_activity.golem_activity_menu"
action="golem_activity_registration_action" action="golem_activity_registration_action"
groups="golem_base.group_golem_user" groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
sequence="20" /> sequence="20" />
</data> </data>

View File

@ -38,6 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
</group> </group>
</page> </page>
</page> </page>
<field name="audience_id" position="before">
<field name="only_for_subscriber"/>
</field>
</field> </field>
</record> </record>
@ -66,6 +69,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<filter name="season_default" position="after"> <filter name="season_default" position="after">
<filter name="full_activity" string="Full" <filter name="full_activity" string="Full"
domain="[('places_remain', '=', 0)]" /> domain="[('places_remain', '=', 0)]" />
<filter name="only_for_subscriber" string="Only for subscriber"
domain="[('only_for_subscriber', '=', True)]"/>
</filter> </filter>
</field> </field>
</record> </record>

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- 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 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -15,15 +16,4 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Family Minor glue module""" from . import golem_activity_registration_analysis_wizard, golem_member_analysis
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)

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,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -20,11 +20,11 @@
'summary': 'GOLEM Activity Registration Custom Price', 'summary': 'GOLEM Activity Registration Custom Price',
'description': '''GOLEM Activity Registration Custom Price : 'description': '''GOLEM Activity Registration Custom Price :
- allow set of 1:n slices based on family quotient ; - allow set of 1:n slices based on family quotient ;
- allow set 1:n area data ; - allow set 1:n root area data ;
- allow set price per area and slice ; - allow set price per area and slice ;
- computes automatically applicable price ; - computes automatically applicable price ;
- anticipate ruleset to be implemented for computing.''', - anticipate ruleset to be implemented for computing.''',
'version': '10.0.0.1.2', 'version': '10.0.0.3.2',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',
@ -36,5 +36,6 @@
'views/golem_payment_rule_quotient_slice_views.xml', 'views/golem_payment_rule_quotient_slice_views.xml',
'views/golem_member_views.xml', 'views/golem_member_views.xml',
'views/golem_activity_views.xml', 'views/golem_activity_views.xml',
'wizard/golem_activity_registration_invoicing_views.xml'] 'wizard/golem_activity_registration_invoicing_views.xml',
'wizard/golem_member_analysis_views.xml']
} }

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-03 23:02+0000\n" "POT-Creation-Date: 2019-01-21 10:20+0000\n"
"PO-Revision-Date: 2018-08-04 01:17+0200\n" "PO-Revision-Date: 2019-01-21 11:21+0100\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -70,7 +70,7 @@ msgid "Current family quotient slice cannot be included into another existing sl
msgstr "La tranche de quotient familial ne peut être incluse dans une tranche existante." msgstr "La tranche de quotient familial ne peut être incluse dans une tranche existante."
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:29 #: code:addons/golem_activity_registration_custom_price/models/golem_member.py:30
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_registration_invoicing_form_inherit_custom_price #: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_registration_invoicing_form_inherit_custom_price
#, python-format #, python-format
msgid "Default price" msgid "Default price"
@ -89,13 +89,13 @@ msgid "Family Quotients"
msgstr "Quotients familiaux" msgstr "Quotients familiaux"
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:61 #: code:addons/golem_activity_registration_custom_price/models/golem_member.py:62
#, python-format #, python-format
msgid "Family quotient and area" msgid "Family quotient and area"
msgstr "Quotient familial et territoire" msgstr "Quotient familial et territoire"
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:59 #: code:addons/golem_activity_registration_custom_price/models/golem_member.py:60
#, python-format #, python-format
msgid "Family quotient but random area" msgid "Family quotient but random area"
msgstr "Quotient familial mais territoire aléatoire" msgstr "Quotient familial mais territoire aléatoire"
@ -116,6 +116,11 @@ msgstr "La borne basse du quotient familial fait partie d'une tranche existante.
msgid "Family quotient slice" msgid "Family quotient slice"
msgstr "Tranche de quotient familial" 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 #. 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 #: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_family_quotient_to
msgid "Family quotient to" msgid "Family quotient to"
@ -147,16 +152,21 @@ msgstr "GOLEM Activity Registration Invoicing Lines"
msgid "GOLEM Member" msgid "GOLEM Member"
msgstr "Usager" 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 #. module: golem_activity_registration_custom_price
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_familyquotient_slice #: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_familyquotient_slice
msgid "GOLEM Payment Rule Family Quotient Slice" msgid "GOLEM Payment Rule Family Quotient Slice"
msgstr "GOLEM Payment Rule Family Quotient Slice" msgstr "GOLEM Payment Rule Family Quotient Slice"
#. module: golem_activity_registration_custom_price
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_geo
msgid "GOLEM Payment Rule Geo"
msgstr "GOLEM Payment Rule Geo"
#. module: golem_activity_registration_custom_price #. 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_activity_price_line_id
#: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_id #: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_id
@ -206,6 +216,11 @@ msgstr "Lignes tarifaires"
msgid "Prices" msgid "Prices"
msgstr "Tarifs" 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 #. module: golem_activity_registration_custom_price
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_menu #: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_menu
msgid "Pricing rules" msgid "Pricing rules"
@ -226,11 +241,16 @@ msgstr "Prix de vente"
msgid "Sequence" msgid "Sequence"
msgstr "Séquence" 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 #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:49 #: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:49
#, python-format #, python-format
msgid "The 'to' family quotient must be higher than the 'from' one." msgid "The 'to' family quotient must be higher than the 'from' one."
msgstr "La borne haute du quotient familial doit être supérieur à la borne basse." msgstr "La borne haute du quotient familial doit être supérieure à la borne basse."
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_activity_price_line.py:30 #: code:addons/golem_activity_registration_custom_price/models/golem_activity_price_line.py:30

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-03 23:02+0000\n" "POT-Creation-Date: 2019-01-21 10:20+0000\n"
"PO-Revision-Date: 2018-08-03 23:02+0000\n" "PO-Revision-Date: 2019-01-21 10:20+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -70,7 +70,7 @@ msgid "Current family quotient slice cannot be included into another existing sl
msgstr "" msgstr ""
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:29 #: code:addons/golem_activity_registration_custom_price/models/golem_member.py:30
#: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_registration_invoicing_form_inherit_custom_price #: model:ir.ui.view,arch_db:golem_activity_registration_custom_price.golem_activity_registration_invoicing_form_inherit_custom_price
#, python-format #, python-format
msgid "Default price" msgid "Default price"
@ -89,13 +89,13 @@ msgid "Family Quotients"
msgstr "" msgstr ""
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:61 #: code:addons/golem_activity_registration_custom_price/models/golem_member.py:62
#, python-format #, python-format
msgid "Family quotient and area" msgid "Family quotient and area"
msgstr "" msgstr ""
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_member.py:59 #: code:addons/golem_activity_registration_custom_price/models/golem_member.py:60
#, python-format #, python-format
msgid "Family quotient but random area" msgid "Family quotient but random area"
msgstr "" msgstr ""
@ -116,6 +116,11 @@ msgstr ""
msgid "Family quotient slice" msgid "Family quotient slice"
msgstr "" 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 #. 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 #: model:ir.model.fields,field_description:golem_activity_registration_custom_price.field_golem_payment_rule_familyquotient_slice_family_quotient_to
msgid "Family quotient to" msgid "Family quotient to"
@ -148,13 +153,18 @@ msgid "GOLEM Member"
msgstr "" msgstr ""
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_familyquotient_slice #: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member_analysis_wizard
msgid "GOLEM Payment Rule Family Quotient Slice" msgid "GOLEM Members Analysis Wizard Adaptation"
msgstr "" msgstr ""
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
#: model:ir.model,name:golem_activity_registration_custom_price.model_golem_payment_rule_geo #: model:ir.model,name:golem_activity_registration_custom_price.model_golem_member_analysis
msgid "GOLEM Payment Rule Geo" 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 "" msgstr ""
#. module: golem_activity_registration_custom_price #. module: golem_activity_registration_custom_price
@ -206,6 +216,11 @@ msgstr ""
msgid "Prices" msgid "Prices"
msgstr "" 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 #. module: golem_activity_registration_custom_price
#: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_menu #: model:ir.ui.menu,name:golem_activity_registration_custom_price.golem_payment_rule_menu
msgid "Pricing rules" msgid "Pricing rules"
@ -226,6 +241,11 @@ msgstr ""
msgid "Sequence" msgid "Sequence"
msgstr "" 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 #. module: golem_activity_registration_custom_price
#: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:49 #: code:addons/golem_activity_registration_custom_price/models/golem_payment_rule_quotient_slice.py:49
#, python-format #, python-format

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # 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 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -43,7 +44,7 @@ class GolemActivity(models.Model):
existing_combinations = [u'%s-%s' % (line.area_id.id, line.slice_id.id) existing_combinations = [u'%s-%s' % (line.area_id.id, line.slice_id.id)
for line in activity.price_line_ids] for line in activity.price_line_ids]
slice_ids = self.env['golem.payment.rule.familyquotient.slice'].search([]) slice_ids = self.env['golem.payment.rule.familyquotient.slice'].search([])
for area_id in self.env['golem.partner.area'].search([]): for area_id in self.env['golem.partner.area'].search([('parent_id', '=', False)]):
for slice_id in slice_ids: for slice_id in slice_ids:
combination = u'%s-%s' % (area_id.id, slice_id.id) combination = u'%s-%s' % (area_id.id, slice_id.id)
if combination not in existing_combinations: if combination not in existing_combinations:

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # 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 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -40,7 +41,7 @@ class GolemMember(models.Model):
area_ids = self.env['golem.partner.area'].search([]) area_ids = self.env['golem.partner.area'].search([])
if member.area_id: if member.area_id:
applicable_areas += area_ids.filtered( applicable_areas += area_ids.filtered(
lambda r: r == member.area_id lambda r: r == member.area_id.root_id
) )
if not applicable_areas and area_ids: if not applicable_areas and area_ids:
applicable_areas += area_ids[0] applicable_areas += area_ids[0]

View File

@ -1,5 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 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_user,Access GOLEM Payment Rule Familyquotient Slice User,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_user,1,0,0,0
access_golem_payment_rule_familyquotient_slice_manager,Access GOLEM Payment Rule Familyquotient Slice Manager,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_manager,0,1,1,1 access_golem_payment_rule_familyquotient_slice_manager,Access GOLEM Payment Rule Familyquotient Slice Manager,model_golem_payment_rule_familyquotient_slice,golem_base.group_golem_manager,1,1,1,1
access_golem_activity_priceline_auditor,Access GOLEM Activity Price Line Auditor,model_golem_activity_price_line,golem_base.group_golem_auditor,1,0,0,0
access_golem_activity_priceline_user,Access GOLEM Activity Price Line User,model_golem_activity_price_line,golem_base.group_golem_user,1,0,0,0 access_golem_activity_priceline_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 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 0 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

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Menus --> <!-- Menus -->
<menuitem id="golem_payment_rule_menu" name="Pricing rules" <menuitem id="golem_payment_rule_menu" name="Pricing rules"
parent="golem_activity.golem_activity_menu_configuration" parent="golem_activity.golem_activity_menu_configuration"
groups="golem_base.group_golem_manager" sequence="20" /> groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" sequence="20" />
<menuitem id="golem_payment_rule_qfslice_menu" name="Family Quotients" <menuitem id="golem_payment_rule_qfslice_menu" name="Family Quotients"
parent="golem_payment_rule_menu" action="golem_payment_rule_qfslice_action" parent="golem_payment_rule_menu" action="golem_payment_rule_qfslice_action"
sequence="10" /> sequence="10" />

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -15,4 +15,5 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import golem_activity_registration_invoicing from . import (golem_activity_registration_invoicing,
golem_member_analysis, golem_member_analysis_wizard)

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

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -19,7 +20,7 @@
'name': 'GOLEM Activity Member Registration Payments', 'name': 'GOLEM Activity Member Registration Payments',
'summary': 'GOLEM Activities Member Registration Payments', 'summary': 'GOLEM Activities Member Registration Payments',
'description': 'GOLEM Activities Member Registration Payments', 'description': 'GOLEM Activities Member Registration Payments',
'version': '10.0.0.3.6', 'version': '10.0.0.7.1',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',
@ -29,5 +30,7 @@
'data': ['views/golem_member_views.xml', 'data': ['views/golem_member_views.xml',
'views/golem_activity_registration_views.xml', 'views/golem_activity_registration_views.xml',
'report/golem_member_card_templates.xml', 'report/golem_member_card_templates.xml',
'wizard/golem_activity_registration_invoicing.xml'] 'wizard/golem_activity_registration_invoicing.xml',
'views/golem_activity_views.xml',
'views/account_invoice.xml']
} }

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-27 10:09+0000\n" "POT-Creation-Date: 2019-01-21 11:30+0000\n"
"PO-Revision-Date: 2018-08-27 12:10+0200\n" "PO-Revision-Date: 2019-01-21 12:31+0100\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -49,7 +49,7 @@ msgid "Activity id"
msgstr "Activité liée" msgstr "Activité liée"
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:76 #: code:addons/golem_activity_registration_payment/models/golem_member.py:78
#, python-format #, python-format
msgid "All confirmed registrations had already been invoiced." msgid "All confirmed registrations had already been invoiced."
msgstr "Toutes les inscriptions confirmées ont déjà été facturées." msgstr "Toutes les inscriptions confirmées ont déjà été facturées."
@ -60,6 +60,11 @@ msgstr "Toutes les inscriptions confirmées ont déjà été facturées."
msgid "Amount" msgid "Amount"
msgstr "Montant" 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 #. module: golem_activity_registration_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_activity_registration_search_inherit_payment
msgid "By invoice state" msgid "By invoice state"
@ -124,6 +129,18 @@ msgstr "Afficher les paiements"
msgid "Draft Invoice" msgid "Draft Invoice"
msgstr "Facture en brouillon" 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 #. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration #: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration
msgid "GOLEM Activity Registration" msgid "GOLEM Activity Registration"
@ -145,14 +162,14 @@ msgid "GOLEM Member"
msgstr "Adhérent" msgstr "Adhérent"
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:151 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id #: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
#, python-format #, python-format
msgid "Generated invoice" msgid "Generated invoice"
msgstr "Facture générée" msgstr "Facture générée"
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:166 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids #: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
#, python-format #, python-format
msgid "Generated payments" msgid "Generated payments"
@ -249,6 +266,11 @@ msgstr "Dernière mise à jour par"
msgid "Last Updated on" msgid "Last Updated on"
msgstr "Dernière mise à jour le" 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 #. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id #: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id
msgid "Member" msgid "Member"
@ -311,7 +333,7 @@ msgid "Registration id"
msgstr "Inscription" msgstr "Inscription"
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:69 #: code:addons/golem_activity_registration_payment/models/golem_member.py:71
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form #: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
#, python-format #, python-format
msgid "Registration invoicing" msgid "Registration invoicing"
@ -339,17 +361,22 @@ msgid "Status"
msgstr "État" msgstr "État"
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:147 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
#, python-format #, python-format
msgid "There is no generated invoice." msgid "There is no generated invoice."
msgstr "Il n'y a pas de facture générée." msgstr "Il n'y a pas de facture générée."
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:162 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
#, python-format #, python-format
msgid "There is no generated payments." msgid "There is no generated payments."
msgstr "Il n'y a pas de paiement généré." 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 #. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form #: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Total" msgid "Total"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-27 10:09+0000\n" "POT-Creation-Date: 2019-01-21 11:30+0000\n"
"PO-Revision-Date: 2018-08-27 10:09+0000\n" "PO-Revision-Date: 2019-01-21 11:30+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -45,7 +45,7 @@ msgid "Activity id"
msgstr "" msgstr ""
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:76 #: code:addons/golem_activity_registration_payment/models/golem_member.py:78
#, python-format #, python-format
msgid "All confirmed registrations had already been invoiced." msgid "All confirmed registrations had already been invoiced."
msgstr "" msgstr ""
@ -56,6 +56,11 @@ msgstr ""
msgid "Amount" msgid "Amount"
msgstr "" 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 #. module: golem_activity_registration_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_activity_registration_search_inherit_payment
msgid "By invoice state" msgid "By invoice state"
@ -120,6 +125,18 @@ msgstr ""
msgid "Draft Invoice" msgid "Draft Invoice"
msgstr "" 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 #. module: golem_activity_registration_payment
#: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration #: model:ir.model,name:golem_activity_registration_payment.model_golem_activity_registration
msgid "GOLEM Activity Registration" msgid "GOLEM Activity Registration"
@ -141,14 +158,14 @@ msgid "GOLEM Member"
msgstr "" msgstr ""
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:151 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id #: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
#, python-format #, python-format
msgid "Generated invoice" msgid "Generated invoice"
msgstr "" msgstr ""
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:166 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids #: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
#, python-format #, python-format
msgid "Generated payments" msgid "Generated payments"
@ -245,6 +262,11 @@ msgstr ""
msgid "Last Updated on" msgid "Last Updated on"
msgstr "" 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 #. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id #: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id
msgid "Member" msgid "Member"
@ -307,7 +329,7 @@ msgid "Registration id"
msgstr "" msgstr ""
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/models/golem_member.py:69 #: code:addons/golem_activity_registration_payment/models/golem_member.py:71
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form #: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
#, python-format #, python-format
msgid "Registration invoicing" msgid "Registration invoicing"
@ -335,17 +357,22 @@ msgid "Status"
msgstr "" msgstr ""
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:147 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
#, python-format #, python-format
msgid "There is no generated invoice." msgid "There is no generated invoice."
msgstr "" msgstr ""
#. module: golem_activity_registration_payment #. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:162 #: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
#, python-format #, python-format
msgid "There is no generated payments." msgid "There is no generated payments."
msgstr "" 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 #. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form #: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Total" msgid "Total"

View File

@ -15,4 +15,4 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import golem_member, golem_activity_registration from . import golem_member, golem_activity_registration, golem_activity

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

@ -31,3 +31,4 @@ class GolemActivityRegistration(models.Model):
invoice_id = fields.Many2one(related='invoice_line_id.invoice_id') invoice_id = fields.Many2one(related='invoice_line_id.invoice_id')
invoice_state = fields.Selection(related='invoice_line_id.invoice_id.state', invoice_state = fields.Selection(related='invoice_line_id.invoice_id.state',
store=True) store=True)
free_activity = fields.Boolean(related='activity_id.free_activity')

View File

@ -35,6 +35,7 @@ class GolemMember(models.Model):
regis = member.activity_registration_ids regis = member.activity_registration_ids
regis = regis.filtered( regis = regis.filtered(
lambda r: (r.state == 'confirmed' and lambda r: (r.state == 'confirmed' and
not r.activity_id.free_activity and
(not r.invoice_line_id or (not r.invoice_line_id or
r.invoice_line_id.invoice_id.state == 'cancel')) r.invoice_line_id.invoice_id.state == 'cancel'))
) )
@ -52,9 +53,10 @@ class GolemMember(models.Model):
self.ensure_one() self.ensure_one()
member = self[0] member = self[0]
registrations = member.activity_registration_ids.filtered( registrations = member.activity_registration_ids.filtered(
lambda r: r.state == 'confirmed' and lambda r: (r.state == 'confirmed' and
not r.activity_id.free_activity and
(not r.invoice_line_id or (not r.invoice_line_id or
r.invoice_line_id.invoice_id.state == 'cancel') r.invoice_line_id.invoice_id.state == 'cancel'))
) )
if registrations: if registrations:
invoicing = self.env['golem.activity.registration.invoicing'].create({ invoicing = self.env['golem.activity.registration.invoicing'].create({

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

@ -45,6 +45,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="inherit_id" <field name="inherit_id"
ref="golem_activity_registration_state.golem_activity_registration_tree_inherit_state" /> ref="golem_activity_registration_state.golem_activity_registration_tree_inherit_state" />
<field name="arch" type="xml"> <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="state" position="after">
<field name="invoice_line_id" invisible="1" /> <field name="invoice_line_id" invisible="1" />
<field name="invoice_state" string="Invoice state" /> <field name="invoice_state" string="Invoice state" />

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

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -29,9 +30,11 @@ class GolemActivityRegistrationInvoicingLine(models.TransientModel):
_description = 'GOLEM Activity Registration Invoicing Lines' _description = 'GOLEM Activity Registration Invoicing Lines'
invoicing_id = fields.Many2one('golem.activity.registration.invoicing', invoicing_id = fields.Many2one('golem.activity.registration.invoicing',
required=True) required=True, ondelete='cascade')
registration_id = fields.Many2one('golem.activity.registration', required=True) registration_id = fields.Many2one('golem.activity.registration', required=True,
activity_id = fields.Many2one('golem.activity', required=True, readonly=True) ondelete='cascade')
activity_id = fields.Many2one('golem.activity', required=True, readonly=True,
ondelete='cascade')
price = fields.Monetary() price = fields.Monetary()
currency_id = fields.Many2one(related='activity_id.currency_id') currency_id = fields.Many2one(related='activity_id.currency_id')
@ -62,7 +65,6 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
ondelete='cascade') ondelete='cascade')
payment_ids = fields.Many2many('account.payment', string='Generated payments') payment_ids = fields.Many2many('account.payment', string='Generated payments')
def _create_invoice_line(self, product, price, invoice): def _create_invoice_line(self, product, price, invoice):
""" Create invoice line : needs cache record for onchange, then real """ Create invoice line : needs cache record for onchange, then real
writing... """ writing... """
@ -81,14 +83,22 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
def _create_invoice(self): def _create_invoice(self):
""" Create invoice and lines """ """ Create invoice and lines """
self.ensure_one() self.ensure_one()
partner = self.member_id.partner_id partner = self[0].member_id.partner_id
#check if there is a draft invoice for the current customer
member_line = partner.member_lines.filtered(
lambda ml: (ml.membership_id.membership_season_id == self.season_id
and ml.account_invoice_id.state == 'draft')
)
if member_line:
invoice = member_line[0].account_invoice_id
else:
invoice = self.env['account.invoice'].create({ invoice = self.env['account.invoice'].create({
'partner_id': partner.id, 'partner_id': partner.id,
'account_id': partner.property_account_receivable_id.id, 'account_id': partner.property_account_receivable_id.id,
'fiscal_position_id': partner.property_account_position_id.id 'fiscal_position_id': partner.property_account_position_id.id
}) })
for line in self.line_ids: for line in self.line_ids:
product = line.activity_id.product_id product = line.activity_id.product_id.product_variant_id
invoice_line = self._create_invoice_line(product, line.price, invoice) invoice_line = self._create_invoice_line(product, line.price, invoice)
line.registration_id.invoice_line_id = invoice_line.id line.registration_id.invoice_line_id = invoice_line.id
return invoice return invoice
@ -146,10 +156,14 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
if not self.invoice_id: if not self.invoice_id:
uerr = _('There is no generated invoice.') uerr = _('There is no generated invoice.')
raise UserError(uerr) 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 { return {
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'name': _('Generated invoice'), 'name': _('Generated invoice'),
'view_mode': 'form,tree', 'view_mode': 'form',
'view_id': form_view_id.id,
'res_model': 'account.invoice', 'res_model': 'account.invoice',
'res_id': self[0].invoice_id.id 'res_id': self[0].invoice_id.id
} }

View File

@ -2,6 +2,7 @@
<!-- <!--
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> 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 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 it under the terms of the GNU Affero General Public License as published by

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

@ -15,4 +15,4 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # 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 -*- # -*- coding: utf-8 -*-
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -19,7 +19,7 @@
'name': 'GOLEM Activity Session Member Registrations States', 'name': 'GOLEM Activity Session Member Registrations States',
'summary': 'GOLEM Activities Session Member Registration states', 'summary': 'GOLEM Activities Session Member Registration states',
'description': 'GOLEM Activities Session Member Registration states', 'description': 'GOLEM Activities Session Member Registration states',
'version': '10.0.2.2.0', 'version': '10.0.2.3.0',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',

View File

@ -18,7 +18,7 @@
""" GOLEM Activity Registration State """ """ GOLEM Activity Registration State """
from odoo import models, fields, api, _ from odoo import models, fields, api, _
from odoo.exceptions import UserError from odoo.exceptions import UserError, ValidationError
class GolemMember(models.Model): class GolemMember(models.Model):
""" GOLEM Member adaptations """ """ GOLEM Member adaptations """
@ -89,9 +89,10 @@ class GolemActivityRegistration(models.Model):
def state_remove(self): def state_remove(self):
""" Remove registrations, only if canceled """ """ Remove registrations, only if canceled """
if self.filtered(lambda r: r.state != 'canceled'): if self.filtered(lambda r: r.state != 'canceled'):
uerr = _('You can not confirm a canceled registration.') uerr = _('You can not remove a uncanceled registration.')
raise UserError(uerr) raise UserError(uerr)
self.unlink() self.unlink()
return {'type': 'ir.actions.client', 'tag': 'reload'}
@api.multi @api.multi
def write(self, values): def write(self, values):

View File

@ -45,20 +45,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<attribute name="delete">0</attribute> <attribute name="delete">0</attribute>
</tree> </tree>
<tree position="inside"> <tree position="inside">
<field name="id" invisible="1" />
<field name="state" readonly="1" /> <field name="state" readonly="1" />
<button type="object" name="state_draft" string="Reset to draft" <button type="object" name="state_draft" string="Reset to draft"
icon="fa-arrow-up" attrs="{'invisible': [('state', '=', 'draft')]}" icon="fa-arrow-up" attrs="{'invisible': ['|', ('id', '=', False), ('state', '=', 'draft')]}"
invisible="not context.get('action_show', 1)" /> invisible="not context.get('action_show', 1)" />
<button type="object" name="state_confirm" string="Confirm" <button type="object" name="state_confirm" string="Confirm"
icon="fa-check" attrs="{'invisible': [('state', '!=', 'draft')]}" icon="fa-check" attrs="{'invisible': ['|', ('id', '=', False), ('state', '!=', 'draft')]}"
invisible="not context.get('action_show', 1)" /> invisible="not context.get('action_show', 1)" />
<button type="object" name="state_cancel" string="Cancel" <button type="object" name="state_cancel" string="Cancel"
icon="fa-ban" attrs="{'invisible': [('state', '=', 'canceled')]}" icon="fa-ban" attrs="{'invisible': ['|', ('id', '=', False), ('state', '=', 'canceled')]}"
invisible="not context.get('action_show', 1)" /> invisible="not context.get('action_show', 1)" />
<button type="object" name="state_remove" string="Remove" <button type="object" name="state_remove" string="Remove"
icon="fa-trash" icon="fa-trash"
confirm="Are you sure you want to remove this subscription ?" confirm="Are you sure you want to remove this subscription ?"
attrs="{'invisible': [('state', '!=', 'canceled')]}" attrs="{'invisible': ['|', ('id', '=', False), ('state', '!=', 'canceled')]}"
invisible="not context.get('action_show', 1)" /> invisible="not context.get('action_show', 1)" />
</tree> </tree>
</field> </field>

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

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

@ -14,3 +14,5 @@
# #
# You should have received a copy of the GNU Affero General Public License # 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/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import models

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -22,7 +22,7 @@
- New application on top menu ; - New application on top menu ;
- Management of users and groups, companies ; - Management of users and groups, companies ;
- Good default access / rights to do. ''', - Good default access / rights to do. ''',
'version': '10.0.0.1.0', 'version': '10.0.0.1.4',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',

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 res_partner

View File

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
""" Partner adaptations """
from odoo import models, fields, api
class Partner(models.Model):
""" Partner adaptations """
_inherit = 'res.partner'
signup_token = fields.Char(groups="golem_base.group_golem_manager")
signup_type = fields.Char(groups="golem_base.group_golem_manager")
signup_expiration = fields.Datetime(groups="golem_base.group_golem_manager")
@api.multi
def write(self, vals):
""" Overwrite native function to workaround admin only write on fields
signup*, as it's impossible to overwrite groups attribute """
if (('signup_token' in vals or 'signup_type' in vals or
'signup_expiration' in vals)
and self.env.user.has_group('golem_base.group_golem_manager')):
return super(Partner, self.sudo()).write(vals)
return super(Partner, self).write(vals)

View File

@ -4,3 +4,8 @@ access_res_users_group_golem_manager,Access Users GOLEM Manager,base.model_res_u
access_res_groups_group_golem_manager,Access Groups GOLEM Manager,base.model_res_groups,golem_base.group_golem_manager,1,1,0,0 access_res_groups_group_golem_manager,Access Groups GOLEM Manager,base.model_res_groups,golem_base.group_golem_manager,1,1,0,0
access_ir_module_category_group_golem_manager,Access IR Module Category GOLEM Manager,base.model_ir_module_category,golem_base.group_golem_manager,1,0,0,0 access_ir_module_category_group_golem_manager,Access IR Module Category GOLEM Manager,base.model_ir_module_category,golem_base.group_golem_manager,1,0,0,0
access_ir_ui_view_group_golem_manager,Access IR UI View GOLEM Manager,base.model_ir_ui_view,golem_base.group_golem_manager,1,1,0,0 access_ir_ui_view_group_golem_manager,Access IR UI View GOLEM Manager,base.model_ir_ui_view,golem_base.group_golem_manager,1,1,0,0
access_res_company_group_golem_auditor,Access Companies GOLEM Auditor,base.model_res_company,golem_base.group_golem_auditor,1,0,0,0
access_res_users_group_golem_auditor,Access Users GOLEM Auditor,base.model_res_users,golem_base.group_golem_auditor,1,0,0,0
access_res_groups_group_golem_auditor,Access Groups GOLEM Auditor,base.model_res_groups,golem_base.group_golem_auditor,1,0,0,0
access_ir_module_category_group_golem_auditor,Access IR Module Category GOLEM Auditor,base.model_ir_module_category,golem_base.group_golem_auditor,1,0,0,0
access_ir_ui_view_group_golem_auditor,Access IR UI View GOLEM Auditor,base.model_ir_ui_view,golem_base.group_golem_auditor,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
4 access_res_groups_group_golem_manager Access Groups GOLEM Manager base.model_res_groups golem_base.group_golem_manager 1 1 0 0
5 access_ir_module_category_group_golem_manager Access IR Module Category GOLEM Manager base.model_ir_module_category golem_base.group_golem_manager 1 0 0 0
6 access_ir_ui_view_group_golem_manager Access IR UI View GOLEM Manager base.model_ir_ui_view golem_base.group_golem_manager 1 1 0 0
7 access_res_company_group_golem_auditor Access Companies GOLEM Auditor base.model_res_company golem_base.group_golem_auditor 1 0 0 0
8 access_res_users_group_golem_auditor Access Users GOLEM Auditor base.model_res_users golem_base.group_golem_auditor 1 0 0 0
9 access_res_groups_group_golem_auditor Access Groups GOLEM Auditor base.model_res_groups golem_base.group_golem_auditor 1 0 0 0
10 access_ir_module_category_group_golem_auditor Access IR Module Category GOLEM Auditor base.model_ir_module_category golem_base.group_golem_auditor 1 0 0 0
11 access_ir_ui_view_group_golem_auditor Access IR UI View GOLEM Auditor base.model_ir_ui_view golem_base.group_golem_auditor 1 0 0 0

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -23,16 +23,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Menus --> <!-- Menus -->
<menuitem id="security_menu" name="Security" sequence="400" <menuitem id="security_menu" name="Security" sequence="400"
web_icon="golem_admin,static/description/icon.png" web_icon="golem_admin,static/description/icon.png"
groups="golem_base.group_golem_manager" /> groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
<menuitem id="res_groups_menu" action="base.action_res_groups" <menuitem id="res_groups_menu" action="base.action_res_groups"
parent="security_menu" sequence="10" parent="security_menu" sequence="10"
groups="golem_base.group_golem_manager" /> groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
<menuitem id="res_users_menu" action="base.action_res_users" <menuitem id="res_users_menu" action="base.action_res_users"
parent="security_menu" sequence="5" parent="security_menu" sequence="5"
groups="golem_base.group_golem_manager" /> groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
<menuitem id="res_company_menu" action="base.action_res_company_form" <menuitem id="res_company_menu" action="base.action_res_company_form"
parent="security_menu" sequence="10" parent="security_menu" sequence="10"
groups="golem_base.group_golem_manager" /> groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
</data> </data>
</odoo> </odoo>

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2016-2020 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2020 Youssef El Ouahby <youssef@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -18,14 +19,14 @@
{ {
'name': 'GOLEM base module for global dependencies', 'name': 'GOLEM base module for global dependencies',
'summary': 'GOLEM base installs base and shared dependencies for GOLEM', 'summary': 'GOLEM base installs base and shared dependencies for GOLEM',
'version': '10.0.1.0.5', 'version': '10.0.1.1.2',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',
'application': False, 'application': False,
'installable': True, 'installable': True,
'depends': ['document', 'report', 'membership', 'contacts', 'mail', 'depends': ['document', 'report', 'membership', 'contacts', 'mail',
'account_voucher', 'partner_firstname', 'account', 'account_voucher', 'partner_firstname',
'partner_contact_birthdate', 'partner_contact_gender', 'partner_contact_birthdate', 'partner_contact_gender',
'l10n_fr', 'l10n_fr_state', 'l10n_fr_department', 'l10n_fr', 'l10n_fr_state', 'l10n_fr_department',
'l10n_fr_siret', 'l10n_fr_siret',
@ -34,6 +35,7 @@
'web_responsive', 'backend_theme_v10', 'web_responsive', 'backend_theme_v10',
'web_widget_x2many_2d_matrix'], 'web_widget_x2many_2d_matrix'],
'data': ['security/golem_security.xml', 'data': ['security/golem_security.xml',
'security/ir.model.access.csv',
'views/menus.xml', 'views/menus.xml',
'views/yaltik_base_assets.xml'] 'views/yaltik_base_assets.xml']
} }

View File

@ -6,15 +6,19 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-01 14:19+0000\n" "POT-Creation-Date: 2020-05-28 16:28+0000\n"
"PO-Revision-Date: 2017-06-28 17:30+0000\n" "PO-Revision-Date: 2020-05-28 18:36+0200\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: fr\n" "Plural-Forms: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: golem_base
#: model:res.groups,name:golem_base.group_golem_auditor
msgid "GOLEM Auditor"
msgstr "Auditeur"
#. module: golem_base #. module: golem_base
#: model:res.groups,name:golem_base.group_golem_manager #: model:res.groups,name:golem_base.group_golem_manager
@ -31,6 +35,11 @@ msgstr "Utilisateur"
msgid "Membership Products" msgid "Membership Products"
msgstr "Types d'adhésions" msgstr "Types d'adhésions"
#. module: golem_base
#: model:ir.model,name:golem_base.model_ir_mail_server
msgid "ir.mail_server"
msgstr "ir.mail_server"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.action_res_company_form #: model:ir.actions.act_window,name:base.action_res_company_form
#: model:ir.actions.act_window,name:base.company_normal_action_tree #: model:ir.actions.act_window,name:base.company_normal_action_tree

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-01 14:19+0000\n" "POT-Creation-Date: 2020-05-28 16:28+0000\n"
"PO-Revision-Date: 2017-05-01 14:19+0000\n" "PO-Revision-Date: 2020-05-28 16:28+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -15,6 +15,11 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#. module: golem_base
#: model:res.groups,name:golem_base.group_golem_auditor
msgid "GOLEM Auditor"
msgstr ""
#. module: golem_base #. module: golem_base
#: model:res.groups,name:golem_base.group_golem_manager #: model:res.groups,name:golem_base.group_golem_manager
msgid "GOLEM Manager" msgid "GOLEM Manager"
@ -30,3 +35,8 @@ msgstr ""
msgid "Membership Products" msgid "Membership Products"
msgstr "" msgstr ""
#. module: golem_base
#: model:ir.model,name:golem_base.model_ir_mail_server
msgid "ir.mail_server"
msgstr ""

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -21,8 +21,27 @@ from odoo import models, fields
class IrMailServer(models.Model): class IrMailServer(models.Model):
"""IR Mail Server fix for >64 characters pass """ """ IR Mail Server adaptations """
_inherit = 'ir.mail_server' _inherit = 'ir.mail_server'
# IR Mail Server fix for >64 characters pass
smtp_user = fields.Char(size=100) smtp_user = fields.Char(size=100)
smtp_pass = fields.Char(size=100) smtp_pass = fields.Char(size=100)
def build_email(self, email_from, email_to, subject, body, email_cc=None,
email_bcc=None, reply_to=False, attachments=None,
message_id=None, references=None, object_id=False,
subtype='plain', headers=None, body_alternative=None,
subtype_alternative='plain'):
""" Overwrite to supercharge from_to """
get_param = self.env['ir.config_parameter'].sudo().get_param
force_email_from = get_param('mail.force.email_from', email_from)
if force_email_from != email_from:
email_from = force_email_from
reply_to = force_email_from
msg = super(IrMailServer, self).build_email(
email_from, email_to, subject, body, email_cc, email_bcc,
reply_to, attachments, message_id, references, object_id, subtype,
headers, body_alternative, subtype_alternative
)
return msg

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?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 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 it under the terms of the GNU Affero General Public License as published by
@ -20,6 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<odoo> <odoo>
<data noupdate="0"> <data noupdate="0">
<!-- Groups --> <!-- Groups -->
<record id="base.group_partner_manager" model="res.groups">
<field name="category_id" ref="base.module_category_golem"/>
</record>
<record id="group_golem_user" model="res.groups"> <record id="group_golem_user" model="res.groups">
<field name="name">GOLEM user</field> <field name="name">GOLEM user</field>
<field name="category_id" <field name="category_id"
@ -30,6 +33,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
ref('base.group_partner_manager'), ref('base.group_partner_manager'),
ref('account.group_account_invoice')])]"/> ref('account.group_account_invoice')])]"/>
</record> </record>
<record id="group_golem_auditor" model="res.groups">
<field name="name">GOLEM Auditor</field>
<field name="category_id" ref="base.module_category_golem"/>
<field name="implied_ids" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="group_golem_manager" model="res.groups"> <record id="group_golem_manager" model="res.groups">
<field name="name">GOLEM Manager</field> <field name="name">GOLEM Manager</field>
<field name="category_id" ref="base.module_category_golem"/> <field name="category_id" ref="base.module_category_golem"/>

View File

@ -0,0 +1,11 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_res_partner_auditor,Access Res Partner Auditor,base.model_res_partner,golem_base.group_golem_auditor,1,0,0,0
access_res_partner_category_auditor,Access Res Partner Category Auditor,base.model_res_partner_category,golem_base.group_golem_auditor,1,0,0,0
access_account_invoice_auditor,Access Account Invoice Auditor,account.model_account_invoice,golem_base.group_golem_auditor,1,0,0,0
access_account_invoice_tax_auditor,Access Account Invoice Tax Auditor,account.model_account_invoice_tax,group_golem_auditor,1,0,0,0
access_account_invoice_line_auditor,Access Account Invoice Line Auditor,account.model_account_invoice_line,group_golem_auditor,1,0,0,0
access_account_move_line_auditor,Access Account Move Line Auditor,account.model_account_move_line,group_golem_auditor,1,0,0,0
access_account_journal_auditor,Access Account Journal Auditor,account.model_account_journal,group_golem_auditor,1,0,0,0
access_account_voucher_auditor,Access Account Voucher Auditor,account_voucher.model_account_voucher,golem_base.group_golem_auditor,1,0,0,0
access_account_voucher_line_auditor,Access Account Voucher Line Auditor,account_voucher.model_account_voucher_line,group_golem_auditor,1,0,0,0
access_account_account_tag_auditor,Access Account Account Tax Auditor,account.model_account_account_tag,group_golem_auditor,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_res_partner_auditor Access Res Partner Auditor base.model_res_partner golem_base.group_golem_auditor 1 0 0 0
3 access_res_partner_category_auditor Access Res Partner Category Auditor base.model_res_partner_category golem_base.group_golem_auditor 1 0 0 0
4 access_account_invoice_auditor Access Account Invoice Auditor account.model_account_invoice golem_base.group_golem_auditor 1 0 0 0
5 access_account_invoice_tax_auditor Access Account Invoice Tax Auditor account.model_account_invoice_tax group_golem_auditor 1 0 0 0
6 access_account_invoice_line_auditor Access Account Invoice Line Auditor account.model_account_invoice_line group_golem_auditor 1 0 0 0
7 access_account_move_line_auditor Access Account Move Line Auditor account.model_account_move_line group_golem_auditor 1 0 0 0
8 access_account_journal_auditor Access Account Journal Auditor account.model_account_journal group_golem_auditor 1 0 0 0
9 access_account_voucher_auditor Access Account Voucher Auditor account_voucher.model_account_voucher golem_base.group_golem_auditor 1 0 0 0
10 access_account_voucher_line_auditor Access Account Voucher Line Auditor account_voucher.model_account_voucher_line group_golem_auditor 1 0 0 0
11 access_account_account_tag_auditor Access Account Account Tax Auditor account.model_account_account_tag group_golem_auditor 1 0 0 0

View File

@ -28,6 +28,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
action="membership.action_membership_products" action="membership.action_membership_products"
parent="membership.menu_marketing_config_association" sequence="20" parent="membership.menu_marketing_config_association" sequence="20"
groups="golem_base.group_golem_manager" /> groups="golem_base.group_golem_manager" />
<menuitem name="Invoicing"
id="account.menu_finance"
groups="account.group_account_user,account.group_account_manager,account.group_account_invoice,group_golem_auditor"
web_icon="account,static/description/icon.png"
sequence="40"/>
<menuitem id="account.menu_finance_configuration"
name="Configuration"
parent="account.menu_finance" sequence="15" groups="account.group_account_invoice,group_golem_auditor"/>
<menuitem id="account.account_account_menu"
name="Accounting"
parent="account.menu_finance_configuration"
sequence="2"
groups="account.group_account_invoice,group_golem_auditor"/>
<!-- Members Analysis for managers only --> <!-- Members Analysis for managers only -->
<record id="membership.menu_report_membership" model="ir.ui.menu"> <record id="membership.menu_report_membership" model="ir.ui.menu">
<field name="groups_id" <field name="groups_id"

17
golem_event/__init__.py Normal file
View File

@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
# Copyright 2020 Youssef EL OUAHBY <youssef@yaltik.com>
# Copyright 2020 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Copyright 2020 Youssef EL OUAHBY <youssef@yaltik.com>
# Copyright 2020 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{
'name': 'GOLEM events',
'summary': 'Extends Odoo events',
'description': 'Extends Odoo events',
'version': '10.0.0.1.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Youssef EL OUAHBY',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['golem_base', 'event'],
'data': ['views/event_views.xml']
}

27
golem_event/i18n/fr.po Normal file
View File

@ -0,0 +1,27 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * golem_event
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-28 07:40+0000\n"
"PO-Revision-Date: 2020-05-28 09:42+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_event
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
msgid "Current and Upcoming"
msgstr "En cours et à venir"
#. module: golem_event
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
msgid "Current and upcoming events from today"
msgstr "Événements en cours et à venir par rapport à aujourd'hui"

View File

@ -0,0 +1,27 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * golem_event
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-28 07:40+0000\n"
"PO-Revision-Date: 2020-05-28 07:40+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_event
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
msgid "Current and Upcoming"
msgstr ""
#. module: golem_event
#: model:ir.ui.view,arch_db:golem_event.golem_event_inherit_view_event_search
msgid "Current and upcoming events from today"
msgstr ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2020 Youssef EL OUAHBY <youssef@yaltik.com>
Copyright 2020 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo>
<data>
<!-- Search -->
<record id="golem_event_inherit_view_event_search" model="ir.ui.view">
<field name="name">Event Search Adaptations</field>
<field name="inherit_id" ref="event.view_event_search"/>
<field name="model">event.event</field>
<field name="arch" type="xml">
<filter name="upcoming" position="replace">
<filter string="Current and Upcoming" name="upcoming"
domain="['&amp;', ('state', '!=', 'cancel'), '|',
('date_begin','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0))),
('date_end','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]"
help="Current and upcoming events from today" />
</filter>
</field>
</record>
</data>
</odoo>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2016-2021 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -19,9 +19,9 @@
'name': 'GOLEM families', 'name': 'GOLEM families',
'summary': 'GOLEM Members Families', 'summary': 'GOLEM Members Families',
'description': 'GOLEM Members Families', 'description': 'GOLEM Members Families',
'version': '10.0.2.3.1', 'version': '10.0.2.6.0',
'category': 'GOLEM', 'category': 'GOLEM',
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois, Youssef El Ouahby',
'license': 'AGPL-3', 'license': 'AGPL-3',
'application': False, 'application': False,
'installable': True, 'installable': True,

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-01 10:12+0000\n" "POT-Creation-Date: 2021-01-14 14:45+0000\n"
"PO-Revision-Date: 2018-08-01 12:15+0200\n" "PO-Revision-Date: 2021-01-14 15:45+0100\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -52,6 +52,31 @@ msgstr "<strong>Région</strong> :"
msgid "Address" msgid "Address"
msgstr "Adresse" msgstr "Adresse"
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_id
msgid "Area"
msgstr "Territoire"
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_from_street
msgid "Area from street"
msgstr "Territoire automatique depuis la rue"
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
msgid "Area, quarter..."
msgstr "Lieu, quartier..."
#. module: golem_family
#: model:ir.model.fields,help:golem_family.field_golem_family_area_id
msgid "Area, quarter... for statistics and activity price."
msgstr "Lieu, quartier... pour les statistiques et les tarifs des activités."
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
msgid "By area"
msgstr "Par territoire"
#. module: golem_family #. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_search #: model:ir.ui.view,arch_db:golem_family.golem_family_search
msgid "By city" msgid "By city"
@ -145,8 +170,8 @@ msgid "Family"
msgstr "Famille" msgstr "Famille"
#. module: golem_family #. module: golem_family
#: code:addons/golem_family/models/golem_family.py:50 #: code:addons/golem_family/models/golem_family.py:59
#: code:addons/golem_family/models/golem_family.py:84 #: code:addons/golem_family/models/golem_family.py:93
#, python-format #, python-format
msgid "Family Members" msgid "Family Members"
msgstr "Membres de la famille" msgstr "Membres de la famille"
@ -156,6 +181,13 @@ msgstr "Membres de la famille"
msgid "Family form" msgid "Family form"
msgstr "Fiche Famille" msgstr "Fiche Famille"
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_partner_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_users_family_member_names
msgid "Family member names"
msgstr "Noms des membres de la famille"
#. module: golem_family #. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_form #: model:ir.ui.view,arch_db:golem_family.golem_family_form
msgid "Family members" msgid "Family members"
@ -308,6 +340,16 @@ msgstr "Role"
msgid "Roles" msgid "Roles"
msgstr "Roles" msgstr "Roles"
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_single_parent
msgid "Single parent"
msgstr "Monoparentale"
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
msgid "Single-parent"
msgstr "Monoparentale"
#. module: golem_family #. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_state_id #: model:ir.model.fields,field_description:golem_family.field_golem_family_state_id
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_state_id #: model:ir.model.fields,field_description:golem_family.field_golem_member_family_state_id
@ -388,3 +430,4 @@ msgstr "membres"
#: model:ir.ui.view,arch_db:golem_family.golem_member_form_inherit_golem_family #: model:ir.ui.view,arch_db:golem_family.golem_member_form_inherit_golem_family
msgid "name@example.org" msgid "name@example.org"
msgstr "name@example.org" msgstr "name@example.org"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-01 10:12+0000\n" "POT-Creation-Date: 2021-01-14 14:45+0000\n"
"PO-Revision-Date: 2018-08-01 10:12+0000\n" "PO-Revision-Date: 2021-01-14 14:45+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -52,6 +52,31 @@ msgstr ""
msgid "Address" msgid "Address"
msgstr "" msgstr ""
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_id
msgid "Area"
msgstr ""
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_area_from_street
msgid "Area from street"
msgstr ""
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
msgid "Area, quarter..."
msgstr ""
#. module: golem_family
#: model:ir.model.fields,help:golem_family.field_golem_family_area_id
msgid "Area, quarter... for statistics and activity price."
msgstr ""
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
msgid "By area"
msgstr ""
#. module: golem_family #. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_search #: model:ir.ui.view,arch_db:golem_family.golem_family_search
msgid "By city" msgid "By city"
@ -145,8 +170,8 @@ msgid "Family"
msgstr "" msgstr ""
#. module: golem_family #. module: golem_family
#: code:addons/golem_family/models/golem_family.py:50 #: code:addons/golem_family/models/golem_family.py:59
#: code:addons/golem_family/models/golem_family.py:84 #: code:addons/golem_family/models/golem_family.py:93
#, python-format #, python-format
msgid "Family Members" msgid "Family Members"
msgstr "" msgstr ""
@ -156,6 +181,13 @@ msgstr ""
msgid "Family form" msgid "Family form"
msgstr "" msgstr ""
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_partner_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_users_family_member_names
msgid "Family member names"
msgstr ""
#. module: golem_family #. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_form #: model:ir.ui.view,arch_db:golem_family.golem_family_form
msgid "Family members" msgid "Family members"
@ -308,6 +340,16 @@ msgstr ""
msgid "Roles" msgid "Roles"
msgstr "" msgstr ""
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_single_parent
msgid "Single parent"
msgstr ""
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_search
msgid "Single-parent"
msgstr ""
#. module: golem_family #. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_family_state_id #: model:ir.model.fields,field_description:golem_family.field_golem_family_state_id
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_state_id #: model:ir.model.fields,field_description:golem_family.field_golem_member_family_state_id

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2017 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017-2021 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -41,6 +42,16 @@ class ResPartner(models.Model):
index=True) index=True)
family_count = fields.Integer(related='family_id.count') family_count = fields.Integer(related='family_id.count')
family_member_names = fields.Char(compute='_compute_family_member_names',
index=True, store=True)
@api.depends('family_id', 'family_id.member_ids')
def _compute_family_member_names(self):
""" Computes family member names, for search """
for member in self:
if member.family_id:
member.family_member_names = u', '.join(member.family_id.member_ids.mapped('name'))
@api.multi @api.multi
def button_family_members(self): def button_family_members(self):
""" Go to family view, from partner """ """ Go to family view, from partner """
@ -140,10 +151,15 @@ class GolemFamily(models.Model):
member_ids = fields.One2many('res.partner', 'family_id', 'Members', member_ids = fields.One2many('res.partner', 'family_id', 'Members',
domain=[('is_company', '=', False)]) domain=[('is_company', '=', False)])
single_parent = fields.Boolean()
note = fields.Text() note = fields.Text()
count = fields.Integer(compute='_compute_count', store=True) count = fields.Integer(compute='_compute_count', store=True)
single_parent = fields.Boolean() area_id = fields.Many2one(
'golem.partner.area', index=True, auto_join=True, string='Area',
help="Area, quarter... for statistics and activity price."
)
area_from_street = fields.Boolean(store=False, default=False)
@api.depends('member_ids') @api.depends('member_ids')
def _compute_count(self): def _compute_count(self):
@ -161,6 +177,34 @@ class GolemFamily(models.Model):
'zip': family.member_ids[0].zip, 'zip': family.member_ids[0].zip,
'city': family.member_ids[0].city}) 'city': family.member_ids[0].city})
@api.onchange('street')
def onchange_street(self):
""" Area auto assignement """
for family in self:
mstreet = family.street.strip() if family.street else False
if mstreet and not family.area_id:
street_id = self.env['golem.partner.area.street'].search(
[('name', 'ilike', mstreet)], limit=1
)
if street_id:
family.area_id = street_id.area_id
family.area_from_street = True
@api.constrains('street')
def save_street(self):
""" Save street if no exist """
for family in self:
if family.street and not family.area_from_street:
mstreet = family.street.strip()
street_id = self.env['golem.partner.area.street'].search(
[('name', 'ilike', mstreet)]
)
if not street_id:
self.env['golem.partner.area.street'].create(
{'name': mstreet, 'area_id': family.area_id.id}
)
class GolemFamilyRole(models.Model): class GolemFamilyRole(models.Model):
""" GOLEM Family Role """ """ GOLEM Family Role """
_name = 'golem.family.role' _name = 'golem.family.role'

View File

@ -1,4 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_golem_family_auditor,Access GOLEM Family Auditor,model_golem_family,golem_base.group_golem_auditor,1,0,0,0
access_golem_family_user,Access GOLEM Family User,model_golem_family,golem_base.group_golem_user,1,1,1,1 access_golem_family_user,Access GOLEM Family User,model_golem_family,golem_base.group_golem_user,1,1,1,1
access_golem_family_role_auditor,Access GOLEM Family Role Auditor,model_golem_family_role,golem_base.group_golem_auditor,1,0,0,0
access_golem_family_role_user,Access GOLEM Family Role User,model_golem_family_role,golem_base.group_golem_user,1,0,0,0 access_golem_family_role_user,Access GOLEM Family Role User,model_golem_family_role,golem_base.group_golem_user,1,0,0,0
access_golem_family_role_manager,Access GOLEM Family Role Manager,model_golem_family_role,golem_base.group_golem_manager,1,1,1,1 access_golem_family_role_manager,Access GOLEM Family Role Manager,model_golem_family_role,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_family_auditor Access GOLEM Family Auditor model_golem_family golem_base.group_golem_auditor 1 0 0 0
3 access_golem_family_user Access GOLEM Family User model_golem_family golem_base.group_golem_user 1 1 1 1
4 access_golem_family_role_auditor Access GOLEM Family Role Auditor model_golem_family_role golem_base.group_golem_auditor 1 0 0 0
5 access_golem_family_role_user Access GOLEM Family Role User model_golem_family_role golem_base.group_golem_user 1 0 0 0
6 access_golem_family_role_manager Access GOLEM Family Role Manager model_golem_family_role golem_base.group_golem_manager 1 1 1 1

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
Copyright 2018-2020 Youssef El Ouahby <youssef@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -34,15 +35,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<label for="name" string="Family" class="oe_edit_only" /> <label for="name" string="Family" class="oe_edit_only" />
<field name="name" class="oe_inline" placeholder="Name" /> <field name="name" class="oe_inline" placeholder="Name" />
</h1> </h1>
<label for="single_parent" string="Single-Parent Family"/>
<field name="single_parent"/>
</div> </div>
</group> </group>
<group>
<field name="single_parent" />
</group>
<group string="Address"> <group string="Address">
<group> <group>
<field name="street" placeholder="Street..." /> <field name="street" placeholder="Street..." />
<field name="street2" /> <field name="street2" />
<field name="zip" placeholder="ZIP" /> <field name="zip" placeholder="ZIP" />
<field name="area_id" placeholder="Area, quarter..."
options="{'no_create': true}" />
<field name="city" placeholder="City" /> <field name="city" placeholder="City" />
</group> </group>
<group> <group>
@ -184,14 +188,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="arch" type="xml"> <field name="arch" type="xml">
<search> <search>
<field name="name" /> <field name="name" />
<field name='area_id' />
<field name="zip" /> <field name="zip" />
<field name="city" /> <field name="city" />
<field name="phone" /> <field name="phone" />
<field name="mobile" /> <field name="mobile" />
<field name="email" /> <field name="email" />
<filter name="single_parent" string="Single-parent Family" <filter name="single_parent" string="Single-parent"
domain="[('single_parent', '=', True)]" /> domain="[('single_parent', '=', True)]" />
<group string="Group By"> <group string="Group By">
<filter name='group_by_area_id' string="By area"
context='{"group_by": "area_id"}'/>
<filter name="group_city" string="By city" <filter name="group_city" string="By city"
context="{'group_by': 'city'}"/> context="{'group_by': 'city'}"/>
</group> </group>
@ -207,14 +214,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Menus --> <!-- Menus -->
<menuitem id="golem_family_menu" name="Families" <menuitem id="golem_family_menu" name="Families"
sequence="17" groups="golem_base.group_golem_user" sequence="17"
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
web_icon="golem_family,static/description/icon.png" /> web_icon="golem_family,static/description/icon.png" />
<menuitem id="golem_family_menu_list" name="Families" <menuitem id="golem_family_menu_list" name="Families"
parent="golem_family_menu" action="golem_family_action_list" sequence="1" parent="golem_family_menu" action="golem_family_action_list" sequence="1"
groups="golem_base.group_golem_user" /> groups="golem_base.group_golem_user,golem_base.group_golem_auditor" />
<menuitem id="golem_family_role_menu" name="Roles" <menuitem id="golem_family_role_menu" name="Roles"
parent="golem_family_menu" action="golem_family_role_action" sequence="5" parent="golem_family_menu" action="golem_family_role_action" sequence="5"
groups="golem_base.group_golem_manager" /> groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
</data> </data>
</odoo> </odoo>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> Copyright 2017-2021 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU Affero General Public License as published by
@ -92,6 +92,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="name" position="after"> <field name="name" position="after">
<field name="family_id" /> <field name="family_id" />
<field name="family_member_names" />
</field> </field>
</field> </field>
</record> </record>

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import models

View File

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{
'name': 'GOLEM Families History',
'summary': 'GOLEM Families History',
'description': 'GOLEM Families History',
'version': '10.0.0.1.1',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Youssef El ouahby',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['golem_family'],
'data': ['security/ir.model.access.csv', 'views/golem_family_views.xml']
}

View File

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * golem_family_history
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-26 15:44+0000\n"
"PO-Revision-Date: 2018-10-26 17:46+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_area_id
msgid "Area"
msgstr "Territoire"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_city
msgid "City"
msgstr "Ville"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_country_id
msgid "Country"
msgstr "Pays"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_date
msgid "Created on"
msgstr "Créé le"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_family_id
msgid "Family"
msgstr "Famille"
#. module: golem_family_history
#: model:ir.model,name:golem_family_history.model_golem_family
msgid "GOLEM Family Entity"
msgstr "Famille"
#. module: golem_family_history
#: model:ir.model,name:golem_family_history.model_golem_family_history
msgid "GOLEM Family History Management"
msgstr "GOLEM Family History Management"
#. module: golem_family_history
#: model:ir.ui.view,arch_db:golem_family_history.golem_family_form_inherit_golem_family_history
msgid "History"
msgstr "Historique"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_family_history_ids
msgid "History details"
msgstr "Historique"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_id
msgid "ID"
msgstr "ID"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history___last_update
msgid "Last Modified on"
msgstr "Dernière Modification le"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_member_ids
msgid "Members"
msgstr "Adhérents"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_season_id
msgid "Season"
msgstr "Saison"
#. module: golem_family_history
#: code:addons/golem_family_history/models/golem_family_history.py:30
#: sql_constraint:golem.family.history:0
#, python-format
msgid "You can only have one history line for each family and season combination."
msgstr "Vous ne pouvez avoir qu'une seule ligne par famille par saison."
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_zip_code
msgid "ZIP"
msgstr "Code postal"

View File

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * golem_family_history
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-26 15:44+0000\n"
"PO-Revision-Date: 2018-10-26 15:44+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_area_id
msgid "Area"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_city
msgid "City"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_country_id
msgid "Country"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_uid
msgid "Created by"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_date
msgid "Created on"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_display_name
msgid "Display Name"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_family_id
msgid "Family"
msgstr ""
#. module: golem_family_history
#: model:ir.model,name:golem_family_history.model_golem_family
msgid "GOLEM Family Entity"
msgstr ""
#. module: golem_family_history
#: model:ir.model,name:golem_family_history.model_golem_family_history
msgid "GOLEM Family History Management"
msgstr ""
#. module: golem_family_history
#: model:ir.ui.view,arch_db:golem_family_history.golem_family_form_inherit_golem_family_history
msgid "History"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_family_history_ids
msgid "History details"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_id
msgid "ID"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history___last_update
msgid "Last Modified on"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_uid
msgid "Last Updated by"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_date
msgid "Last Updated on"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_member_ids
msgid "Members"
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_season_id
msgid "Season"
msgstr ""
#. module: golem_family_history
#: code:addons/golem_family_history/models/golem_family_history.py:30
#: sql_constraint:golem.family.history:0
#, python-format
msgid "You can only have one history line for each family and season combination."
msgstr ""
#. module: golem_family_history
#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_zip_code
msgid "ZIP"
msgstr ""

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import golem_family_history, golem_family

View File

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Families Adaptations"""
from odoo import models, fields, api
class GolemFamily(models.Model):
""" GOLEM Family Adaptations """
_inherit = 'golem.family'
family_history_ids = fields.One2many('golem.family.history', 'family_id',
readonly=True, string='History details')
@api.constrains('area_id', 'zip', 'city', 'country_id', 'member_ids')
def save_family_history(self):
""" Saves family history """
default_season = self.env['golem.season'].search([('is_default', '=', True)], limit=1)
for family in self:
history_id = self.env['golem.family.history'].search([
('family_id', '=', family.id),
('season_id', '=', default_season.id)], limit=1)
history_data = {
'zip_code': family.zip,
'area_id': family.area_id.id,
'city': family.city,
'country_id': family.country_id.id,
'member_ids':[(6, False, family.member_ids.ids)]
}
if history_id:
history_id.write(history_data)
else:
history_data.update({'family_id': family.id,
'season_id': default_season.id})
self.env['golem.family.history'].create(history_data)

View File

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Family History Management """
from odoo import models, fields, _
class GolemFamilyHistory(models.Model):
""" GOLEM Family History Management """
_name = 'golem.family.history'
_description = 'GOLEM Family History Management'
_order = 'season_id desc, id desc'
_sql_constraints = [('golem_family_history_family_season_uniq',
'UNIQUE (family_id, season_id)',
_('You can only have one history line for each '
'family and season combination.'))]
family_id = fields.Many2one('golem.family', required=True, auto_join=True,
string='Family', ondelete='cascade')
season_id = fields.Many2one('golem.season', required=True, auto_join=True,
string='Season', ondelete='cascade')
zip_code = fields.Char(string='ZIP')
area_id = fields.Many2one('golem.partner.area', string='Area',
auto_join=True, ondelete='cascade')
city = fields.Char()
country_id = fields.Many2one('res.country', string='Country')
member_ids = fields.Many2many('res.partner', string='Members',
auto_join=True)

View File

@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_golem_family_history_auditor,Access GOLEM Family History Auditor,model_golem_family_history,golem_base.group_golem_auditor,1,0,0,0
access_golem_family_history_user,Access GOLEM Family History User,model_golem_family_history,golem_base.group_golem_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_golem_family_history_auditor Access GOLEM Family History Auditor model_golem_family_history golem_base.group_golem_auditor 1 0 0 0
3 access_golem_family_history_user Access GOLEM Family History User model_golem_family_history golem_base.group_golem_user 1 1 1 1

Some files were not shown because too many files have changed in this diff Show More