Compare commits

..

No commits in common. "master" and "facture_pour_mineur_activite" have entirely different histories.

134 changed files with 377 additions and 3302 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,34 +0,0 @@
# -*- 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,22 +1,15 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_template_auditor,Access Product Template Auditor,product.model_product_template,golem_base.group_golem_auditor,1,0,0,0
access_product_template_user,Access Product Template User,product.model_product_template,golem_base.group_golem_user,1,1,1,0
access_product_template_manager,Access Product Template Manager,product.model_product_template,golem_base.group_golem_manager,1,1,1,1
access_product_product_auditor,Access Product Product Auditor,product.model_product_product,golem_base.group_golem_auditor,1,0,0,0
access_product_product_user,Access Product Product User,product.model_product_product,golem_base.group_golem_user,1,1,1,0
access_product_product_manager,Access Product Product Manager,product.model_product_product,golem_base.group_golem_manager,1,1,1,1
access_product_price_history_auditor,Access Product Price History Auditor,product.model_product_price_history,golem_base.group_golem_auditor,1,0,0,0
access_product_price_history_user,Access Product Price History User,product.model_product_price_history,golem_base.group_golem_user,1,1,1,0
access_product_price_history_manager,Access Product Price History Manager,product.model_product_price_history,golem_base.group_golem_manager,1,1,1,1
access_product_category_auditor,Access Product Category Auditor,product.model_product_category,golem_base.group_golem_auditor,1,0,0,0
access_product_category_user,Access Product Category User,product.model_product_category,golem_base.group_golem_user,1,0,0,0
access_product_category_manager,Access Product Category Manager,product.model_product_category,golem_base.group_golem_manager,1,1,1,1
access_golem_activity_auditor,Access GOLEM Activity Auditor,model_golem_activity,golem_base.group_golem_auditor,1,0,0,0
access_golem_activity_user,Access GOLEM Activity User,model_golem_activity,golem_base.group_golem_user,1,1,1,0
access_golem_activity_manager,Access GOLEM Activity Manager,model_golem_activity,golem_base.group_golem_manager,1,1,1,1
access_golem_activity_type_auditor,Access GOLEM Activity Type Auditor,model_golem_activity_type,golem_base.group_golem_auditor,1,0,0,0
access_golem_activity_type_user,Access GOLEM Activity Type User,model_golem_activity_type,golem_base.group_golem_user,1,1,1,0
access_golem_activity_type_manager,Access GOLEM Activity Type Manager,model_golem_activity_type,golem_base.group_golem_manager,1,1,1,1
access_golem_activity_audience_auditor,Access GOLEM Activity Audience Auditor,model_golem_activity_audience,golem_base.group_golem_auditor,1,0,0,0
access_golem_activity_audience_user,Access GOLEM Activity Audience User,model_golem_activity_audience,golem_base.group_golem_user,1,1,1,0
access_golem_activity_audience_manager,Access GOLEM Activity Audience Manager,model_golem_activity_audience,golem_base.group_golem_manager,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
access_product_template_auditor Access Product Template Auditor product.model_product_template golem_base.group_golem_auditor 1 0 0 0
2 access_product_template_user Access Product Template User product.model_product_template golem_base.group_golem_user 1 1 1 0
3 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
4 access_product_product_user Access Product Product User product.model_product_product golem_base.group_golem_user 1 1 1 0
5 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
6 access_product_price_history_user Access Product Price History User product.model_product_price_history golem_base.group_golem_user 1 1 1 0
7 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
8 access_product_category_user Access Product Category User product.model_product_category golem_base.group_golem_user 1 0 0 0
9 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
10 access_golem_activity_user Access GOLEM Activity User model_golem_activity golem_base.group_golem_user 1 1 1 0
11 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
12 access_golem_activity_type_user Access GOLEM Activity Type User model_golem_activity_type golem_base.group_golem_user 1 1 1 0
13 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
14 access_golem_activity_audience_user Access GOLEM Activity Audience User model_golem_activity_audience golem_base.group_golem_user 1 1 1 0
15 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,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
Copyright 2020 Youssef El Ouahby <youssef@yaltik.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -188,8 +187,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Actions -->
<act_window id="golem_activity_action" name="GOLEM Activities"
res_model="golem.activity" view_mode="tree,form,calendar"
context="{'search_default_season_default': 1}"/>
res_model="golem.activity" view_mode="tree,form,calendar" />
<act_window id="golem_activity_type_action" name="GOLEM Activity Types"
res_model="golem.activity.type" view_mode="tree" />
<act_window id="golem_activity_audience_action" name="GOLEM Activity Audiences"
@ -203,25 +201,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Menus -->
<menuitem id="golem_activity_menu" name="Activities" sequence="30"
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
groups="golem_base.group_golem_user"
web_icon="golem_activity,static/description/icon.png" />
<menuitem id="golem_activity_menu_list" name="Activities"
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
groups="golem_base.group_golem_user"
parent="golem_activity_menu" sequence="1" action="golem_activity_action" />
<menuitem id="golem_activity_menu_configuration" name="Configuration"
parent="golem_activity_menu" sequence="90"
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
groups="golem_base.group_golem_manager" />
<menuitem id="golem_activity_type_menu_list" name="Activity Types"
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
groups="golem_base.group_golem_manager"
parent="golem_activity_menu_configuration" sequence="5"
action="golem_activity_type_action" />
<menuitem id="golem_activity_audience_menu_list" name="Activity Audiences"
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
groups="golem_base.group_golem_manager"
parent="golem_activity_menu_configuration" sequence="7"
action="golem_activity_audience_action" />
<menuitem id="product_category_menu" name="Categories"
parent="golem_activity_menu_configuration" sequence="10"
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor"
groups="golem_base.group_golem_manager"
action="product_category_action" />
</data>

View File

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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
golem_activity_queue_auditor_rule GOLEM Activity Queue Auditor Rule model_golem_activity_queue golem_base.group_golem_auditor 1 0 0 0
2 golem_activity_queue_user_rule GOLEM Activity Queue User Rule model_golem_activity_queue golem_base.group_golem_user 1 1 1 1
3 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
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import models, wizard
from . import models

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -18,7 +18,7 @@
{
'name': 'GOLEM Activity Member Registrations',
'summary': 'GOLEM Activities Member Registrations management',
'version': '10.0.1.6.5',
'version': '10.0.1.5.1',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3',
@ -30,7 +30,5 @@
'views/golem_activity_views.xml',
'report/golem_member_card_templates.xml',
'security/ir.model.access.csv',
'report/golem_activity_report_templates.xml',
'wizard/golem_activity_registration_analysis_wizard_views.xml',
'wizard/golem_member_analysis_views.xml']
'report/golem_activity_report_templates.xml']
}

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-21 10:49+0000\n"
"PO-Revision-Date: 2019-01-21 11:51+0100\n"
"POT-Creation-Date: 2018-09-26 08:25+0000\n"
"PO-Revision-Date: 2018-09-26 10:28+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -53,7 +53,6 @@ msgstr "Activités de la saison par défaut"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_activity_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_analysis_activity_id
msgid "Activity"
msgstr "Activité"
@ -62,46 +61,16 @@ msgstr "Activité"
msgid "Activity registrations"
msgstr "Inscriptions"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_age_computing
msgid "Age"
msgstr "Âge"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids
msgid "All activities"
msgstr "Toutes les activités"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
msgid "Analyse Registrations"
msgstr "Analyse des inscriptions"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_analyse_type
msgid "Analyse type"
msgstr "Type d'analyse"
#. module: golem_activity_registration
#: model:ir.actions.act_window,name:golem_activity_registration.golem_registrations_analysis_action
msgid "Analysis"
msgstr "Analyse"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Animator"
msgstr "Intervenant"
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season start"
msgstr "Au début de la saison"
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season stop"
msgstr "À la fin de la saison"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
msgid "Base price"
@ -110,12 +79,7 @@ msgstr "Prix de base"
#. module: golem_activity_registration
#: model:ir.model.fields,help:golem_activity_registration.field_golem_activity_registration_activity_price
msgid "Base price to compute the customer price. Sometimes called the catalog price."
msgstr "Prix de base pour calculer le prix 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é"
msgstr "Prix de base pour calculer le prix usager. Parfois appelé prix catalogue."
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search
@ -123,13 +87,11 @@ msgid "By season"
msgstr "Par saison"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_uid
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_date
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_date
msgid "Created on"
msgstr "Créé le"
@ -155,7 +117,6 @@ msgid "Default season?"
msgstr "Saison par défaut?"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_display_name
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_display_name
msgid "Display Name"
msgstr "Nom affiché"
@ -180,11 +141,6 @@ msgstr "Activité"
msgid "GOLEM Activity Registration"
msgstr "Inscription à l'activité"
#. module: golem_activity_registration
#: model:ir.model,name:golem_activity_registration.model_golem_activity_registration_analysis_wizard
msgid "GOLEM Activity Registration Analysis Wizard Adaptation "
msgstr "GOLEM Activity Registration Analysis Wizard Adaptation "
#. module: golem_activity_registration
#: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action
msgid "GOLEM Activity Registration List"
@ -195,18 +151,12 @@ msgstr "Liste des inscriptions aux activités"
msgid "GOLEM Member"
msgstr "Adhérent"
#. module: golem_activity_registration
#: model:ir.model,name:golem_activity_registration.model_golem_member_analysis
msgid "GOLEM Members Analysis Adaption"
msgstr "GOLEM Members Analysis Adaption"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Hours"
msgstr "Horaires"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_id
msgid "ID"
msgstr "ID"
@ -218,28 +168,19 @@ msgstr "Fixe :"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration___last_update
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard___last_update
msgid "Last Modified on"
msgstr "Dernière Modification le"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_uid
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_date
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
#, python-format
msgid "Member Analysis"
msgstr "Analyse des usagers"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration
@ -247,16 +188,10 @@ msgid "Members"
msgstr "Adhérents"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_name
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Name"
msgstr "Nom"
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "Now"
msgstr "Ce jour"
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:39
#: sql_constraint:golem.activity:0
@ -271,20 +206,11 @@ 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.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_only_for_subscriber
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_search_inherit_registration
msgid "Only for subscriber"
msgstr "Réservé aux adhérents"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_end
msgid "Period end"
msgstr "Fin de la période"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_start
msgid "Period start"
msgstr "Début de la période"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places
msgid "Places"
@ -300,16 +226,6 @@ msgstr "Places prises"
msgid "Practiced activities"
msgstr "Activités pratiquées"
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:36
#: model:ir.ui.menu,name:golem_activity_registration.golem_activity_registration_analysis_menu
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_end_activity_area
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_now_activity_area
#, python-format
msgid "Registration Analysis"
msgstr "Analyse des inscriptions"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration
msgid "Remain"
@ -326,16 +242,10 @@ msgid "Sale Price"
msgstr "Prix de vente"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_season_id
msgid "Season"
msgstr "Saison"
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_start_activity_area
msgid "Service User Analysis"
msgstr "Analyse des usagers"
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
msgid "Service user"
@ -353,19 +263,19 @@ msgid "Subscription"
msgstr "Inscription"
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:119
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:130
#, 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
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:134
#, python-format
msgid "Subscription can not be executed : the targeted member is not on the same season as the activity."
msgstr "L'inscription n'a pas pu être enregistrée : l'usager visé n'est pas ahdérant pour la même saison que celle pendant laquelle se déroule l'activité."
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:93
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:104
#: sql_constraint:golem.activity.registration:0
#, python-format
msgid "This member has already been registered for this activity."

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-21 10:49+0000\n"
"PO-Revision-Date: 2019-01-21 10:49+0000\n"
"POT-Creation-Date: 2018-09-26 08:25+0000\n"
"PO-Revision-Date: 2018-09-26 08:25+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -53,7 +53,6 @@ msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_activity_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_analysis_activity_id
msgid "Activity"
msgstr ""
@ -62,46 +61,16 @@ msgstr ""
msgid "Activity registrations"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_age_computing
msgid "Age"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_member_activity_registration_all_ids
msgid "All activities"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
msgid "Analyse Registrations"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_analyse_type
msgid "Analyse type"
msgstr ""
#. module: golem_activity_registration
#: model:ir.actions.act_window,name:golem_activity_registration.golem_registrations_analysis_action
msgid "Analysis"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Animator"
msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season start"
msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "At season stop"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_tree
msgid "Base price"
@ -112,24 +81,17 @@ msgstr ""
msgid "Base price to compute the customer price. Sometimes called the catalog price."
msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,analyse_type:0
msgid "By area and activity"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_search
msgid "By season"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_uid
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_uid
msgid "Created by"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_create_date
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_create_date
msgid "Created on"
msgstr ""
@ -155,7 +117,6 @@ msgid "Default season?"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_display_name
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_display_name
msgid "Display Name"
msgstr ""
@ -180,11 +141,6 @@ msgstr ""
msgid "GOLEM Activity Registration"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model,name:golem_activity_registration.model_golem_activity_registration_analysis_wizard
msgid "GOLEM Activity Registration Analysis Wizard Adaptation "
msgstr ""
#. module: golem_activity_registration
#: model:ir.actions.act_window,name:golem_activity_registration.golem_activity_registration_action
msgid "GOLEM Activity Registration List"
@ -195,18 +151,12 @@ msgstr ""
msgid "GOLEM Member"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model,name:golem_activity_registration.model_golem_member_analysis
msgid "GOLEM Members Analysis Adaption"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Hours"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_id
msgid "ID"
msgstr ""
@ -218,28 +168,19 @@ msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration___last_update
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard___last_update
msgid "Last Modified on"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_uid
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_uid
msgid "Last Updated by"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_write_date
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_write_date
msgid "Last Updated on"
msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:86
#, python-format
msgid "Member Analysis"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_activity_registration_ids
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_form_inherit_registration
@ -247,16 +188,10 @@ msgid "Members"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_name
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_card_template_inherit_golem_activity_resgitration
msgid "Name"
msgstr ""
#. module: golem_activity_registration
#: selection:golem.activity.registration.analysis.wizard,age_computing:0
msgid "Now"
msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:39
#: sql_constraint:golem.activity:0
@ -271,20 +206,11 @@ msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_only_for_subscriber
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_only_for_subscriber
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_search_inherit_registration
msgid "Only for subscriber"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_end
msgid "Period end"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_start
msgid "Period start"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_places
msgid "Places"
@ -300,16 +226,6 @@ msgstr ""
msgid "Practiced activities"
msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/wizard/golem_activity_registration_analysis_wizard.py:36
#: model:ir.ui.menu,name:golem_activity_registration.golem_activity_registration_analysis_menu
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_registration_analysis_wizard_view_form
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_end_activity_area
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_now_activity_area
#, python-format
msgid "Registration Analysis"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_activity_tree_inherit_registration
msgid "Remain"
@ -326,16 +242,10 @@ msgid "Sale Price"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_analysis_wizard_season_id
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_season_id
msgid "Season"
msgstr ""
#. module: golem_activity_registration
#: model:ir.ui.view,arch_db:golem_activity_registration.golem_member_analysis_pivot_age_start_activity_area
msgid "Service User Analysis"
msgstr ""
#. module: golem_activity_registration
#: model:ir.model.fields,field_description:golem_activity_registration.field_golem_activity_registration_member_id
msgid "Service user"
@ -353,19 +263,19 @@ msgid "Subscription"
msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:119
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:130
#, 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
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:134
#, python-format
msgid "Subscription can not be executed : the targeted member is not on the same season as the activity."
msgstr ""
#. module: golem_activity_registration
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:93
#: code:addons/golem_activity_registration/models/golem_activity_registration.py:104
#: sql_constraint:golem.activity.registration:0
#, python-format
msgid "This member has already been registered for this activity."

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2017-2019 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -95,7 +95,7 @@ class GolemActivityRegistration(models.Model):
@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)]
domain = []
if self.activity_id.only_for_subscriber:
domain.append(('membership_state', 'not in', ('none', 'canceled', 'old')))
return {'domain': {'member_id': domain}}
@ -103,7 +103,7 @@ class GolemActivityRegistration(models.Model):
@api.onchange('member_id')
def onchange_member_subcrib(self):
""" If not subscriber : do not show subscribers only activities """
domain = [('is_default', '=', True)]
domain = []
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}}

View File

@ -1,4 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_golem_activity_registration_auditor,Access GOLEM Activity Registration Auditor,model_golem_activity_registration,golem_base.group_golem_auditor,1,0,0,0
access_golem_activity_registration_user,Access GOLEM Activity Registration User,model_golem_activity_registration,golem_base.group_golem_user,1,1,1,1
access_golem_activity_registration_manager,Access GOLEM Activity Registration Manager,model_golem_activity_registration,golem_base.group_golem_manager,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
access_golem_activity_registration_auditor Access GOLEM Activity Registration Auditor model_golem_activity_registration golem_base.group_golem_auditor 1 0 0 0
2 access_golem_activity_registration_user Access GOLEM Activity Registration User model_golem_activity_registration golem_base.group_golem_user 1 1 1 1
3 access_golem_activity_registration_manager Access GOLEM Activity Registration Manager model_golem_activity_registration golem_base.group_golem_manager 1 1 1 1

View File

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

View File

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

View File

@ -1,106 +0,0 @@
# -*- 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

@ -1,66 +0,0 @@
<?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

@ -1,33 +0,0 @@
# -*- 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

@ -1,60 +0,0 @@
<?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 -*-
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -24,7 +24,7 @@
- allow set price per area and slice ;
- computes automatically applicable price ;
- anticipate ruleset to be implemented for computing.''',
'version': '10.0.0.3.2',
'version': '10.0.0.2.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois',
'license': 'AGPL-3',
@ -36,6 +36,5 @@
'views/golem_payment_rule_quotient_slice_views.xml',
'views/golem_member_views.xml',
'views/golem_activity_views.xml',
'wizard/golem_activity_registration_invoicing_views.xml',
'wizard/golem_member_analysis_views.xml']
'wizard/golem_activity_registration_invoicing_views.xml']
}

View File

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

View File

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

View File

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

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

View File

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

View File

@ -1,47 +0,0 @@
# -*- 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

@ -1,37 +0,0 @@
<?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

@ -1,48 +0,0 @@
# -*- 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,6 @@
# -*- coding: utf-8 -*-
# Copyright 2018-2019 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
@ -20,7 +20,7 @@
'name': 'GOLEM Activity Member Registration Payments',
'summary': 'GOLEM Activities Member Registration Payments',
'description': 'GOLEM Activities Member Registration Payments',
'version': '10.0.0.7.1',
'version': '10.0.0.5.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois',
'license': 'AGPL-3',
@ -31,6 +31,5 @@
'views/golem_activity_registration_views.xml',
'report/golem_member_card_templates.xml',
'wizard/golem_activity_registration_invoicing.xml',
'views/golem_activity_views.xml',
'views/account_invoice.xml']
'views/golem_activity_views.xml']
}

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-21 11:30+0000\n"
"PO-Revision-Date: 2019-01-21 12:31+0100\n"
"POT-Creation-Date: 2018-09-26 09:44+0000\n"
"PO-Revision-Date: 2018-09-26 11:58+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -60,11 +60,6 @@ msgstr "Toutes les inscriptions confirmées ont déjà été facturées."
msgid "Amount"
msgstr "Montant"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
msgid "By Month"
msgstr "Mois de facturation"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
msgid "By invoice state"
@ -162,14 +157,14 @@ msgid "GOLEM Member"
msgstr "Adhérent"
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:153
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
#, python-format
msgid "Generated invoice"
msgstr "Facture générée"
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:168
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
#, python-format
msgid "Generated payments"
@ -266,11 +261,6 @@ msgstr "Dernière mise à jour par"
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
msgid "Last year invoices"
msgstr "Année dernière"
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id
msgid "Member"
@ -361,22 +351,17 @@ msgid "Status"
msgstr "État"
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:149
#, python-format
msgid "There is no generated invoice."
msgstr "Il n'y a pas de facture générée."
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:164
#, python-format
msgid "There is no generated payments."
msgstr "Il n'y a pas de paiement généré."
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
msgid "This year invoices"
msgstr "Cette année"
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Total"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-21 11:30+0000\n"
"PO-Revision-Date: 2019-01-21 11:30+0000\n"
"POT-Creation-Date: 2018-09-26 09:44+0000\n"
"PO-Revision-Date: 2018-09-26 09:44+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -56,11 +56,6 @@ msgstr ""
msgid "Amount"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
msgid "By Month"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_search_inherit_payment
msgid "By invoice state"
@ -158,14 +153,14 @@ msgid "GOLEM Member"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:161
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:153
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_invoice_id
#, python-format
msgid "Generated invoice"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:176
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:168
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_payment_ids
#, python-format
msgid "Generated payments"
@ -262,11 +257,6 @@ msgstr ""
msgid "Last Updated on"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
msgid "Last year invoices"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.model.fields,field_description:golem_activity_registration_payment.field_golem_activity_registration_invoicing_member_id
msgid "Member"
@ -357,22 +347,17 @@ msgid "Status"
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:157
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:149
#, python-format
msgid "There is no generated invoice."
msgstr ""
#. module: golem_activity_registration_payment
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:172
#: code:addons/golem_activity_registration_payment/wizard/golem_activity_registration_invoicing.py:164
#, python-format
msgid "There is no generated payments."
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.invoice_search_inherited_activity_registration_payment
msgid "This year invoices"
msgstr ""
#. module: golem_activity_registration_payment
#: model:ir.ui.view,arch_db:golem_activity_registration_payment.golem_activity_registration_invoicing_view_form
msgid "Total"

View File

@ -1,41 +0,0 @@
<?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

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2017-2019 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
@ -21,6 +21,7 @@
import logging
from math import ceil
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
from odoo.exceptions import UserError
_LOGGER = logging.getLogger(__name__)
@ -50,6 +51,11 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
ondelete='cascade')
member_id = fields.Many2one('golem.member', 'Member', required=True,
ondelete='cascade')
partner_ids = fields.Many2many('res.partner', compute='_compute_partner_ids')
on_the_name_of = fields.Many2one('res.partner', 'On the Name of',
ondelete='cascade',
domain="[('id', '=', partner_ids[0][2])]")
is_minor = fields.Boolean(related='member_id.is_minor')
line_ids = fields.One2many('golem.activity.registration.invoicing.line',
'invoicing_id', string='Activities')
schedule_id = fields.Many2one('golem.payment.schedule', 'Payment schedule',
@ -65,6 +71,15 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
ondelete='cascade')
payment_ids = fields.Many2many('account.payment', string='Generated payments')
@api.depends('member_id')
def _compute_partner_ids(self):
for rec in self:
partner_ids = rec.member_id.legal_guardian_ids.mapped('legal_guardian_id').ids
if hasattr(rec.member_id, 'family_member_ids'):
partner_ids += rec.member_id.family_member_ids.filtered(
lambda r: r.id != self.member_id.partner_id.id).ids
rec.partner_ids = [(6, 0, partner_ids)]
def _create_invoice_line(self, product, price, invoice):
""" Create invoice line : needs cache record for onchange, then real
writing... """
@ -83,7 +98,10 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
def _create_invoice(self):
""" Create invoice and lines """
self.ensure_one()
partner = self[0].member_id.partner_id
if self[0].is_minor:
partner = self[0].on_the_name_of
else:
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
@ -97,6 +115,10 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
'account_id': partner.property_account_receivable_id.id,
'fiscal_position_id': partner.property_account_position_id.id
})
if self[0].is_minor:
invoice.write({'is_minor_invoice': True,
'partner_ids': [(6, 0, [self[0].on_the_name_of.id,
self[0].member_id.partner_id.id])]})
for line in self.line_ids:
product = line.activity_id.product_id.product_variant_id
invoice_line = self._create_invoice_line(product, line.price, invoice)
@ -135,6 +157,10 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
def validate(self):
""" Validate and create invoice and payments """
self.ensure_one()
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)
self[0].line_ids.mapped('registration_id').write({'state': 'confirmed'})
invoice = self._create_invoice()
self.invoice_id = invoice
@ -156,14 +182,10 @@ class GolemActivityRegistrationInvoicing(models.TransientModel):
if not self.invoice_id:
uerr = _('There is no generated invoice.')
raise UserError(uerr)
search_view_id = self.env.ref('account.view_account_invoice_filter')
form_view_id = self.env.ref('account.invoice_form')
tree_view_ref = self.env.ref('account.invoice_tree', False)
return {
'type': 'ir.actions.act_window',
'name': _('Generated invoice'),
'view_mode': 'form',
'view_id': form_view_id.id,
'view_mode': 'form,tree',
'res_model': 'account.invoice',
'res_id': self[0].invoice_id.id
}

View File

@ -2,7 +2,6 @@
<!--
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
@ -34,7 +33,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<group states="init">
<group name="lines" colspan="2">
<field name="season_id" readonly="1" />
<field name="member_id" readonly="1" />
<field name="member_id"/><!-- readonly="1" />-->
<field name='on_the_name_of' attrs="{'invisible': [('is_minor', '=', False)]}"
options="{'no_create': True}"/>
<field name='is_minor' invisible='1'/>
<field name="partner_ids" invisible='1'/>
<field name="line_ids" string="Activities and Prices">
<tree delete="false" create="false" edit="true" editable="bottom">
<field name="activity_id" readonly="1" />

View File

@ -1,18 +0,0 @@
# -*- 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

@ -1,29 +0,0 @@
# -*- 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

@ -1,22 +0,0 @@
# 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

@ -1,22 +0,0 @@
# 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

@ -1,18 +0,0 @@
# -*- 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

@ -1,36 +0,0 @@
# -*- 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

@ -1,18 +0,0 @@
# -*- 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

@ -1,31 +0,0 @@
# -*- 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

@ -1,43 +0,0 @@
# 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

@ -1,43 +0,0 @@
# 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

@ -1,18 +0,0 @@
# -*- 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

@ -1,61 +0,0 @@
# -*- 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

@ -1,43 +0,0 @@
<?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

@ -1,18 +0,0 @@
# -*- 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

@ -1,70 +0,0 @@
# -*- 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
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import models, wizard
from . import models

View File

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

View File

@ -1,19 +0,0 @@
# -*- 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

@ -1,36 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2019 Youssef El Ouahby <youssef@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Activity Registration Analysis Wizard Adaptation """
from odoo import models, fields, api
class GolemActivityRegistrationAnalysisWizard(models.TransientModel):
""" GOLEM Activity Registration Analysis Wizard Adaptation """
_inherit = 'golem.activity.registration.analysis.wizard'
_description = 'GOLEM Activity Registration Analysis Wizard Adaptation '
@api.multi
def get_registrations(self):
""" Returns registrations """
self.ensure_one()
return self.env['golem.activity.registration'].search(
[('season_id', '=', self[0].season_id.id),
('state', '=', 'confirmed')]
)

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-28 16:28+0000\n"
"PO-Revision-Date: 2020-05-28 16:28+0000\n"
"POT-Creation-Date: 2017-05-01 14:19+0000\n"
"PO-Revision-Date: 2017-05-01 14:19+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -15,11 +15,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: golem_base
#: model:res.groups,name:golem_base.group_golem_auditor
msgid "GOLEM Auditor"
msgstr ""
#. module: golem_base
#: model:res.groups,name:golem_base.group_golem_manager
msgid "GOLEM Manager"
@ -35,8 +30,3 @@ msgstr ""
msgid "Membership Products"
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 -*-
# Copyright 2018-2020 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -21,27 +21,8 @@ from odoo import models, fields
class IrMailServer(models.Model):
""" IR Mail Server adaptations """
"""IR Mail Server fix for >64 characters pass """
_inherit = 'ir.mail_server'
# IR Mail Server fix for >64 characters pass
smtp_user = fields.Char(size=100)
smtp_pass = fields.Char(size=100)
def build_email(self, email_from, email_to, subject, body, email_cc=None,
email_bcc=None, reply_to=False, attachments=None,
message_id=None, references=None, object_id=False,
subtype='plain', headers=None, body_alternative=None,
subtype_alternative='plain'):
""" Overwrite to supercharge from_to """
get_param = self.env['ir.config_parameter'].sudo().get_param
force_email_from = get_param('mail.force.email_from', email_from)
if force_email_from != email_from:
email_from = force_email_from
reply_to = force_email_from
msg = super(IrMailServer, self).build_email(
email_from, email_to, subject, body, email_cc, email_bcc,
reply_to, attachments, message_id, references, object_id, subtype,
headers, body_alternative, subtype_alternative
)
return msg

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -20,9 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<odoo>
<data noupdate="0">
<!-- Groups -->
<record id="base.group_partner_manager" model="res.groups">
<field name="category_id" ref="base.module_category_golem"/>
</record>
<record id="group_golem_user" model="res.groups">
<field name="name">GOLEM user</field>
<field name="category_id"
@ -33,13 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
ref('base.group_partner_manager'),
ref('account.group_account_invoice')])]"/>
</record>
<record id="group_golem_auditor" model="res.groups">
<field name="name">GOLEM Auditor</field>
<field name="category_id" ref="base.module_category_golem"/>
<field name="implied_ids" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="group_golem_manager" model="res.groups">
<field name="name">GOLEM Manager</field>
<field name="category_id" ref="base.module_category_golem"/>

View File

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

View File

@ -1,17 +0,0 @@
# -*- 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

@ -1,31 +0,0 @@
# -*- 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']
}

View File

@ -1,27 +0,0 @@
# 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

@ -1,27 +0,0 @@
# 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.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1,40 +0,0 @@
<?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 -*-
# Copyright 2016-2021 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -19,7 +19,7 @@
'name': 'GOLEM families',
'summary': 'GOLEM Members Families',
'description': 'GOLEM Members Families',
'version': '10.0.2.6.0',
'version': '10.0.2.5.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Youssef El Ouahby',
'license': 'AGPL-3',

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-14 14:45+0000\n"
"PO-Revision-Date: 2021-01-14 15:45+0100\n"
"POT-Creation-Date: 2018-10-26 15:44+0000\n"
"PO-Revision-Date: 2018-10-26 17:45+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -170,8 +170,8 @@ msgid "Family"
msgstr "Famille"
#. module: golem_family
#: code:addons/golem_family/models/golem_family.py:59
#: code:addons/golem_family/models/golem_family.py:93
#: code:addons/golem_family/models/golem_family.py:49
#: code:addons/golem_family/models/golem_family.py:83
#, python-format
msgid "Family Members"
msgstr "Membres de la famille"
@ -181,13 +181,6 @@ msgstr "Membres de la famille"
msgid "Family form"
msgstr "Fiche Famille"
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_partner_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_users_family_member_names
msgid "Family member names"
msgstr "Noms des membres de la famille"
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
msgid "Family members"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-14 14:45+0000\n"
"PO-Revision-Date: 2021-01-14 14:45+0000\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"
@ -170,8 +170,8 @@ msgid "Family"
msgstr ""
#. module: golem_family
#: code:addons/golem_family/models/golem_family.py:59
#: code:addons/golem_family/models/golem_family.py:93
#: code:addons/golem_family/models/golem_family.py:49
#: code:addons/golem_family/models/golem_family.py:83
#, python-format
msgid "Family Members"
msgstr ""
@ -181,13 +181,6 @@ msgstr ""
msgid "Family form"
msgstr ""
#. module: golem_family
#: model:ir.model.fields,field_description:golem_family.field_golem_member_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_partner_family_member_names
#: model:ir.model.fields,field_description:golem_family.field_res_users_family_member_names
msgid "Family member names"
msgstr ""
#. module: golem_family
#: model:ir.ui.view,arch_db:golem_family.golem_family_form
msgid "Family members"

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2017-2021 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
@ -42,16 +42,6 @@ class ResPartner(models.Model):
index=True)
family_count = fields.Integer(related='family_id.count')
family_member_names = fields.Char(compute='_compute_family_member_names',
index=True, store=True)
@api.depends('family_id', 'family_id.member_ids')
def _compute_family_member_names(self):
""" Computes family member names, for search """
for member in self:
if member.family_id:
member.family_member_names = u', '.join(member.family_id.member_ids.mapped('name'))
@api.multi
def button_family_members(self):
""" Go to family view, from partner """

View File

@ -1,6 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_golem_family_auditor,Access GOLEM Family Auditor,model_golem_family,golem_base.group_golem_auditor,1,0,0,0
access_golem_family_user,Access GOLEM Family User,model_golem_family,golem_base.group_golem_user,1,1,1,1
access_golem_family_role_auditor,Access GOLEM Family Role Auditor,model_golem_family_role,golem_base.group_golem_auditor,1,0,0,0
access_golem_family_role_user,Access GOLEM Family Role User,model_golem_family_role,golem_base.group_golem_user,1,0,0,0
access_golem_family_role_manager,Access GOLEM Family Role Manager,model_golem_family_role,golem_base.group_golem_manager,1,1,1,1

1 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
2 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
3 access_golem_family_role_user Access GOLEM Family Role User model_golem_family_role golem_base.group_golem_user 1 0 0 0
4 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,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
Copyright 2018-2020 Youssef El Ouahby <youssef@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
it under the terms of the GNU Affero General Public License as published by
@ -214,15 +214,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Menus -->
<menuitem id="golem_family_menu" name="Families"
sequence="17"
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
sequence="17" groups="golem_base.group_golem_user"
web_icon="golem_family,static/description/icon.png" />
<menuitem id="golem_family_menu_list" name="Families"
parent="golem_family_menu" action="golem_family_action_list" sequence="1"
groups="golem_base.group_golem_user,golem_base.group_golem_auditor" />
groups="golem_base.group_golem_user" />
<menuitem id="golem_family_role_menu" name="Roles"
parent="golem_family_menu" action="golem_family_role_action" sequence="5"
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
groups="golem_base.group_golem_manager" />
</data>
</odoo>

View File

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

View File

@ -1,3 +1,2 @@
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
access_golem_family_history_auditor Access GOLEM Family History Auditor model_golem_family_history golem_base.group_golem_auditor 1 0 0 0
2 access_golem_family_history_user Access GOLEM Family History User model_golem_family_history golem_base.group_golem_user 1 1 1 1

View File

@ -20,13 +20,13 @@
'name': 'GOLEM Family Memberships',
'summary': 'GOLEM Family Membership Management',
'description': 'GOLEM Family Membership Management',
'version': '10.0.0.1.4',
'version': '10.0.0.1.1',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Youssef ELOUAHBY',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['golem_family', 'membership', 'golem_member_minor'],
'depends': ['golem_family', 'membership'],
'data': ['views/membership_views.xml',
'views/golem_family_views.xml',
'wizard/golem_membership_invoice_views.xml']

View File

@ -47,20 +47,6 @@ class GolemMembershipInvoice(models.TransientModel):
}
return {'domain': {'on_the_name_of': []}}
@api.onchange('src_member_id')
def onchange_member(self):
""" Set partner domain if src_member_id is filled """
self.ensure_one()
record = self[0]
res = super(GolemMembershipInvoice, self).onchange_member()
if record.src_member_id.family_member_ids:
guardian_ids = res['domain']['partner_id'][0][2]
partner_ids = record.src_member_id.family_member_ids.filtered(
lambda r: r.id != self.src_member_id.partner_id.id
).ids
res['domain']['partner_id'] = [('id', 'in', guardian_ids + partner_ids)]
return res
@api.multi
def membership_family_invoice(self):
""" Create family membership """
@ -79,7 +65,6 @@ class GolemMembershipInvoice(models.TransientModel):
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 {
'domain': [('id', 'in', invoice_list)],
'name': 'Membership Invoices',
@ -87,6 +72,6 @@ class GolemMembershipInvoice(models.TransientModel):
'view_mode': 'tree,form',
'res_model': 'account.invoice',
'type': 'ir.actions.act_window',
'views': [(tree_view_ref.id, 'tree'), (form_view_id.id, 'form')],
'views': [(False, 'tree'), (form_view_id.id, 'form')],
'search_view_id': search_view_id.id
}

View File

@ -15,4 +15,4 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import models, wizard
from . import models

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
# Copyright 2016-2021 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2016-2018 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Michel Dessenne <michel@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
@ -21,7 +20,7 @@
'name': 'GOLEM non-profit members',
'summary': 'Extends Odoo contacts for MJC',
'description': 'Extends Odoo contacts for MJC',
'version': '10.0.2.8.4',
'version': '10.0.2.4.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3',
@ -35,9 +34,5 @@
'views/golem_partner_area_views.xml',
'report/golem_member_card_templates.xml',
'data/golem_member_numberconfig_data.xml',
'security/ir.model.access.csv',
'views/golem_member_age_range_views.xml',
'wizard/golem_member_analysis_views.xml',
'wizard/golem_member_analysis_wizard_views.xml'
]
'security/ir.model.access.csv']
}

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-01-16 15:46+0000\n"
"PO-Revision-Date: 2020-01-16 17:01+0100\n"
"POT-Creation-Date: 2018-10-26 15:43+0000\n"
"PO-Revision-Date: 2018-10-26 17:47+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -55,60 +55,6 @@ msgstr "Adresse"
msgid "Address Type"
msgstr "Type d'adresse"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_age_computing
#: model:ir.model.fields,field_description:golem_member.field_res_partner_age
#: model:ir.model.fields,field_description:golem_member.field_res_users_age
msgid "Age"
msgstr "Age"
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_member_age_range_action
#: model:ir.ui.menu,name:golem_member.golem_member_age_range_menu
msgid "Age Ranges"
msgstr "Tranches d'âge"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_start_season
msgid "Age at season start"
msgstr "Âge au début de la saison"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_end_season
msgid "Age at season stop"
msgstr "Âge à la fin de la saison"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_now
msgid "Age now"
msgstr "Âge ce jour"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_range_end_season
msgid "Age range at season end"
msgstr "Tranche d'âge à la fin de la saison"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_range_start_season
msgid "Age range at season start"
msgstr "Tranche d'âge au début de la saison"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_range_now
msgid "Age range now"
msgstr "Tranche d'âge ce jour"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_analyse_type
msgid "Analyse type"
msgstr "Type d'analyse"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_animator_activity_ids
msgid "Animated activities"
msgstr "Activités animées"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_numberconfig_form
msgid "Apply and recompute all member numbers"
@ -134,11 +80,6 @@ msgstr "Territoire"
msgid "Area from street"
msgstr "Territoire automatique depuis la rue"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_area_id
msgid "Area id"
msgstr "Territoire"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_form
#: model:ir.ui.view,arch_db:golem_member.res_partner_form_inherit_golem_member
@ -163,16 +104,6 @@ msgstr "Territoires"
msgid "Associate Member"
msgstr "Adhérent associé"
#. module: golem_member
#: selection:golem.member.analysis.wizard,age_computing:0
msgid "At season start"
msgstr "Au début de la saison"
#. module: golem_member
#: selection:golem.member.analysis.wizard,age_computing:0
msgid "At season stop"
msgstr "À la fin de la saison"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_bank_account_count
msgid "Bank"
@ -204,18 +135,12 @@ msgstr "Rebond"
msgid "Buy Membership"
msgstr "Payer une adhésion"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.l10n_fr_department_filter_inherit_golem_member
msgid "By Area"
msgstr "Par territoire"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_search
msgid "By age"
msgstr "Par âge"
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
#: model:ir.ui.view,arch_db:golem_member.golem_member_search
msgid "By area"
msgstr "Par territoire"
@ -226,21 +151,10 @@ msgid "By city"
msgstr "Par ville"
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
msgid "By family quotient and area"
msgstr "Par quotient familial et territoire"
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
#: model:ir.ui.view,arch_db:golem_member.golem_member_search
msgid "By gender"
msgstr "Par genre"
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
msgid "By tag and area"
msgstr "Par catégorie et territoire"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_numberconfig_form
msgid "Cancel"
@ -251,12 +165,6 @@ msgstr "Annuler"
msgid "Cancel Membership Date"
msgstr "Date d'annulation de l'adhésion"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_category_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_category_id
msgid "Category id"
msgstr "Catégorie"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_channel_ids
msgid "Channels"
@ -391,9 +299,6 @@ msgid "Create a service user from this contact"
msgstr "Faire de ce contact un usager"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_create_uid
@ -403,9 +308,6 @@ msgid "Created by"
msgstr "Créé par"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_create_date
@ -437,7 +339,7 @@ msgstr "Conditions de Paiement Client"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_date
msgid "Date"
msgstr "Date "
msgstr "Date"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_card_template
@ -485,9 +387,6 @@ msgid "Department"
msgstr "Département"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_display_name
@ -499,7 +398,7 @@ msgstr "Nom affiché"
#. module: golem_member
#: model:ir.model.fields,help:golem_member.field_golem_member_partner_share
msgid "Either customer (no user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data."
msgstr "Le client (aucun utilisateur) ou l'utilisateur partagé a indiqué que le partenaire actuel est un client qui ne dispose pas d'accès ou qui dispose d'un accès limité pour le partage des données."
msgstr "Either customer (no user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data."
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_electronic_processing_agreement
@ -527,9 +426,7 @@ msgid "Fax"
msgstr "Fax"
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:131
#: code:addons/golem_member/wizard/golem_member_analysis.py:38
#: selection:golem.member.analysis,gender:0
#: code:addons/golem_member/models/golem_member.py:103
#, python-format
msgid "Female"
msgstr "Féminin"
@ -569,11 +466,6 @@ msgstr "Adhérent libre"
msgid "GOLEM Member"
msgstr "Adhérent"
#. module: golem_member
#: model:ir.model,name:golem_member.model_golem_member_age_range
msgid "GOLEM Member Age Range Management"
msgstr "GOLEM Member Age Range Management"
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_member_numberconfig_action
#: model:ir.ui.menu,name:golem_member.golem_member_numberconfig_menu
@ -600,23 +492,13 @@ msgstr "GOLEM : facturation de l'adhésion"
msgid "GOLEM Members"
msgstr "Adhérents"
#. module: golem_member
#: model:ir.model,name:golem_member.model_golem_member_analysis_wizard
msgid "GOLEM Members Analysis Wizard Adaptation"
msgstr "GOLEM Members Analysis Wizard Adaptation"
#. module: golem_member
#: model:ir.model,name:golem_member.model_golem_member_analysis
msgid "GOLEM Members Analysis Adaption"
msgstr "GOLEM Members Analysis Adaption"
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.res_partner_category_action
msgid "GOLEM Members Tags"
msgstr "Catégories d'adhérents"
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:452
#: code:addons/golem_member/models/golem_member.py:433
#, python-format
msgid "GOLEM Members merge has not been implemented yet. Please only merge partners, not members, or delete GOLEM Members manually before merging."
msgstr "La fusion d'adhérents n'a pas encore été implémentée. Merci de ne fusionner que des contacts non adhérents, ou bien de supprimer les adhérents manuellement en premier lieu."
@ -632,7 +514,6 @@ msgid "GOLEM Season"
msgstr "Saison"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_gender
#: model:ir.model.fields,field_description:golem_member.field_golem_member_gender
msgid "Gender"
msgstr "Genre"
@ -668,20 +549,6 @@ msgid "Has unreconciled entries"
msgstr "A des écritures non lettrées"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_higher_bound
msgid "Higher bound"
msgstr "Jusqu'à"
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:54
#, python-format
msgid "Higher bound age in range of an existing age range."
msgstr "Une tranche d'âge est incluse dans une tranche existante."
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_id
@ -730,11 +597,6 @@ msgstr "Facture"
msgid "Invoices"
msgstr "Factures"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.res_partner_search_inherit_golem_member
msgid "Is Animator"
msgstr "Intervenant"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.res_partner_search_inherit_golem_member
msgid "Is Free Member"
@ -829,9 +691,6 @@ msgstr "Langue"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_partner_area___last_update
@ -840,9 +699,6 @@ msgid "Last Modified on"
msgstr "Dernière Modification le"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_write_uid
@ -852,9 +708,6 @@ msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_write_date
@ -879,20 +732,7 @@ msgid "Latest Invoices & Payments Matching Date"
msgstr "Date de dernière correspondance des factures et paiements"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_lower_bound
msgid "Lower bound"
msgstr "À partir de"
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:50
#, python-format
msgid "Lower bound age in range of an existing age range."
msgstr "Une trancge d'âge est en conflit avec une autre tranche existante."
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:130
#: code:addons/golem_member/wizard/golem_member_analysis.py:37
#: selection:golem.member.analysis,gender:0
#: code:addons/golem_member/models/golem_member.py:103
#, python-format
msgid "Male"
msgstr "Masculin"
@ -918,21 +758,9 @@ msgid "Medium-sized image of this contact. It is automatically resized as a 128x
msgstr "Image de taille moyenne de ce contact. Elle est automatiquement redimensionnée en 128x128px, avec un ratio d'aspect préservé. Utiliser ce champ dans les vues formulaires ou dans certaines vues kanban."
#. module: golem_member
#: selection:golem.member.analysis.wizard,service_user:0
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_member_id
msgid "Member"
msgstr "Adhérent"
#. module: golem_member
#: code:addons/golem_member/wizard/golem_member_analysis_wizard.py:120
#, python-format
msgid "Member Analysis"
msgstr "Analyse des usagers"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_member_analysis_id
msgid "Member analysis id"
msgstr "Analyses usagers"
msgstr "Usager"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_name
@ -995,10 +823,8 @@ msgid "NIC"
msgstr "NIC"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_name_4229
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_name_4230
#: model:ir.model.fields,field_description:golem_member.field_golem_partner_area_name
#: model:ir.model.fields,field_description:golem_member.field_golem_partner_area_street_name
msgid "Name"
@ -1012,32 +838,19 @@ msgid "Nationality"
msgstr "Nationalité"
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:392
#: code:addons/golem_member/models/golem_member.py:395
#: code:addons/golem_member/models/golem_member.py:373
#: code:addons/golem_member/models/golem_member.py:376
#: selection:golem.member.numberconfig,is_automatic:0
#: selection:golem.member.numberconfig,is_per_season:0
#, python-format
msgid "No"
msgstr "Non"
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:132
#: code:addons/golem_member/wizard/golem_member_analysis.py:39
#: selection:golem.member.analysis,gender:0
#, python-format
msgid "Not Disclosed"
msgstr "Non communiqué"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_comment
msgid "Notes"
msgstr "Notes"
#. module: golem_member
#: selection:golem.member.analysis.wizard,age_computing:0
msgid "Now"
msgstr "Ce jour"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_number
msgid "Number"
@ -1123,16 +936,6 @@ msgstr "Numéro unique par saison?"
msgid "Period :"
msgstr "Période :"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_season_end
msgid "Period end"
msgstr "Fin de la période"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_season_start
msgid "Period start"
msgstr "Début de la période"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_form
msgid "Personal details"
@ -1187,11 +990,6 @@ msgstr "Territoires racines"
msgid "Root area"
msgstr "Territoire racine"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_wizard_view_form
msgid "Run analysis"
msgstr "Lancer l'analyse"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_siren
msgid "SIREN"
@ -1213,8 +1011,6 @@ msgid "Salesperson"
msgstr "Vendeur"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_season_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_season_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_season_id
msgid "Season"
msgstr "Saison"
@ -1249,18 +1045,6 @@ msgstr "Self"
msgid "Sequence"
msgstr "Séquence"
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_analysis_action
#: model:ir.ui.menu,name:golem_member.golem_analysis_menu
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_wizard_view_form
msgid "Service User Analysis"
msgstr "Analyse des usagers"
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.action_partner_mass_mail
msgid "Service User Mass Mailing"
msgstr "Mailing aux usagers"
#. module: golem_member
#: model:ir.ui.menu,name:golem_member.res_partner_category_menu
msgid "Service User Tags"
@ -1278,37 +1062,17 @@ msgid "Service Users"
msgstr "Usagers"
#. module: golem_member
#: selection:golem.member.analysis.wizard,service_user:0
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_member_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_member_id
#: model:ir.model.fields,field_description:golem_member.field_res_partner_member_id
#: model:ir.model.fields,field_description:golem_member.field_res_users_member_id
msgid "Service user"
msgstr "Usager"
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_end_area
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_end_gender
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_end_tag
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_now_area
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_now_gender
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_now_tag
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_start_area
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_start_gender
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_start_tag
msgid "Service user Analysis"
msgstr "Analyse des usagers"
#. module: golem_member
#: model:ir.ui.menu,name:golem_member.golem_member_user_menu
msgid "Service users"
msgstr "Usagers"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_service_user
msgid "Service users or members"
msgstr "Usagers ou adhérents"
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_partner_share
msgid "Share Partner"
@ -1427,12 +1191,6 @@ msgstr "Le numéro SIRET est l'identifiant officiel de l'établissement en Franc
msgid "The fiscal position will determine taxes and accounts used for the partner."
msgstr "La position fiscale déterminera les taxes et les comptes comptables utilisés par le partneraire"
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:44
#, python-format
msgid "The higher bound age must be higher than the lower bound."
msgstr "La tranche supérieure ne peut pas être moins élevée que la tranche inférieure."
#. module: golem_member
#: model:ir.model.fields,help:golem_member.field_golem_member_user_id
msgid "The internal user that is in charge of communicating with this contact if any."
@ -1444,7 +1202,7 @@ msgid "The name of official registry where this company was declared."
msgstr "Nom de la ville du tribunal de commerce dans laquelle la société est enregistrée."
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:75
#: code:addons/golem_member/models/golem_member.py:69
#, python-format
msgid "The parent area is a sub area of the current area, please change it."
msgstr "Le territoire parent est un sous-territoire du territoire courant, merci de modifier vos saisies."
@ -1485,21 +1243,14 @@ msgid "This field holds the image used as avatar for this contact, limited to 10
msgstr "Ce champ contient l'image utilisée comme photo d'identité pour ce contact, limitée à 1024x1024px."
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:199
#: code:addons/golem_member/models/golem_member.py:168
#: sql_constraint:golem.member:0
#, python-format
msgid "This member number has already been used."
msgstr "Ce numéro d'adhérent a été déjà utilisé."
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:32
#: sql_constraint:golem.member.age.range:0
#, python-format
msgid "This name has already been used. It must be unique."
msgstr "Ce nom a déjà été utilisé. Il doit être unique."
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:53
#: code:addons/golem_member/models/golem_member.py:47
#: sql_constraint:golem.partner.area:0
#, python-format
msgid "This patner area has already been used."
@ -1566,10 +1317,10 @@ msgid "Total amount you have to pay to this vendor."
msgstr "Montant total à payer au fournisseur."
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:107
#: code:addons/golem_member/models/golem_member.py:235
#, python-format
msgid "Unsupported operator for age search"
msgstr "Opérateur de recherche non supporté pour l'âge"
msgid "Unsupported operator for defautl season search"
msgstr "Opérateur de recherche non supporté pour le filtre de saison par défaut"
#. module: golem_member
#: model:ir.model.fields,help:golem_member.field_golem_member_type
@ -1602,8 +1353,8 @@ msgid "Website of Partner or Company"
msgstr "Site Web pour les Partenaires ou les Sociétés"
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:392
#: code:addons/golem_member/models/golem_member.py:395
#: code:addons/golem_member/models/golem_member.py:373
#: code:addons/golem_member/models/golem_member.py:376
#: selection:golem.member.numberconfig,is_automatic:0
#: selection:golem.member.numberconfig,is_per_season:0
#, python-format
@ -1635,9 +1386,3 @@ msgstr "e.g. www.yaltik.com"
msgid "name@example.org"
msgstr "name@example.org"
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:63
#, python-format
msgid "{}-{} years"
msgstr "{}-{} ans"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-01-16 15:46+0000\n"
"PO-Revision-Date: 2020-01-16 15:46+0000\n"
"POT-Creation-Date: 2018-10-26 15:43+0000\n"
"PO-Revision-Date: 2018-10-26 15:43+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -55,60 +55,6 @@ msgstr ""
msgid "Address Type"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_age_computing
#: model:ir.model.fields,field_description:golem_member.field_res_partner_age
#: model:ir.model.fields,field_description:golem_member.field_res_users_age
msgid "Age"
msgstr ""
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_member_age_range_action
#: model:ir.ui.menu,name:golem_member.golem_member_age_range_menu
msgid "Age Ranges"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_start_season
msgid "Age at season start"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_end_season
msgid "Age at season stop"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_now
msgid "Age now"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_range_end_season
msgid "Age range at season end"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_range_start_season
msgid "Age range at season start"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_age_range_now
msgid "Age range now"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_analyse_type
msgid "Analyse type"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_animator_activity_ids
msgid "Animated activities"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_numberconfig_form
msgid "Apply and recompute all member numbers"
@ -134,11 +80,6 @@ msgstr ""
msgid "Area from street"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_area_id
msgid "Area id"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_form
#: model:ir.ui.view,arch_db:golem_member.res_partner_form_inherit_golem_member
@ -163,16 +104,6 @@ msgstr ""
msgid "Associate Member"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,age_computing:0
msgid "At season start"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,age_computing:0
msgid "At season stop"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_bank_account_count
msgid "Bank"
@ -204,18 +135,12 @@ msgstr ""
msgid "Buy Membership"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.l10n_fr_department_filter_inherit_golem_member
msgid "By Area"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_search
msgid "By age"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
#: model:ir.ui.view,arch_db:golem_member.golem_member_search
msgid "By area"
msgstr ""
@ -226,21 +151,10 @@ msgid "By city"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
msgid "By family quotient and area"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
#: model:ir.ui.view,arch_db:golem_member.golem_member_search
msgid "By gender"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,analyse_type:0
msgid "By tag and area"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_numberconfig_form
msgid "Cancel"
@ -251,12 +165,6 @@ msgstr ""
msgid "Cancel Membership Date"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_category_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_category_id
msgid "Category id"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_channel_ids
msgid "Channels"
@ -391,9 +299,6 @@ msgid "Create a service user from this contact"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_create_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_create_uid
@ -403,9 +308,6 @@ msgid "Created by"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_create_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_create_date
@ -485,9 +387,6 @@ msgid "Department"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_display_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_display_name
@ -527,9 +426,7 @@ msgid "Fax"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:131
#: code:addons/golem_member/wizard/golem_member_analysis.py:38
#: selection:golem.member.analysis,gender:0
#: code:addons/golem_member/models/golem_member.py:103
#, python-format
msgid "Female"
msgstr ""
@ -569,11 +466,6 @@ msgstr ""
msgid "GOLEM Member"
msgstr ""
#. module: golem_member
#: model:ir.model,name:golem_member.model_golem_member_age_range
msgid "GOLEM Member Age Range Management"
msgstr ""
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_member_numberconfig_action
#: model:ir.ui.menu,name:golem_member.golem_member_numberconfig_menu
@ -600,23 +492,13 @@ msgstr ""
msgid "GOLEM Members"
msgstr ""
#. module: golem_member
#: model:ir.model,name:golem_member.model_golem_member_analysis_wizard
msgid "GOLEM Members Analysis Wizard Adaptation"
msgstr ""
#. module: golem_member
#: model:ir.model,name:golem_member.model_golem_member_analysis
msgid "GOLEM Members Analysis Adaption"
msgstr ""
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.res_partner_category_action
msgid "GOLEM Members Tags"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:452
#: code:addons/golem_member/models/golem_member.py:433
#, python-format
msgid "GOLEM Members merge has not been implemented yet. Please only merge partners, not members, or delete GOLEM Members manually before merging."
msgstr ""
@ -632,7 +514,6 @@ msgid "GOLEM Season"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_gender
#: model:ir.model.fields,field_description:golem_member.field_golem_member_gender
msgid "Gender"
msgstr ""
@ -668,20 +549,6 @@ msgid "Has unreconciled entries"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_higher_bound
msgid "Higher bound"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:54
#, python-format
msgid "Higher bound age in range of an existing age range."
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_id
@ -730,11 +597,6 @@ msgstr ""
msgid "Invoices"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.res_partner_search_inherit_golem_member
msgid "Is Animator"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.res_partner_search_inherit_golem_member
msgid "Is Free Member"
@ -823,9 +685,6 @@ msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig___last_update
#: model:ir.model.fields,field_description:golem_member.field_golem_partner_area___last_update
@ -834,9 +693,6 @@ msgid "Last Modified on"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_write_uid
#: model:ir.model.fields,field_description:golem_member.field_golem_member_write_uid
@ -846,9 +702,6 @@ msgid "Last Updated by"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_numberconfig_write_date
#: model:ir.model.fields,field_description:golem_member.field_golem_member_write_date
@ -873,20 +726,7 @@ msgid "Latest Invoices & Payments Matching Date"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_lower_bound
msgid "Lower bound"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:50
#, python-format
msgid "Lower bound age in range of an existing age range."
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:130
#: code:addons/golem_member/wizard/golem_member_analysis.py:37
#: selection:golem.member.analysis,gender:0
#: code:addons/golem_member/models/golem_member.py:103
#, python-format
msgid "Male"
msgstr ""
@ -912,22 +752,10 @@ msgid "Medium-sized image of this contact. It is automatically resized as a 128x
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,service_user:0
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_member_id
msgid "Member"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/wizard/golem_member_analysis_wizard.py:120
#, python-format
msgid "Member Analysis"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_member_analysis_id
msgid "Member analysis id"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_name
msgid "Member computed name"
@ -989,10 +817,8 @@ msgid "NIC"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_age_range_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_name
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_name_4229
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_name_4230
#: model:ir.model.fields,field_description:golem_member.field_golem_partner_area_name
#: model:ir.model.fields,field_description:golem_member.field_golem_partner_area_street_name
msgid "Name"
@ -1006,32 +832,19 @@ msgid "Nationality"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:392
#: code:addons/golem_member/models/golem_member.py:395
#: code:addons/golem_member/models/golem_member.py:373
#: code:addons/golem_member/models/golem_member.py:376
#: selection:golem.member.numberconfig,is_automatic:0
#: selection:golem.member.numberconfig,is_per_season:0
#, python-format
msgid "No"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:132
#: code:addons/golem_member/wizard/golem_member_analysis.py:39
#: selection:golem.member.analysis,gender:0
#, python-format
msgid "Not Disclosed"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_comment
msgid "Notes"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,age_computing:0
msgid "Now"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_number
msgid "Number"
@ -1117,16 +930,6 @@ msgstr ""
msgid "Period :"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_season_end
msgid "Period end"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_season_start
msgid "Period start"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_form
msgid "Personal details"
@ -1179,11 +982,6 @@ msgstr ""
msgid "Root area"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_wizard_view_form
msgid "Run analysis"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_siren
msgid "SIREN"
@ -1205,8 +1003,6 @@ msgid "Salesperson"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_season_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_season_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_number_season_id
msgid "Season"
msgstr ""
@ -1241,18 +1037,6 @@ msgstr ""
msgid "Sequence"
msgstr ""
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.golem_analysis_action
#: model:ir.ui.menu,name:golem_member.golem_analysis_menu
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_wizard_view_form
msgid "Service User Analysis"
msgstr ""
#. module: golem_member
#: model:ir.actions.act_window,name:golem_member.action_partner_mass_mail
msgid "Service User Mass Mailing"
msgstr ""
#. module: golem_member
#: model:ir.ui.menu,name:golem_member.res_partner_category_menu
msgid "Service User Tags"
@ -1270,37 +1054,17 @@ msgid "Service Users"
msgstr ""
#. module: golem_member
#: selection:golem.member.analysis.wizard,service_user:0
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_member_id
#: model:ir.model.fields,field_description:golem_member.field_golem_member_member_id
#: model:ir.model.fields,field_description:golem_member.field_res_partner_member_id
#: model:ir.model.fields,field_description:golem_member.field_res_users_member_id
msgid "Service user"
msgstr ""
#. module: golem_member
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_end_area
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_end_gender
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_end_tag
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_now_area
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_now_gender
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_now_tag
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_start_area
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_start_gender
#: model:ir.ui.view,arch_db:golem_member.golem_member_analysis_pivot_age_start_tag
msgid "Service user Analysis"
msgstr ""
#. module: golem_member
#: model:ir.ui.menu,name:golem_member.golem_member_user_menu
msgid "Service users"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_analysis_wizard_service_user
msgid "Service users or members"
msgstr ""
#. module: golem_member
#: model:ir.model.fields,field_description:golem_member.field_golem_member_partner_share
msgid "Share Partner"
@ -1419,12 +1183,6 @@ msgstr ""
msgid "The fiscal position will determine taxes and accounts used for the partner."
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:44
#, python-format
msgid "The higher bound age must be higher than the lower bound."
msgstr ""
#. module: golem_member
#: model:ir.model.fields,help:golem_member.field_golem_member_user_id
msgid "The internal user that is in charge of communicating with this contact if any."
@ -1436,7 +1194,7 @@ msgid "The name of official registry where this company was declared."
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:75
#: code:addons/golem_member/models/golem_member.py:69
#, python-format
msgid "The parent area is a sub area of the current area, please change it."
msgstr ""
@ -1477,21 +1235,14 @@ msgid "This field holds the image used as avatar for this contact, limited to 10
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:199
#: code:addons/golem_member/models/golem_member.py:168
#: sql_constraint:golem.member:0
#, python-format
msgid "This member number has already been used."
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:32
#: sql_constraint:golem.member.age.range:0
#, python-format
msgid "This name has already been used. It must be unique."
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:53
#: code:addons/golem_member/models/golem_member.py:47
#: sql_constraint:golem.partner.area:0
#, python-format
msgid "This patner area has already been used."
@ -1558,9 +1309,9 @@ msgid "Total amount you have to pay to this vendor."
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:107
#: code:addons/golem_member/models/golem_member.py:235
#, python-format
msgid "Unsupported operator for age search"
msgid "Unsupported operator for defautl season search"
msgstr ""
#. module: golem_member
@ -1594,8 +1345,8 @@ msgid "Website of Partner or Company"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member.py:392
#: code:addons/golem_member/models/golem_member.py:395
#: code:addons/golem_member/models/golem_member.py:373
#: code:addons/golem_member/models/golem_member.py:376
#: selection:golem.member.numberconfig,is_automatic:0
#: selection:golem.member.numberconfig,is_per_season:0
#, python-format
@ -1627,9 +1378,3 @@ msgstr ""
msgid "name@example.org"
msgstr ""
#. module: golem_member
#: code:addons/golem_member/models/golem_member_age_range.py:63
#, python-format
msgid "{}-{} years"
msgstr ""

View File

@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2016-2018 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
@ -16,4 +15,4 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import golem_member, golem_season, golem_member_age_range
from . import golem_member, golem_season

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# Copyright 2016-2021 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2016-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
@ -19,16 +19,10 @@
""" GOLEM Members """
import logging
from re import compile as rcompile
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError
_LOGGER = logging.getLogger(__name__)
street_number = rcompile(r'^(\d-?(bis)*(ter)*,?\s*)+')
def get_root_area(area_id):
""" Get root area """
if not area_id.parent_id:
@ -91,43 +85,6 @@ class ResPartner(models.Model):
""" GOLEM Member partner adaptations """
_inherit = 'res.partner'
age = fields.Integer(compute='_compute_age', search='_search_age')
@api.depends('birthdate_date')
def _compute_age(self):
for contact in self:
if contact.birthdate_date:
age = relativedelta(date.today(),
fields.Date.from_string(contact.birthdate_date))
contact.age = age.years
def _search_age(self, operator, value):
""" Age search function """
if operator not in ('=', '!=', '<', '<=', '>', '>='):
err = _('Unsupported operator for age search')
raise NotImplementedError(err)
today = date.today()
birthdate_date = today - timedelta(days=365.25 * value)
if operator in ('=', '!='):
birthdate_date = today - timedelta(days=365.25 * value)
max_birthdate_date = today - timedelta(days=365.25 * (value + 1))
if operator == '=':
return ['&', ('birthdate_date', '>', max_birthdate_date),
('birthdate_date', '<=', birthdate_date)]
else:
return ['|', ('birthdate_date', '<=', max_birthdate_date),
('birthdate_date', '>', birthdate_date)]
else:
if operator == '>':
operator = '<'
elif operator == '>=':
operator = '<='
elif operator == '<':
operator = '>'
else:
operator = '>='
return [('birthdate_date', operator, birthdate_date)]
@api.model
def _get_default_nationality_id(self):
return self.env.ref('base.main_company').country_id
@ -142,11 +99,8 @@ class ResPartner(models.Model):
area_from_street = fields.Boolean(store=False, default=False)
country_id = fields.Many2one(default=_get_default_nationality_id)
# Gender overwriting
gender = fields.Selection([('male', _('Male')),
('female', _('Female')),
('not_disclosed', _('Not Disclosed'))],
default='not_disclosed')
# Gender overwriting : no need for 'other' choice
gender = fields.Selection([('male', _('Male')), ('female', _('Female'))])
member_id = fields.One2many('golem.member', 'partner_id', 'Service user',
readonly=True)
@ -181,7 +135,6 @@ class ResPartner(models.Model):
for member in self:
if member.street and not member.area_from_street:
mstreet = member.street.strip()
mstreet = street_number.sub(u'', mstreet).strip()
street_id = self.env['golem.partner.area.street'].search(
[('name', 'ilike', mstreet)]
)
@ -238,7 +191,8 @@ class GolemMember(models.Model):
required=True, default=default_season,
auto_join=True, ondelete='restrict')
is_default = fields.Boolean('Default season?',
compute='_compute_is_default', store=True)
compute='_compute_is_default',
search='_search_is_default')
is_number_manual = fields.Boolean('Is number manual?', store=False,
compute='_compute_is_number_manual')
@ -270,6 +224,18 @@ class GolemMember(models.Model):
for member in self:
member.is_default = default_s in member.season_ids
@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_ids', operator, self.default_season().id)]
@api.depends('number')
def _compute_is_number_manual(self):
conf = self.env['ir.config_parameter']
@ -282,7 +248,6 @@ class GolemMember(models.Model):
for member in self:
mstreet = member.street.strip() if member.street else False
if mstreet and not member.area_id:
mstreet = street_number.sub('', mstreet).strip()
street_id = self.env['golem.partner.area.street'].search(
[('name', 'ilike', mstreet)], limit=1
)

View File

@ -1,65 +0,0 @@
# -*- 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 Member Age Range Management """
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class GolemMemberAgeRange(models.Model):
""" GOLEM Member Age Range Management """
_name = 'golem.member.age.range'
_description = 'GOLEM Member Age Range Management'
_order = 'lower_bound asc'
_sql_constraints = [(
'golem_age_range_rule_name_uniq', 'UNIQUE (name)',
_('This name has already been used. It must be unique.')
)]
name = fields.Char(required=True)
lower_bound = fields.Integer(required=True)
higher_bound = fields.Integer(required=True)
@api.constrains('lower_bound', 'higher_bound')
def check_bounds(self):
""" Check member age bounds coherence and conflicts """
for rng in self:
if rng.lower_bound > rng.higher_bound:
verr = _(u'The higher bound age must be higher than the lower '
'bound.')
raise ValidationError(verr)
rngs = self.env['golem.member.age.range'].search([])
for each_rng in rngs:
if each_rng.lower_bound < rng.lower_bound < each_rng.higher_bound:
verr = _(u'Lower bound age in range of an existing age '
'range.')
raise ValidationError(verr)
if each_rng.lower_bound < rng.higher_bound < each_rng.higher_bound:
verr = _(u'Higher bound age in range of an existing age '
'range.')
raise ValidationError(verr)
@api.onchange('lower_bound', 'higher_bound')
def onchange_name(self):
""" If no name, computes age range name """
for rec in self:
if not rec.name and rec.lower_bound and rec.higher_bound:
rec.name = _(u'{}-{} years').format(
rec.lower_bound, rec.higher_bound
)

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2018-2019 Fabien Bourgeois <fabien@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -30,9 +30,6 @@ class GolemSeason(models.Model):
self.ensure_one()
res = super(GolemSeason, self).do_default_season()
all_members = self.env['golem.member'].search([])
# Recompute is_default
all_members._compute_is_default()
# Regenerate number
conf = self.env['ir.config_parameter']
if conf.get_param('golem_numberconfig_isautomatic') == '1' and \
conf.get_param('golem_numberconfig_isperseason') == '1':

View File

@ -1,13 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_golem_member_auditor,Access GOLEM Member Auditor,model_golem_member,golem_base.group_golem_auditor,1,0,0,0
access_golem_member_user,Access GOLEM Member User,model_golem_member,golem_base.group_golem_user,1,1,1,1
access_partner_area_auditor,Access GOLEM Partner Area Auditor,model_golem_partner_area,golem_base.group_golem_auditor,1,0,0,0
access_partner_area_user,Access GOLEM Partner Area User,model_golem_partner_area,golem_base.group_golem_user,1,1,1,1
access_partner_area_street_auditor,Access GOLEM Partner Area Street Auditor,model_golem_partner_area_street,golem_base.group_golem_auditor,1,0,0,0
access_partner_area_street_user,Access GOLEM Partner Area Street User,model_golem_partner_area_street,golem_base.group_golem_user,1,1,1,1
access_golem_member_season_auditor,Access GOLEM Member Season Auditor,model_golem_member_number,golem_base.group_golem_auditor,1,0,0,0
access_golem_member_season_user,Access GOLEM Member Season User,model_golem_member_number,golem_base.group_golem_user,1,1,1,1
access_ir_config_parameter_manager,Access IR Config Parameter Manager,base.model_ir_config_parameter,golem_base.group_golem_manager,1,1,1,1
access_golem_age_range_manager,Access Golem Age Range Manager,model_golem_member_age_range,golem_base.group_golem_manager,1,1,1,1
access_golem_age_range_auditor,Access Golem Age Range Auditor,model_golem_member_age_range,golem_base.group_golem_auditor,1,0,0,0
access_golem_age_range_user,Access Golem Age Range User,model_golem_member_age_range,golem_base.group_golem_user,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
access_golem_member_auditor Access GOLEM Member Auditor model_golem_member golem_base.group_golem_auditor 1 0 0 0
2 access_golem_member_user Access GOLEM Member User model_golem_member golem_base.group_golem_user 1 1 1 1
access_partner_area_auditor Access GOLEM Partner Area Auditor model_golem_partner_area golem_base.group_golem_auditor 1 0 0 0
3 access_partner_area_user Access GOLEM Partner Area User model_golem_partner_area golem_base.group_golem_user 1 1 1 1
access_partner_area_street_auditor Access GOLEM Partner Area Street Auditor model_golem_partner_area_street golem_base.group_golem_auditor 1 0 0 0
4 access_partner_area_street_user Access GOLEM Partner Area Street User model_golem_partner_area_street golem_base.group_golem_user 1 1 1 1
access_golem_member_season_auditor Access GOLEM Member Season Auditor model_golem_member_number golem_base.group_golem_auditor 1 0 0 0
5 access_golem_member_season_user Access GOLEM Member Season User model_golem_member_number golem_base.group_golem_user 1 1 1 1
6 access_ir_config_parameter_manager Access IR Config Parameter Manager base.model_ir_config_parameter golem_base.group_golem_manager 1 1 1 1
access_golem_age_range_manager Access Golem Age Range Manager model_golem_member_age_range golem_base.group_golem_manager 1 1 1 1
access_golem_age_range_auditor Access Golem Age Range Auditor model_golem_member_age_range golem_base.group_golem_auditor 1 0 0 0
access_golem_age_range_user Access Golem Age Range User model_golem_member_age_range golem_base.group_golem_user 1 0 0 0

View File

@ -1,46 +0,0 @@
<?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>
<!-- Tree -->
<record model="ir.ui.view" id="golem_member_age_range_tree">
<field name="name">GOLEM Member Age Range Tree</field>
<field name="model">golem.member.age.range</field>
<field name="arch" type="xml">
<tree editable="botom">
<field name="name"/>
<field name="lower_bound" />
<field name="higher_bound"/>
</tree>
</field>
</record>
<!-- Actions -->
<act_window id="golem_member_age_range_action" name="Age Ranges"
res_model="golem.member.age.range" view_mode="tree" />
<!-- Menus -->
<menuitem id="golem_member_age_range_menu" name="Age Ranges"
parent="golem_membership.menu_config_association" sequence="30"
action="golem_member_age_range_action" />
</data>
</odoo>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017-2020 Fabien Bourgeois <fabien@yaltik.com>
Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -38,24 +38,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="target">new</field>
</record>
<!-- TMP: from mail base addons, urgency before PR42 -->
<record id="email_template_partner" model="mail.template">
<field name="name">Service User Mass Mail</field>
<field name="model_id" ref="golem_member.model_golem_member"/>
<field name="auto_delete" eval="True"/>
<field name="partner_to">${object.partner_id.id}</field>
</record>
<act_window name="Service User Mass Mailing" res_model="mail.compose.message"
src_model="golem.member" view_mode="form" multi="True" target="new"
key2="client_action_multi" id="action_partner_mass_mail"
context="{'default_composition_mode': 'mass_mail',
'default_partner_to': '${object.partner_id.id or \'\'}',
'default_use_template': True,
'default_template_id': ref('email_template_partner')}"/>
<record id="email_template_partner" model="mail.template">
<field name="ref_ir_act_window" ref="action_partner_mass_mail"/>
</record>
0
<!-- Forms -->
<record id="golem_member_form" model="ir.ui.view">
<field name="name">GOLEM Member Form</field>
@ -217,8 +199,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="city" />
<field name="country_id" />
<field name="number" />
<field name="number_manual" />
<field name="is_number_manual" />
<field name="season_ids" />
<field name="category_id"/>
<templates>
@ -237,8 +217,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<div class="oe_kanban_details">
<h4 class="oe_partner_heading">
<a type="open"><field name="display_name" /></a>
<t t-if="record.is_number_manual == False and record.number.raw_value != ''">(N° <field name="number" />)</t>
<t t-if="record.is_number_manual and record.number_manual.raw_value != ''">(N° <field name="number_manual" />)</t>
<t t-if="record.number.raw_value != ''">(N° <field name="number" />)</t>
</h4>
<div class="oe_kanban_partner_categories" />
<div class="oe_kanban_partner_links" />
@ -283,7 +262,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<tree string="GOLEM Members">
<field name="season_ids" options="{'no_create': True}" />
<field name="number" />
<field name="number_manual" string="Member number" />
<field name="name" />
<field name="contact_address" />
<field name="phone" />
@ -299,8 +277,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="model">golem.member</field>
<field name="arch" type="xml">
<search>
<field name="number"
filter_domain="['|', ('number', 'ilike', self), ('number_manual', 'ilike', self)]" />
<field name="number" />
<field name="name" />
<field name="season_ids" widget="many2one" />
<field name="area_id" />
@ -346,16 +323,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<!-- Add new menu items -->
<menuitem id="golem_member_user_menu" name="Service users"
parent="golem_membership.menu_association" sequence="5"
action="golem_member_user_action" groups="golem_base.group_golem_user,golem_base.group_golem_auditor" />
action="golem_member_user_action" groups="golem_base.group_golem_user" />
<menuitem id="golem_members_menu" name="Subscribers"
parent="golem_membership.menu_association" sequence="10"
action="golem_member_action" groups="golem_base.group_golem_user,golem_base.group_golem_auditor" />
action="golem_member_action" groups="golem_base.group_golem_user" />
<menuitem id="golem_member_tool_menu" name="Tools"
parent="golem_membership.menu_association" sequence="80"
groups="golem_base.group_golem_user" />
<menuitem id="res_partner_category_menu" name="Service User Tags"
parent="golem_membership.menu_config_association" sequence="15"
action="res_partner_category_action"
groups="golem_base.group_golem_manager,golem_base.group_golem_auditor" />
groups="golem_base.group_golem_manager" />
</data>
</odoo>

View File

@ -2,7 +2,6 @@
<!--
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
@ -91,8 +90,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="arch" type="xml">
<field name="name" position="after">
<field name="member_number" />
<field name="age" />
<field name="area_id" />
</field>
<filter name="filter_my_partners" position="before">
<filter name="is_subscriber" string="Is Subscriber"
@ -106,24 +103,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<separator />
<filter name="is_service_user" string="Is Service User"
domain="[('member_id', '!=', False)]" />
<filter name="is_animator" string="Is Animator"
domain="[('animator_activity_ids', '!=', False)]" />
<separator />
</filter>
</field>
</record>
<record model="ir.ui.view" id="l10n_fr_department_filter_inherit_golem_member">
<field name="name">Partner search adaptations</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="l10n_fr_department.view_res_partner_filter" />
<field name="arch" type="xml">
<filter name="department_groupby" position="before">
<filter name="group_area" string="By Area"
context="{'group_by': 'area_id'}" />
</filter>
</field>
</record>
</data>
</odoo>

View File

@ -1,19 +0,0 @@
# -*- 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_member_analysis_wizard, golem_member_analysis

View File

@ -1,113 +0,0 @@
# -*- 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 Management """
import logging
from dateutil.relativedelta import relativedelta
from odoo import models, fields, api, _
_LOGGER = logging.getLogger(__name__)
class GolemMemberAnalysisPivot(models.TransientModel):
""" GOLEM Members Analysis Pivot Management """
_name = 'golem.member.analysis'
_description = 'GOLEM Members Analysis Management'
member_analysis_id = fields.Many2one('golem.member.analysis.wizard', index=True)
season_id = fields.Many2one('golem.season', 'Season', required=True,
ondelete='cascade')
member_id = fields.Many2one('golem.member', 'Service user')
area_id = fields.Many2one('golem.partner.area')
gender = fields.Selection([('male', _('Male')),
('female', _('Female')),
('not_disclosed', _('Not Disclosed'))])
category_id = fields.Many2one('res.partner.category')
age_start_season = fields.Integer(string='Age at season start')
age_end_season = fields.Integer(string='Age at season stop')
age_now = fields.Integer()
age_range_start_season = fields.Many2one('golem.member.age.range',
'Age range at season start')
age_range_end_season = fields.Many2one('golem.member.age.range',
'Age range at season end')
age_range_now = fields.Many2one('golem.member.age.range', 'Age range now')
@api.model
def get_root_category(self, category_ids):
""" Get Root Category """
categories = self.env['res.partner.category']
for category_id in category_ids:
if not category_id.parent_id:
return category_id
categories |= category_id.parent_id
return self.get_root_category(categories)
@api.constrains('member_id')
@api.multi
def compute_fields(self):
""" compute model fields """
for rec in self:
rec.area_id = rec.member_id.area_id
rec.gender = rec.member_id.gender
if rec.member_id.category_id:
rec.category_id = self.get_root_category(rec.member_id.category_id)
rec._compute_age()
rec._compute_age_range()
@api.multi
def _compute_age(self):
""" Compute age """
for rec in self:
if(rec.member_id.birthdate_date and rec.season_id.date_start
and rec.season_id.date_end):
start_season = fields.Date.from_string(rec.season_id.date_start)
end_season = fields.Date.from_string(rec.season_id.date_end)
age_start_season = relativedelta(
start_season,
fields.Date.from_string(rec.member_id.birthdate_date)
)
age_end_season = relativedelta(
end_season,
fields.Date.from_string(rec.member_id.birthdate_date)
)
rec.write({'age_end_season': age_end_season.years,
'age_start_season': age_start_season.years,
'age_now': rec.member_id.age})
@api.multi
def _compute_age_range(self):
""" Compute age range """
for rec in self:
if rec.age_start_season:
age_range = self.env['golem.member.age.range'].search(
[('lower_bound', '<=', rec.age_start_season),
('higher_bound', '>=', rec.age_start_season)],
limit=1)
rec.age_range_start_season = age_range
if rec.age_end_season:
age_range = self.env['golem.member.age.range'].search(
[('lower_bound', '<=', rec.age_end_season),
('higher_bound', '>=', rec.age_end_season)],
limit=1)
rec.age_range_end_season = age_range
if rec.age_now:
age_range = self.env['golem.member.age.range'].search(
[('lower_bound', '<=', rec.age_now),
('higher_bound', '>=', rec.age_now)],
limit=1)
rec.age_range_now = age_range

View File

@ -1,137 +0,0 @@
<?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>
<!-- Trees -->
<record id="golem_member_analysis_tree" model="ir.ui.view">
<field name="name">Service user Analysis Tree</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<tree editable="bottom" create="false" delete="false">
<field name="season_id" />
<field name="member_id" />
</tree>
</field>
</record>
<!-- Pivots -->
<!-- Gender -->
<record id="golem_member_analysis_pivot_age_start_gender" model="ir.ui.view">
<field name="name">Service user Analysis Age Start Gender 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="row"/>
<field name="gender" type="col"/>
</pivot>
</field>
</record>
<record id="golem_member_analysis_pivot_age_end_gender" model="ir.ui.view">
<field name="name">Service user Analysis Age End Gender Pivot</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<pivot string="Service user Analysis">
<field name="age_range_end_season" type="row"/>
<field name="gender" type="col"/>
</pivot>
</field>
</record>
<record id="golem_member_analysis_pivot_age_now_gender" model="ir.ui.view">
<field name="name">Service user Analysis Age Now Gender Pivot</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<pivot string="Service user Analysis">
<field name="age_range_now" type="row"/>
<field name="gender" type="col"/>
</pivot>
</field>
</record>
<!-- Area -->
<record id="golem_member_analysis_pivot_age_start_area" model="ir.ui.view">
<field name="name">Service user Analysis Age Start 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="area_id" type="row"/>
</pivot>
</field>
</record>
<record id="golem_member_analysis_pivot_age_end_area" model="ir.ui.view">
<field name="name">Service user Analysis Age End Area Pivot</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<pivot string="Service user Analysis">
<field name="age_range_end_season" type="col"/>
<field name="area_id" type="row"/>
</pivot>
</field>
</record>
<record id="golem_member_analysis_pivot_age_now_area" model="ir.ui.view">
<field name="name">Service user Analysis Age Now Area Pivot</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<pivot string="Service user Analysis">
<field name="age_range_now" type="col"/>
<field name="area_id" type="row"/>
</pivot>
</field>
</record>
<!-- Tag -->
<record id="golem_member_analysis_pivot_age_start_tag" model="ir.ui.view">
<field name="name">Service user Analysis Age Start Tag 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="category_id" type="row"/>
<field name="area_id" type="row"/>
</pivot>
</field>
</record>
<record id="golem_member_analysis_pivot_age_end_tag" model="ir.ui.view">
<field name="name">Service user Analysis Age End Tag Pivot</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<pivot string="Service user Analysis">
<field name="age_range_end_season" type="col"/>
<field name="category_id" type="row"/>
<field name="area_id" type="row"/>
</pivot>
</field>
</record>
<record id="golem_member_analysis_pivot_age_now_tag" model="ir.ui.view">
<field name="name">Service user Analysis Age Now Tag Pivot</field>
<field name="model">golem.member.analysis</field>
<field name="arch" type="xml">
<pivot string="Service user Analysis">
<field name="age_range_now" type="col"/>
<field name="category_id" type="row"/>
<field name="area_id" type="row"/>
</pivot>
</field>
</record>
</data>
</odoo>

View File

@ -1,128 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright 2019-2020 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 Management """
import logging
from odoo import models, fields, api, _
_LOGGER = logging.getLogger(__name__)
class GolemMemberAnalysis(models.TransientModel):
""" GOLEM Members Analysis Management """
_name = 'golem.member.analysis.wizard'
_description = 'GOLEM Members 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([('gender', 'By gender'), ('area', 'By area'),
('tag', 'By tag and area')], required=True,
default='gender')
age_computing = fields.Selection([('season_start', 'At season start'),
('season_end', 'At season stop'),
('now', 'Now')], required=True,
default='season_start', string='Age')
category_id = fields.Many2one('res.partner.category', ondelete='cascade')
service_user = fields.Selection([('user', 'Service user'),
('member', 'Member')], default='user',
string='Service users or members')
@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 == 'gender':
ref = u'golem_member.golem_member_analysis_pivot_age_start_gender'
elif rec.analyse_type == 'area':
ref = u'golem_member.golem_member_analysis_pivot_age_start_area'
elif rec.analyse_type == 'tag':
ref = u'golem_member.golem_member_analysis_pivot_age_start_tag'
elif rec.age_computing == 'season_end':
if rec.analyse_type == 'gender':
ref = u'golem_member.golem_member_analysis_pivot_age_end_gender'
elif rec.analyse_type == 'area':
ref = u'golem_member.golem_member_analysis_pivot_age_end_area'
elif rec.analyse_type == 'tag':
ref = u'golem_member.golem_member_analysis_pivot_age_end_tag'
else: # now
if rec.analyse_type == 'gender':
ref = u'golem_member.golem_member_analysis_pivot_age_now_gender'
elif rec.analyse_type == 'area':
ref = u'golem_member.golem_member_analysis_pivot_age_now_area'
elif rec.analyse_type == 'tag':
ref = u'golem_member.golem_member_analysis_pivot_age_now_tag'
return self.env.ref(ref, False)
@api.multi
def get_members(self):
""" Returns members """
self.ensure_one()
if self[0].service_user == 'user':
return self.env['golem.member'].search([]).filtered(
lambda m: self[0].season_id.id in m.season_ids.ids)
membership_ids = self[0].season_id.membership_ids.mapped('product_variant_id')
membership_set = set(membership_ids.ids)
return self.env['golem.member'].search([]).filtered(
lambda m: (self[0].season_id.id in m.season_ids.ids and
set(m.member_lines.mapped('membership_id.id')) & membership_set)
)
@api.multi
def members_analyse(self):
""" members analyse """
self.ensure_one()
analysis_rec = self[0]
# Remove existing analysis lines for current analysis
self.env['golem.member.analysis'].search(
[('member_analysis_id', '=', analysis_rec.id)]
).unlink()
members = analysis_rec.get_members()
if members:
for member in members:
self.env['golem.member.analysis'].create({
'member_id': member.id,
'season_id': analysis_rec.season_id.id,
'member_analysis_id': analysis_rec.id
})
analyse_pivot = analysis_rec.get_pivot_view()
return {
'name': _('Member Analysis'),
'type': 'ir.actions.act_window',
'res_model': 'golem.member.analysis',
'domain': [('member_analysis_id', '=', analysis_rec.id)],
'view_type': 'pivot',
'view_mode': 'pivot',
'view_id': analyse_pivot.id,
'target': 'current'
}

View File

@ -1,65 +0,0 @@
<?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_member_analysis_wizard_view_form">
<field name="name">GOLEM Member Analysis Wizard Form</field>
<field name="model">golem.member.analysis.wizard</field>
<field name="arch" type="xml">
<form string="Service User Analysis">
<header>
<button name="members_analyse" string="Run analysis"
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="service_user" widget="radio" />
<field name="analyse_type" widget="radio"/>
<field name="age_computing" widget="radio"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- Actions -->
<act_window id="golem_analysis_action" name="Service User Analysis"
res_model="golem.member.analysis.wizard" view_mode="form"
target="current"/>
<menuitem id="golem_analysis_menu" name="Service User Analysis"
parent="golem_membership.menu_association" sequence="50"
groups="golem_base.group_golem_user,golem_base.group_golem_auditor"
action="golem_analysis_action"/>
</data>
</odoo>

View File

@ -20,7 +20,7 @@
'name': 'GOLEM members account',
'summary': 'GOLEM non-profit members account',
'description': 'GOLEM non-profit members account',
'version': '10.0.1.1.1',
'version': '10.0.1.1.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3',

View File

@ -47,22 +47,34 @@ class GolemMember(models.Model):
def open_partner_invoices(self):
""" Open member invoices """
self.ensure_one()
action = self.env.ref('account.action_invoice_tree1').read()[0]
action['context'] = {'type':'out_invoice', 'journal_type': 'sale',
'search_default_partner_id': self[0].partner_id.id,
'default_partner_id': self[0].partner_id.id}
return action
action = self.env.ref('account.action_invoice_tree1')
context = {'type':'out_invoice', 'journal_type': 'sale',
'search_default_partner_id': self[0].partner_id.id,
'default_partner_id': self[0].partner_id.id}
return {'type': 'ir.actions.act_window',
'name': action.name,
'res_model': 'account.invoice',
'view_type': action.view_type,
'view_mode': action.view_mode,
'domain': action.domain,
'context': context}
@api.multi
def open_partner_payments(self):
""" Open member payments """
self.ensure_one()
action = self.env.ref('account.action_account_payments').read()[0]
action['context'] = {'default_payment_type': 'inbound',
'default_partner_type': 'customer',
'search_default_partner_id': self[0].partner_id.id,
'default_partner_id': self[0].partner_id.id}
return action
action = self.env.ref('account.action_account_payments')
context = {'default_payment_type': 'inbound',
'default_partner_type': 'customer',
'search_default_partner_id': self[0].partner_id.id,
'default_partner_id': self[0].partner_id.id}
return {'type': 'ir.actions.act_window',
'name': action.name,
'res_model': 'account.payment',
'view_type': action.view_type,
'view_mode': action.view_mode,
'domain': action.domain,
'context': context}
@api.depends('invoice_ids')
def _compute_last_payment_state(self):

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