diff --git a/golem_family_history/__manifest__.py b/golem_family_history/__manifest__.py
index 1034f9c..a1b9015 100644
--- a/golem_family_history/__manifest__.py
+++ b/golem_family_history/__manifest__.py
@@ -20,12 +20,12 @@
'name': 'GOLEM Families History',
'summary': 'GOLEM Families History',
'description': 'GOLEM Families History',
- 'version': '10.0.0.0.1',
+ 'version': '10.0.0.1.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Youssef El ouahby',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['golem_family'],
- 'data': ['views/golem_family_views.xml']
+ 'data': ['security/ir.model.access.csv', 'views/golem_family_views.xml']
}
diff --git a/golem_family_history/i18n/fr.po b/golem_family_history/i18n/fr.po
new file mode 100644
index 0000000..94df725
--- /dev/null
+++ b/golem_family_history/i18n/fr.po
@@ -0,0 +1,109 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * golem_family_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-26 06:41+0000\n"
+"PO-Revision-Date: 2018-10-26 08:45+0200\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_city
+msgid "City"
+msgstr "Ville"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_country_id
+msgid "Country"
+msgstr "Pays"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_family_id
+msgid "Family"
+msgstr "Famille"
+
+#. module: golem_family_history
+#: model:ir.model,name:golem_family_history.model_golem_family
+msgid "GOLEM Family Entity"
+msgstr "Famille"
+
+#. module: golem_family_history
+#: model:ir.model,name:golem_family_history.model_golem_family_history
+msgid "GOLEM Family History Management"
+msgstr "GOLEM Family History Management"
+
+#. module: golem_family_history
+#: model:ir.ui.view,arch_db:golem_family_history.golem_family_form_inherit_golem_family_history
+msgid "History"
+msgstr "Historique"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_family_history_ids
+msgid "History details"
+msgstr "Historique"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_id
+msgid "ID"
+msgstr "ID"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history___last_update
+msgid "Last Modified on"
+msgstr "Dernière Modification le"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_uid
+msgid "Last Updated by"
+msgstr "Dernière mise à jour par"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_date
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_member_ids
+msgid "Members"
+msgstr "Adhérents"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_season_id
+msgid "Season"
+msgstr "Saison"
+
+#. module: golem_family_history
+#: code:addons/golem_family_history/models/golem_family_history.py:30
+#: sql_constraint:golem.family.history:0
+#, python-format
+msgid "You can only have one history line for each family and season combination."
+msgstr "Vous ne pouvez avoir qu'une seule ligne par famille par saison."
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_zip_code
+msgid "ZIP"
+msgstr "Code postal"
+
diff --git a/golem_family_history/i18n/golem_family_history.pot b/golem_family_history/i18n/golem_family_history.pot
new file mode 100644
index 0000000..e7207d5
--- /dev/null
+++ b/golem_family_history/i18n/golem_family_history.pot
@@ -0,0 +1,109 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * golem_family_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-26 06:41+0000\n"
+"PO-Revision-Date: 2018-10-26 06:41+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_city
+msgid "City"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_country_id
+msgid "Country"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_create_date
+msgid "Created on"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_family_id
+msgid "Family"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model,name:golem_family_history.model_golem_family
+msgid "GOLEM Family Entity"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model,name:golem_family_history.model_golem_family_history
+msgid "GOLEM Family History Management"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.ui.view,arch_db:golem_family_history.golem_family_form_inherit_golem_family_history
+msgid "History"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_family_history_ids
+msgid "History details"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_id
+msgid "ID"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_member_ids
+msgid "Members"
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_season_id
+msgid "Season"
+msgstr ""
+
+#. module: golem_family_history
+#: code:addons/golem_family_history/models/golem_family_history.py:30
+#: sql_constraint:golem.family.history:0
+#, python-format
+msgid "You can only have one history line for each member and season combination."
+msgstr ""
+
+#. module: golem_family_history
+#: model:ir.model.fields,field_description:golem_family_history.field_golem_family_history_zip_code
+msgid "ZIP"
+msgstr ""
+
diff --git a/golem_family_history/models/golem_family.py b/golem_family_history/models/golem_family.py
index d242016..e9985e0 100644
--- a/golem_family_history/models/golem_family.py
+++ b/golem_family_history/models/golem_family.py
@@ -18,34 +18,33 @@
""" GOLEM Families Adaptations"""
-from odoo import models, fields, api, _
+from odoo import models, fields, api
class GolemFamily(models.Model):
""" GOLEM Family Adaptations """
_inherit = 'golem.family'
- family_history_ids = fields.One2many('golem.family.history', 'family_id')
+ family_history_ids = fields.One2many('golem.family.history', 'family_id',
+ readonly=True, string='History details')
- @api.constrains('city', 'country_id', 'member_ids')
+ @api.constrains('zip', 'city', 'country_id', 'member_ids')
def save_family_history(self):
- """ save family history """
+ """ Saves family history """
default_season = self.env['golem.season'].search([('is_default', '=', True)], limit=1)
for family in self:
- history = self.env['golem.family.history'].search([
+ history_id = self.env['golem.family.history'].search([
('family_id', '=', family.id),
('season_id', '=', default_season.id)], limit=1)
- if history:
- history.write({
- 'city': family.city,
- 'country_id': family.country_id.id,
- 'member_ids':[(6, False, family.member_ids.ids)]
- })
+ history_data = {
+ 'zip_code': family.zip,
+ 'city': family.city,
+ 'country_id': family.country_id.id,
+ 'member_ids':[(6, False, family.member_ids.ids)]
+ }
+ if history_id:
+ history_id.write(history_data)
else:
- self.env['golem.family.history'].create({
- 'family_id': family.id,
- 'season_id': default_season.id,
- 'city': family.city,
- 'country_id': family.country_id.id,
- 'member_ids':[(6, False, family.member_ids.ids)]
- })
+ history_data.update({'family_id': family.id,
+ 'season_id': default_season.id})
+ self.env['golem.family.history'].create(history_data)
diff --git a/golem_family_history/models/golem_family_history.py b/golem_family_history/models/golem_family_history.py
index d4c8e43..1eb4a23 100644
--- a/golem_family_history/models/golem_family_history.py
+++ b/golem_family_history/models/golem_family_history.py
@@ -18,18 +18,24 @@
""" GOLEM Family History Management """
-from odoo import models, fields, api, _
+from odoo import models, fields, _
class GolemFamilyHistory(models.Model):
""" GOLEM Family History Management """
_name = 'golem.family.history'
_description = 'GOLEM Family History Management'
- _order = "season_id desc, id desc"
+ _order = 'season_id desc, id desc'
+ _sql_constraints = [('golem_family_history_family_season_uniq',
+ 'UNIQUE (family_id, season_id)',
+ _('You can only have one history line for each '
+ 'family and season combination.'))]
family_id = fields.Many2one('golem.family', required=True, auto_join=True,
- ondelete="cascade")
+ string='Family', ondelete='cascade')
season_id = fields.Many2one('golem.season', required=True, auto_join=True,
- ondelete="cascade")
+ string='Season', ondelete='cascade')
+ zip_code = fields.Char(string='ZIP')
city = fields.Char()
country_id = fields.Many2one('res.country', string='Country')
- member_ids = fields.Many2many('res.partner')
+ member_ids = fields.Many2many('res.partner', string='Members',
+ auto_join=True)
diff --git a/golem_family_history/security/ir.model.access.csv b/golem_family_history/security/ir.model.access.csv
new file mode 100644
index 0000000..759fb24
--- /dev/null
+++ b/golem_family_history/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_golem_family_history_user,Access GOLEM Family History User,model_golem_family_history,golem_base.group_golem_user,1,1,1,1
diff --git a/golem_family_history/views/golem_family_views.xml b/golem_family_history/views/golem_family_views.xml
index 7fd747d..eba3c11 100644
--- a/golem_family_history/views/golem_family_views.xml
+++ b/golem_family_history/views/golem_family_views.xml
@@ -20,6 +20,7 @@ along with this program. If not, see .
+
Golem Family form history adaptations
@@ -32,6 +33,7 @@ along with this program. If not, see .
+
@@ -40,5 +42,6 @@ along with this program. If not, see .
+
diff --git a/golem_member_history/__manifest__.py b/golem_member_history/__manifest__.py
index 2f66d83..ed47bb9 100644
--- a/golem_member_history/__manifest__.py
+++ b/golem_member_history/__manifest__.py
@@ -19,12 +19,12 @@
{
'name': 'GOLEM Member History',
'summary': 'Member History',
- 'version': '10.0.0.0.1',
+ 'version': '10.0.0.1.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Youssef El ouahby',
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['golem_member', 'golem_pcs', 'golem_member_familyquotient'],
- 'data': ['views/golem_member_views.xml']
+ 'data': ['security/ir.model.access.csv', 'views/golem_member_views.xml']
}
diff --git a/golem_member_history/i18n/fr.po b/golem_member_history/i18n/fr.po
new file mode 100644
index 0000000..a3f3be1
--- /dev/null
+++ b/golem_member_history/i18n/fr.po
@@ -0,0 +1,148 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * golem_member_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-26 06:41+0000\n"
+"PO-Revision-Date: 2018-10-26 08:45+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_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_area_id
+msgid "Area"
+msgstr "Territoire"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_city
+msgid "City"
+msgstr "Ville"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_currency_id
+msgid "Currency"
+msgstr "Devise"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_family_quotient
+msgid "Family quotient"
+msgstr "Quotient familial"
+
+#. module: golem_member_history
+#: code:addons/golem_member_history/models/golem_member_history.py:37
+#: selection:golem.member.history,gender:0
+#, python-format
+msgid "Female"
+msgstr "Féminin"
+
+#. module: golem_member_history
+#: model:ir.model,name:golem_member_history.model_golem_member
+msgid "GOLEM Member"
+msgstr "Adhérent"
+
+#. module: golem_member_history
+#: model:ir.model,name:golem_member_history.model_golem_member_history
+msgid "GOLEM Member History Management"
+msgstr "GOLEM Member History Management"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_gender
+msgid "Gender"
+msgstr "Genre"
+
+#. module: golem_member_history
+#: model:ir.ui.view,arch_db:golem_member_history.golem_member_form_inherit_golem_member_history
+msgid "History"
+msgstr "Historique"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_member_history_ids
+msgid "History details"
+msgstr "Historique"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_id
+msgid "ID"
+msgstr "ID"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history___last_update
+msgid "Last Modified on"
+msgstr "Dernière Modification le"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_write_uid
+msgid "Last Updated by"
+msgstr "Dernière mise à jour par"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_write_date
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: golem_member_history
+#: code:addons/golem_member_history/models/golem_member_history.py:37
+#: selection:golem.member.history,gender:0
+#, python-format
+msgid "Male"
+msgstr "Masculin"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_nationality_id
+msgid "Nationality"
+msgstr "Nationalité"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_pcs_id
+msgid "PCS"
+msgstr "PCS"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_season_id
+msgid "Season"
+msgstr "Saison"
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_member_id
+msgid "Service user"
+msgstr "Usager"
+
+#. module: golem_member_history
+#: model:ir.model.fields,help:golem_member_history.field_golem_member_history_currency_id
+msgid "Utility field to express amount currency"
+msgstr "Champ utile pour indiquer le montant de la monnaie"
+
+#. module: golem_member_history
+#: code:addons/golem_member_history/models/golem_member_history.py:30
+#: sql_constraint:golem.member.history:0
+#, python-format
+msgid "You can only have one history line for each member and season combination."
+msgstr "Vous ne pouvez avoir qu'une seule ligne par usager par saison."
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_zip_code
+msgid "ZIP"
+msgstr "Code postal"
+
diff --git a/golem_member_history/i18n/golem_member_history.pot b/golem_member_history/i18n/golem_member_history.pot
new file mode 100644
index 0000000..575c6ab
--- /dev/null
+++ b/golem_member_history/i18n/golem_member_history.pot
@@ -0,0 +1,148 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * golem_member_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-26 06:41+0000\n"
+"PO-Revision-Date: 2018-10-26 06:41+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_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_area_id
+msgid "Area"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_city
+msgid "City"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_create_date
+msgid "Created on"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_currency_id
+msgid "Currency"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_family_quotient
+msgid "Family quotient"
+msgstr ""
+
+#. module: golem_member_history
+#: code:addons/golem_member_history/models/golem_member_history.py:37
+#: selection:golem.member.history,gender:0
+#, python-format
+msgid "Female"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model,name:golem_member_history.model_golem_member
+msgid "GOLEM Member"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model,name:golem_member_history.model_golem_member_history
+msgid "GOLEM Member History Management"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_gender
+msgid "Gender"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.ui.view,arch_db:golem_member_history.golem_member_form_inherit_golem_member_history
+msgid "History"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_member_history_ids
+msgid "History details"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_id
+msgid "ID"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: golem_member_history
+#: code:addons/golem_member_history/models/golem_member_history.py:37
+#: selection:golem.member.history,gender:0
+#, python-format
+msgid "Male"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_nationality_id
+msgid "Nationality"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_pcs_id
+msgid "PCS"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_season_id
+msgid "Season"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_member_id
+msgid "Service user"
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,help:golem_member_history.field_golem_member_history_currency_id
+msgid "Utility field to express amount currency"
+msgstr ""
+
+#. module: golem_member_history
+#: code:addons/golem_member_history/models/golem_member_history.py:30
+#: sql_constraint:golem.member.history:0
+#, python-format
+msgid "You can only have one history line for each member and season combination."
+msgstr ""
+
+#. module: golem_member_history
+#: model:ir.model.fields,field_description:golem_member_history.field_golem_member_history_zip_code
+msgid "ZIP"
+msgstr ""
+
diff --git a/golem_member_history/models/golem_member.py b/golem_member_history/models/golem_member.py
index 0c0448b..b4386ce 100644
--- a/golem_member_history/models/golem_member.py
+++ b/golem_member_history/models/golem_member.py
@@ -25,32 +25,28 @@ class GolemMember(models.Model):
""" GOLEM Member adaptations """
_inherit = 'golem.member'
- member_history_ids = fields.One2many('golem.member.history', 'member_id')
+ member_history_ids = fields.One2many('golem.member.history', 'member_id',
+ readonly=True, string='History details')
- @api.constrains('gender', 'area_id', 'city', 'family_quotient',
+ @api.constrains('gender', 'area_id', 'zip', 'city', 'family_quotient',
'pcs_id', 'nationality_id', 'season_ids')
def save_history(self):
- """ save member history """
+ """ Saves member history """
default_season = self.env['golem.season'].search([('is_default', '=', True)], limit=1)
for member in self:
- history = self.env['golem.member.history'].search([
+ history_id = self.env['golem.member.history'].search([
('member_id', '=', member.id),
('season_id', '=', default_season.id)], limit=1)
- if history:
-
- history.write({'gender': member.gender,
- 'nationality_id': member.nationality_id.id,
- 'city': member.city,
- 'family_quotient': member.family_quotient,
- 'pcs_id': member.pcs_id.id,
- 'area_id': member.area_id.id})
+ history_data = {'gender': member.gender,
+ 'nationality_id': member.nationality_id.id,
+ 'zip_code': member.zip,
+ 'city': member.city,
+ 'family_quotient': member.family_quotient,
+ 'pcs_id': member.pcs_id.id,
+ 'area_id': member.area_id.id}
+ if history_id:
+ history_id.write(history_data)
else:
- self.env['golem.member.history'].create({'member_id': member.id,
- 'season_id': default_season.id,
- 'gender': member.gender,
- 'nationality_id': member.nationality_id.id,
- 'city': member.city,
- 'family_quotient': member.family_quotient,
- 'pcs_id': member.pcs_id.id,
- 'area_id': member.area_id.id
- })
+ history_data.update({'member_id': member.id,
+ 'season_id': default_season.id})
+ self.env['golem.member.history'].create(history_data)
diff --git a/golem_member_history/models/golem_member_history.py b/golem_member_history/models/golem_member_history.py
index 3443e04..f304a01 100644
--- a/golem_member_history/models/golem_member_history.py
+++ b/golem_member_history/models/golem_member_history.py
@@ -18,22 +18,30 @@
""" GOLEM Member History Management """
-from odoo import models, fields, api, _
+from odoo import models, fields, _
class GolemMemberHistory(models.Model):
""" GOLEM Member History """
_name = 'golem.member.history'
_description = 'GOLEM Member History Management'
- _order = "season_id desc, id desc"
+ _order = 'season_id desc, id desc'
+ _sql_constraints = [('golem_member_history_member_season_uniq',
+ 'UNIQUE (member_id, season_id)',
+ _('You can only have one history line for each '
+ 'member and season combination.'))]
member_id = fields.Many2one('golem.member', required=True, auto_join=True,
- ondelete="cascade")
+ string='Service user', ondelete='cascade')
season_id = fields.Many2one('golem.season', required=True, auto_join=True,
- ondelete="cascade")
+ string='Season', ondelete='cascade')
gender = fields.Selection([('male', _('Male')), ('female', _('Female'))])
- area_id = fields.Many2one('golem.partner.area', string='Area', ondelete="cascade")
+ area_id = fields.Many2one('golem.partner.area', string='Area',
+ auto_join=True, ondelete='cascade')
+ zip_code = fields.Char(string='ZIP')
city = fields.Char()
family_quotient = fields.Monetary()
- currency_id = fields.Many2one(related="member_id.currency_id", string="Currency", readonly=True)
+ currency_id = fields.Many2one(related='member_id.currency_id',
+ string='Currency', readonly=True)
pcs_id = fields.Many2one('golem.pcs', string='PCS')
- nationality_id = fields.Many2one('res.country', string="Nationality", ondelete="cascade")
+ nationality_id = fields.Many2one('res.country', string='Nationality',
+ auto_join=True, ondelete='cascade')
diff --git a/golem_member_history/security/ir.model.access.csv b/golem_member_history/security/ir.model.access.csv
new file mode 100644
index 0000000..0fff7e0
--- /dev/null
+++ b/golem_member_history/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_golem_member_history_user,Access GOLEM Member History User,model_golem_member_history,golem_base.group_golem_user,1,1,1,1
diff --git a/golem_member_history/views/golem_member_views.xml b/golem_member_history/views/golem_member_views.xml
index df88eb4..7f69fe3 100644
--- a/golem_member_history/views/golem_member_views.xml
+++ b/golem_member_history/views/golem_member_views.xml
@@ -1,7 +1,7 @@