diff --git a/partner_profiles/__init__.py b/partner_profiles/__init__.py index 5305644..3616b30 100644 --- a/partner_profiles/__init__.py +++ b/partner_profiles/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- -from . import models \ No newline at end of file +from . import models +from . import wizard \ No newline at end of file diff --git a/partner_profiles/__manifest__.py b/partner_profiles/__manifest__.py index 0525a31..dad567c 100644 --- a/partner_profiles/__manifest__.py +++ b/partner_profiles/__manifest__.py @@ -3,7 +3,7 @@ { "name": "partner_profiles", - "version": "12.0.2.1.1", + "version": "12.0.2.2.0", "author": "Elabore", "website": "https://elabore.coop", "maintainer": "Stéphan Sainléger", @@ -26,6 +26,7 @@ # always loaded "data": [ "security/ir.model.access.csv", + "wizard/create_position_profile.xml", "views/res_partner_view.xml", "views/partner_profile_view.xml", "data/partner_profile_data.xml", diff --git a/partner_profiles/i18n/fr.po b/partner_profiles/i18n/fr.po index a6da9c1..7930b40 100644 --- a/partner_profiles/i18n/fr.po +++ b/partner_profiles/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 10:28+0000\n" -"PO-Revision-Date: 2023-05-16 10:28+0000\n" +"POT-Creation-Date: 2023-05-23 15:09+0000\n" +"PO-Revision-Date: 2023-05-23 15:09+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -15,11 +15,23 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "You are about to create a Position Profile which\n" +" represents the role or the job of a person in a structure." +msgstr "Vous allez créer un profil Position qui\n" +" représente le rôle que tient une personne au sein d'une structure."" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Address" msgstr "Adresse" +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "Cancel" +msgstr "Annuler" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "City" @@ -33,33 +45,66 @@ msgstr "Société" #. module: partner_profiles #: model:ir.model,name:partner_profiles.model_res_partner msgid "Contact" -msgstr "Contact" +msgstr "" #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Country" msgstr "Pays" +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "Create" +msgstr "Créer" + +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view +msgid "Create New Position" +msgstr "Créer une nouvelle position" + +#. module: partner_profiles +#: model:ir.actions.act_window,name:partner_profiles.action_create_position_profile_wizard +msgid "Create Position Profile" +msgstr "Créer un profil Position" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Create Public Profile" msgstr "Créer le profil public" #. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "Create a position profile" +msgstr "Créer un profil Position" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__create_uid #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_uid msgid "Created by" msgstr "Créé par" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__create_date #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_date msgid "Created on" msgstr "Créé le" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__display_name #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__display_name msgid "Display Name" msgstr "Nom affiché" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__email +msgid "Email" +msgstr "Courriel" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__function +msgid "Function" +msgstr "Fonction" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__has_position #: model:ir.model.fields,field_description:partner_profiles.field_res_users__has_position @@ -67,9 +112,15 @@ msgid "Has Position" msgstr "A une position" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__id #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__id msgid "ID" -msgstr "ID" +msgstr "" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__is_company +msgid "Is Company" +msgstr "Est une société" #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__is_main_profile @@ -90,16 +141,19 @@ msgid "Is Public Profile" msgstr "Est un profil Public" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile____last_update #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile____last_update msgid "Last Modified on" msgstr "Dernière modification le" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__write_uid #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_uid msgid "Last Updated by" msgstr "Dernière mise à jour par" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__write_date #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_date msgid "Last Updated on" msgstr "Dernière mise à jour le" @@ -121,6 +175,11 @@ msgstr "Profil principal" msgid "Name" msgstr "Nom" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__comment +msgid "Notes" +msgstr "Commentaires" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__other_contact_ids #: model:ir.model.fields,field_description:partner_profiles.field_res_users__other_contact_ids @@ -135,7 +194,6 @@ msgstr "Profiles de contact" #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__partner_profile #: model:ir.model.fields,field_description:partner_profiles.field_res_users__partner_profile -#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Partner profile" msgstr "Profil de contact" @@ -164,6 +222,16 @@ msgstr "Contact : Migration des Contacts standards aux Conctacts à profile" msgid "Partner: generate missing public profiles" msgstr "Contact : Générer les profil publics manquant" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__partner_id +msgid "Person" +msgstr "Personne" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__phone +msgid "Phone" +msgstr "Téléphone" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model:partner.profile,name:partner_profiles.partner_profile_position @@ -185,7 +253,7 @@ msgstr "Profil public" #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__ref msgid "Ref" -msgstr "Ref" +msgstr "" #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view @@ -202,6 +270,11 @@ msgstr "Rue 2 ..." msgid "Street..." msgstr "Rue.." +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__structure_id +msgid "Structure" +msgstr "Structure" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__to_migrate #: model:ir.model.fields,field_description:partner_profiles.field_res_users__to_migrate @@ -211,7 +284,12 @@ msgstr "A migrer" #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "ZIP" -msgstr "ZIP" +msgstr "" + +#. module: partner_profiles +#: model:ir.model,name:partner_profiles.model_create_position_profile +msgid "create Position Profile" +msgstr "créer un profil Position" #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view diff --git a/partner_profiles/i18n/partner_profiles.pot b/partner_profiles/i18n/partner_profiles.pot index 443da49..5739158 100644 --- a/partner_profiles/i18n/partner_profiles.pot +++ b/partner_profiles/i18n/partner_profiles.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-16 10:27+0000\n" -"PO-Revision-Date: 2023-05-16 10:27+0000\n" +"POT-Creation-Date: 2023-05-23 15:04+0000\n" +"PO-Revision-Date: 2023-05-23 15:04+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -15,11 +15,22 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "You are about to create a Position Profile which\n" +" represents the role or the job of a person in a structure." +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Address" msgstr "" +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "Cancel" +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "City" @@ -40,26 +51,59 @@ msgstr "" msgid "Country" msgstr "" +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "Create" +msgstr "" + +#. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view +msgid "Create New Position" +msgstr "" + +#. module: partner_profiles +#: model:ir.actions.act_window,name:partner_profiles.action_create_position_profile_wizard +msgid "Create Position Profile" +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Create Public Profile" msgstr "" #. module: partner_profiles +#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form +msgid "Create a position profile" +msgstr "" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__create_uid #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_uid msgid "Created by" msgstr "" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__create_date #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_date msgid "Created on" msgstr "" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__display_name #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__display_name msgid "Display Name" msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__email +msgid "Email" +msgstr "" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__function +msgid "Function" +msgstr "" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__has_position #: model:ir.model.fields,field_description:partner_profiles.field_res_users__has_position @@ -67,10 +111,16 @@ msgid "Has Position" msgstr "" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__id #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__id msgid "ID" msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__is_company +msgid "Is Company" +msgstr "" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__is_main_profile #: model:ir.model.fields,field_description:partner_profiles.field_res_users__is_main_profile @@ -90,16 +140,19 @@ msgid "Is Public Profile" msgstr "" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile____last_update #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile____last_update msgid "Last Modified on" msgstr "" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__write_uid #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_uid msgid "Last Updated by" msgstr "" #. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__write_date #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_date msgid "Last Updated on" msgstr "" @@ -121,6 +174,11 @@ msgstr "" msgid "Name" msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__comment +msgid "Notes" +msgstr "" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__other_contact_ids #: model:ir.model.fields,field_description:partner_profiles.field_res_users__other_contact_ids @@ -135,7 +193,6 @@ msgstr "" #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__partner_profile #: model:ir.model.fields,field_description:partner_profiles.field_res_users__partner_profile -#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Partner profile" msgstr "" @@ -164,6 +221,16 @@ msgstr "" msgid "Partner: generate missing public profiles" msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__partner_id +msgid "Person" +msgstr "" + +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__phone +msgid "Phone" +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model:partner.profile,name:partner_profiles.partner_profile_position @@ -202,6 +269,11 @@ msgstr "" msgid "Street..." msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__structure_id +msgid "Structure" +msgstr "" + #. module: partner_profiles #: model:ir.model.fields,field_description:partner_profiles.field_res_partner__to_migrate #: model:ir.model.fields,field_description:partner_profiles.field_res_users__to_migrate @@ -213,6 +285,11 @@ msgstr "" msgid "ZIP" msgstr "" +#. module: partner_profiles +#: model:ir.model,name:partner_profiles.model_create_position_profile +msgid "create Position Profile" +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "e.g. https://www.odoo.com" diff --git a/partner_profiles/views/res_partner_view.xml b/partner_profiles/views/res_partner_view.xml index da4ac91..ee0806d 100644 --- a/partner_profiles/views/res_partner_view.xml +++ b/partner_profiles/views/res_partner_view.xml @@ -56,36 +56,24 @@ position="attributes"> 1 - - - + + {'invisible': [('is_company','=',True)]} - - true - - - {'default_partner_profile': 3, 'default_contact_id': - active_id, 'default_name': name, 'default_street': street, - 'default_street2': street2, 'default_city': city, 'default_state_id': - state_id, 'default_zip': zip, 'default_country_id': country_id, - 'default_supplier': supplier} - - - - - + + + @@ -160,6 +148,9 @@ + + + diff --git a/partner_profiles/wizard/__init__.py b/partner_profiles/wizard/__init__.py new file mode 100644 index 0000000..32ec48c --- /dev/null +++ b/partner_profiles/wizard/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import create_position_profile \ No newline at end of file diff --git a/partner_profiles/wizard/create_position_profile.py b/partner_profiles/wizard/create_position_profile.py new file mode 100644 index 0000000..4bbeee2 --- /dev/null +++ b/partner_profiles/wizard/create_position_profile.py @@ -0,0 +1,66 @@ +# Copyright 2022 Elabore (https://elabore.coop) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + +class CreatePositionProfile(models.TransientModel): + _name = "create.position.profile" + _description = "create Position Profile" + + @api.model + def _default_is_company(self): + return self.env['res.partner'].browse(self._context.get('active_ids')).is_company + + @api.model + def _default_structure_id(self): + current_partner_id = self.env['res.partner'].browse(self._context.get('active_ids')) + if current_partner_id.is_company: + return current_partner_id.id + else: + return None + + @api.model + def _default_partner_id(self): + current_partner_id = self.env['res.partner'].browse(self._context.get('active_ids')) + if not current_partner_id.is_company: + return current_partner_id.id + else: + return None + + is_company = fields.Boolean('Is Company', default=_default_is_company) + structure_id = fields.Many2one('res.partner', string='Structure', domain="[('is_company', '=', True), ('is_main_profile', '=', True)]", default=_default_structure_id ) + partner_id = fields.Many2one('res.partner', string='Person', domain="[('is_company', '=', False), ('is_main_profile', '=', True)]", default=_default_partner_id) + function = fields.Char('Function') + phone = fields.Char('Phone') + email = fields.Char('Email') + comment = fields.Text('Notes') + + def _compute_position_profile_values(self): + values= { + "contact_id": self.partner_id.id, + "parent_id": self.structure_id.id, + "function": self.function, + "name": self.partner_id.name, + "phone": self.phone, + "email": self.email, + "comment" : self.comment, + "partner_profile": self.env.ref("partner_profiles.partner_profile_position").id + } + return values + + + @api.multi + def create_position_profile(self): + values = self._compute_position_profile_values() + position_partner_id = self.env["res.partner"].create(values) + view = self.env.ref("base.view_partner_form") + return { + "name": "Position Partner created", + "view_type": "form", + "view_mode": "form", + "view_id": view.id, + "res_model": "res.partner", + "type": "ir.actions.act_window", + "res_id": position_partner_id.id, + "context": self.env.context, + } \ No newline at end of file diff --git a/partner_profiles/wizard/create_position_profile.xml b/partner_profiles/wizard/create_position_profile.xml new file mode 100644 index 0000000..73c5348 --- /dev/null +++ b/partner_profiles/wizard/create_position_profile.xml @@ -0,0 +1,51 @@ + + + + create.position.wizard.view.form + create.position.profile + + + + + You are about to create a Position Profile which + represents the role or the job of a person in a structure. + + + + + + + + + + + + + + + + + + Create Position Profile + create.position.profile + form + form + + new + + + + + \ No newline at end of file