diff --git a/ffck_commons/__init__.py b/ffck_commons/__init__.py
index e69de29..a0fdc10 100644
--- a/ffck_commons/__init__.py
+++ b/ffck_commons/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import models
diff --git a/ffck_commons/__manifest__.py b/ffck_commons/__manifest__.py
index fd79159..3cd42b9 100644
--- a/ffck_commons/__manifest__.py
+++ b/ffck_commons/__manifest__.py
@@ -11,6 +11,7 @@
"category": "Technical",
"depends": [
"base",
+ "l10n_fr_association",
"partner_contact_email2",
"partner_contact_phones2",
"partner_firstname",
@@ -26,7 +27,7 @@
"data/ffck_structure_type.xml",
"data/res_partner.xml",
# Security
- # 'security/res_groups.xml',
+ "security/ir.model.access.csv",
# Views
"views/res_partner.xml",
# Wizards
diff --git a/ffck_commons/data/ffck_structure_type.xml b/ffck_commons/data/ffck_structure_type.xml
index ecdc02c..b7f80c8 100644
--- a/ffck_commons/data/ffck_structure_type.xml
+++ b/ffck_commons/data/ffck_structure_type.xml
@@ -12,38 +12,43 @@
CRCK
CRCK
reg
+
CDCK
CDCK
dep
+
Affiliate member
CLUB
loc
+
Type A agreed member
AGRA
loc
+
Type B agreed member
AGRB
loc
+
Conventioned member
CONV
loc
+
-
\ No newline at end of file
diff --git a/ffck_commons/data/res_partner.xml b/ffck_commons/data/res_partner.xml
index 3d90a2a..7a02642 100644
--- a/ffck_commons/data/res_partner.xml
+++ b/ffck_commons/data/res_partner.xml
@@ -2,18 +2,26 @@
-
+
Fédération Française Canoë-Kayak et Sports de Pagaie
-
-
-
-
+
+ Stade nautique olympique d’Ile-de-France
+ Route de Torcy
+ 77360
+ VAIRES SUR MARNE
-
-
-
-
+ FR08785724378
+ +33 1 45 11 08 50
+ ffck@ffck.org
+ https://ffck.org
+ FFCK
+ W941001049
+ 78572437800050
+
+ 0
+ nat
+
diff --git a/ffck_commons/i18n/fr.po b/ffck_commons/i18n/fr.po
new file mode 100644
index 0000000..4a63bea
--- /dev/null
+++ b/ffck_commons/i18n/fr.po
@@ -0,0 +1,201 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * ffck_commons
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0-20230613\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-05-26 13:55+0000\n"
+"PO-Revision-Date: 2024-05-26 13:55+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: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__active
+msgid "Active"
+msgstr "Actif"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__cdck_partner_id
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__cdck_partner_id
+msgid "CDCK partner"
+msgstr "CDCK"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__crck_partner_id
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__crck_partner_id
+msgid "CRCK partner"
+msgstr "CRCK"
+
+#. module: ffck_commons
+#: model:ir.model,name:ffck_commons.model_res_partner
+msgid "Contact"
+msgstr ""
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: ffck_commons
+#: model:ir.model.fields.selection,name:ffck_commons.selection__ffck_structure_type__scale__dep
+#: model:ir.model.fields.selection,name:ffck_commons.selection__res_partner__partner_scale__dep
+msgid "Departmental"
+msgstr "Départementale"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__display_name
+msgid "Display Name"
+msgstr "Nom d'affichage"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__ffck_partner_code
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__ffck_partner_code
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "FFCK"
+msgstr ""
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__cdck_partner_code
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__crck_partner_code
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__partner_code
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__cdck_partner_code
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__crck_partner_code
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__partner_code
+msgid "FFCK code"
+msgstr "Code FFCK"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__ffck_network
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__ffck_network
+msgid "FFCK network"
+msgstr "Réseau FFCK"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__ffck_partner_id
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__ffck_partner_id
+msgid "FFCK partner"
+msgstr "FFCK"
+
+#. module: ffck_commons
+#: model:ir.model,name:ffck_commons.model_ffck_structure_type
+msgid "FFCK structure type"
+msgstr "Type de structure"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__id
+msgid "ID"
+msgstr ""
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type____last_update
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__write_uid
+msgid "Last Updated by"
+msgstr "Dernière modification par"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__write_date
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: ffck_commons
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "License code"
+msgstr "N° de licence"
+
+#. module: ffck_commons
+#: model:ir.model.fields.selection,name:ffck_commons.selection__ffck_structure_type__scale__lic
+#: model:ir.model.fields.selection,name:ffck_commons.selection__res_partner__partner_scale__lic
+msgid "Licensee"
+msgstr "Licencié"
+
+#. module: ffck_commons
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "Licensee information"
+msgstr "Informations licencié"
+
+#. module: ffck_commons
+#: model:ir.model.fields.selection,name:ffck_commons.selection__ffck_structure_type__scale__loc
+#: model:ir.model.fields.selection,name:ffck_commons.selection__res_partner__partner_scale__loc
+msgid "Local"
+msgstr "Locale"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__name
+msgid "Name"
+msgstr "Nom"
+
+#. module: ffck_commons
+#: model:ir.model.fields.selection,name:ffck_commons.selection__ffck_structure_type__scale__nat
+#: model:ir.model.fields.selection,name:ffck_commons.selection__res_partner__partner_scale__nat
+msgid "National"
+msgstr "Nationale"
+
+#. module: ffck_commons
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "Network"
+msgstr "Réseau fédéral"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__parent_id
+msgid "Parent"
+msgstr ""
+
+#. module: ffck_commons
+#: model:ir.model.fields.selection,name:ffck_commons.selection__ffck_structure_type__scale__reg
+#: model:ir.model.fields.selection,name:ffck_commons.selection__res_partner__partner_scale__reg
+msgid "Regional"
+msgstr "Régionale"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__scale
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__partner_scale
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__partner_scale
+msgid "Scale"
+msgstr "Échelle"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_ffck_structure_type__short
+msgid "Short"
+msgstr "Initiales"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__first_membership_date
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__first_membership_date
+msgid "Structure 1st membership"
+msgstr "Première adhésion"
+
+#. module: ffck_commons
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "Structure code"
+msgstr "Code structure"
+
+#. module: ffck_commons
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "Structure dates"
+msgstr "Dates de la structure"
+
+#. module: ffck_commons
+#: model_terms:ir.ui.view,arch_db:ffck_commons.view_partner_form_inherit_base
+msgid "Structure information"
+msgstr "Infos de la structure"
+
+#. module: ffck_commons
+#: model:ir.model.fields,field_description:ffck_commons.field_res_partner__ffck_structure_type_id
+#: model:ir.model.fields,field_description:ffck_commons.field_res_users__ffck_structure_type_id
+msgid "Structure type"
+msgstr "Type de structure"
diff --git a/ffck_commons/models/__init__.py b/ffck_commons/models/__init__.py
index 91fed54..86cfff5 100644
--- a/ffck_commons/models/__init__.py
+++ b/ffck_commons/models/__init__.py
@@ -1 +1,3 @@
+# -*- coding: utf-8 -*-
+from . import ffck_structure_type
from . import res_partner
diff --git a/ffck_commons/models/ffck_structure_type.py b/ffck_commons/models/ffck_structure_type.py
index d9a6847..7dfa950 100644
--- a/ffck_commons/models/ffck_structure_type.py
+++ b/ffck_commons/models/ffck_structure_type.py
@@ -11,4 +11,4 @@ class FfckStructureType(models.Model):
short = fields.Char("Short", required=True, index=True)
scale = fields.Selection(SCALES, string="Scale", required=True)
active = fields.Boolean(string="Active", default=True)
- parent_id = fields.Many2one("ffck.structure.type", string="parent")
+ parent_id = fields.Many2one(comodel_name="ffck.structure.type", string="Parent")
diff --git a/ffck_commons/models/res_partner.py b/ffck_commons/models/res_partner.py
index 298c1fa..27a8828 100644
--- a/ffck_commons/models/res_partner.py
+++ b/ffck_commons/models/res_partner.py
@@ -1,17 +1,5 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
-from odoo.osv.expression import OR, AND
-
-# STRUCTURE_TYPES = [
-# ('ffck', 'Federal'),
-# ('crck', 'Region'),
-# ('cdck', 'Department'),
-# ('club', 'Affiliate'),
-# ('agra', 'Agreement A'),
-# ('agrb', 'Agreement B'),
-# ('conv', 'Convention'),
-# ('asso', 'Associated'),
-# ]
SCALES = [
("nat", "National"),
@@ -27,7 +15,7 @@ class ResPartner(models.Model):
@api.model
def _get_ffck_partner(self):
- ffck = self.env.ref("ffck_commons.ffck_partner")
+ ffck = self.env.ref("ffck_commons.res_partner_ffck", raise_if_not_found=False)
main = self.env.ref("base.main_partner")
if main.ref == "FFCK":
if ffck.active:
@@ -37,8 +25,6 @@ class ResPartner(models.Model):
return ffck
# Partner fields
- structure_create_date = fields.Date("Structure creation")
- # FFCK fields
ffck_network = fields.Boolean(string="FFCK network")
first_membership_date = fields.Date("Structure 1st membership")
# Structure typing
@@ -46,29 +32,35 @@ class ResPartner(models.Model):
selection=SCALES,
string="Scale",
)
- ffck_type_id = fields.Many2one(
+ ffck_structure_type_id = fields.Many2one(
comodel_name="ffck.structure.type", string="Structure type"
)
- # structure_type = fields.Selection(
- # selection=STRUCTURE_TYPES,
- # string="Structure",
- # )
+ partner_code = fields.Char(string="FFCK code", size=6, index=True)
+ # partner_code_editable = fields.Boolean(string="FFCK code editable", compute="_can_edit_partner_code")
+ # FFCK
ffck_partner_id = fields.Many2one(
"res.partner",
string="FFCK partner",
default=_get_ffck_partner,
ondelete="restrict",
)
- ffck_code = fields.Char(string="FFCK", default="0", readonly=True)
+ ffck_partner_code = fields.Char(string="FFCK", default="0", readonly=True)
+ # CRCK
crck_partner_id = fields.Many2one(
- "res.partner", string="CRCK partner", index=True, ondelete="restrict"
+ "res.partner",
+ string="CRCK partner",
+ index=True,
+ ondelete="restrict",
)
- crck_code = fields.Char(related="crck_partner_id.partner_code", store=True)
+ crck_partner_code = fields.Char(related="crck_partner_id.partner_code", store=True)
+ # CDCK
cdck_partner_id = fields.Many2one(
- "res.partner", string="CDCK partner", index=True, ondelete="restrict"
+ "res.partner",
+ string="CDCK partner",
+ index=True,
+ ondelete="restrict",
)
- cdck_code = fields.Char(related="cdck_partner_id.partner_code", store=True)
- partner_code = fields.Char(string="FFCK code", size=6, index=True, readonly=True)
+ cdck_partner_code = fields.Char(related="cdck_partner_id.partner_code", store=True)
@api.model
def name_search(self, name="", args=None, operator="ilike", limit=100):
@@ -112,7 +104,7 @@ class ResPartner(models.Model):
# ONCHANGES
- @api.onchange("partner_code")
+ @api.onchange("partner_code", "company_type", "ffck_network")
def onchange_partner_code(self):
if self.ffck_network and self.company_type == "individual":
code = self.partner_code
@@ -121,11 +113,11 @@ class ResPartner(models.Model):
elif len(code) > 6:
self.update({"partner_code": code[:-6]})
- @api.onchange("company_type", "partner_scale", "ffck_type_id")
+ @api.onchange("company_type", "partner_scale", "ffck_structure_type_id")
def onchange_comp_type(self):
if self.company_type == "individual":
self.update({"partner_scale": "lic"})
elif self.partner_scale == "lic":
self.update({"partner_scale": False})
- elif self.ffck_type_id:
- self.update({"partner_scale": self.ffck_type_id.scale})
+ elif self.ffck_structure_type_id:
+ self.update({"partner_scale": self.ffck_structure_type_id.scale})
diff --git a/ffck_commons/security/ir.model.access.csv b/ffck_commons/security/ir.model.access.csv
new file mode 100644
index 0000000..d0d5d35
--- /dev/null
+++ b/ffck_commons/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_ir_model_all,All ffck.structure.type,ffck_commons.model_ffck_structure_type,,1,0,0,0
+access_ir_model_group_partner_manager,Partner manager ffck.structure.type,ffck_commons.model_ffck_structure_type,base.group_partner_manager,1,1,1,0
\ No newline at end of file
diff --git a/ffck_commons/security/ir_rule.xml b/ffck_commons/security/ir_rule.xml
new file mode 100644
index 0000000..c5d0d52
--- /dev/null
+++ b/ffck_commons/security/ir_rule.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ffck_commons/security/res_groups.xml b/ffck_commons/security/res_groups.xml
new file mode 100644
index 0000000..86dbb2c
--- /dev/null
+++ b/ffck_commons/security/res_groups.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ffck_commons/views/res_partner.xml b/ffck_commons/views/res_partner.xml
index c3d3713..96036a3 100644
--- a/ffck_commons/views/res_partner.xml
+++ b/ffck_commons/views/res_partner.xml
@@ -6,31 +6,38 @@
res.partner
-
+
-
-
-
+
+
+
-
+
+ attrs="{'invisible':[('is_company','=',True)]}" />
-
-
-
+ attrs="{'invisible':[('is_company','=',False)]}" />
+
+
+
+
+
+
-
+
-
+
-