[IMP] partner_profiles: refactoring of position profile creation

This commit is contained in:
Stéphan Sainléger
2023-05-23 16:53:50 +02:00
committed by Stéphan Sainléger
parent 379b598754
commit a4c1c467c5
8 changed files with 304 additions and 36 deletions

View File

@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from . import models from . import models
from . import wizard

View File

@@ -3,7 +3,7 @@
{ {
"name": "partner_profiles", "name": "partner_profiles",
"version": "12.0.2.1.1", "version": "12.0.2.2.0",
"author": "Elabore", "author": "Elabore",
"website": "https://elabore.coop", "website": "https://elabore.coop",
"maintainer": "Stéphan Sainléger", "maintainer": "Stéphan Sainléger",
@@ -26,6 +26,7 @@
# always loaded # always loaded
"data": [ "data": [
"security/ir.model.access.csv", "security/ir.model.access.csv",
"wizard/create_position_profile.xml",
"views/res_partner_view.xml", "views/res_partner_view.xml",
"views/partner_profile_view.xml", "views/partner_profile_view.xml",
"data/partner_profile_data.xml", "data/partner_profile_data.xml",

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 12.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 10:28+0000\n" "POT-Creation-Date: 2023-05-23 15:09+0000\n"
"PO-Revision-Date: 2023-05-16 10:28+0000\n" "PO-Revision-Date: 2023-05-23 15:09+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -15,11 +15,23 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form
msgid "<span>You are about to create a <strong>Position Profile</strong> which\n"
" represents the role or the job of a person in a structure.</span>"
msgstr "<span>Vous allez créer un <strong>profil Position</strong> qui\n"
" représente le rôle que tient une personne au sein d'une structure.</span>""
#. module: partner_profiles #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "Address" msgid "Address"
msgstr "Adresse" 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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "City" msgid "City"
@@ -33,33 +45,66 @@ msgstr "Société"
#. module: partner_profiles #. module: partner_profiles
#: model:ir.model,name:partner_profiles.model_res_partner #: model:ir.model,name:partner_profiles.model_res_partner
msgid "Contact" msgid "Contact"
msgstr "Contact" msgstr ""
#. module: partner_profiles #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "Country" msgid "Country"
msgstr "Pays" 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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "Create Public Profile" msgid "Create Public Profile"
msgstr "Créer le profil public" msgstr "Créer le profil public"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_uid
msgid "Created by" msgid "Created by"
msgstr "Créé par" msgstr "Créé par"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_date
msgid "Created on" msgid "Created on"
msgstr "Créé le" msgstr "Créé le"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__display_name
msgid "Display Name" msgid "Display Name"
msgstr "Nom affiché" 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 #. 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_partner__has_position
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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" msgstr "A une position"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__id
msgid "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 #. 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_partner__is_main_profile
@@ -90,16 +141,19 @@ msgid "Is Public Profile"
msgstr "Est un profil Public" msgstr "Est un profil Public"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile____last_update
msgid "Last Modified on" msgid "Last Modified on"
msgstr "Dernière modification le" msgstr "Dernière modification le"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_uid
msgid "Last Updated by" msgid "Last Updated by"
msgstr "Dernière mise à jour par" msgstr "Dernière mise à jour par"
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_date
msgid "Last Updated on" msgid "Last Updated on"
msgstr "Dernière mise à jour le" msgstr "Dernière mise à jour le"
@@ -121,6 +175,11 @@ msgstr "Profil principal"
msgid "Name" msgid "Name"
msgstr "Nom" 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 #. 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_partner__other_contact_ids
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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 #. 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_partner__partner_profile
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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" msgid "Partner profile"
msgstr "Profil de contact" msgstr "Profil de contact"
@@ -164,6 +222,16 @@ msgstr "Contact : Migration des Contacts standards aux Conctacts à profile"
msgid "Partner: generate missing public profiles" msgid "Partner: generate missing public profiles"
msgstr "Contact : Générer les profil publics manquant" 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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
#: model:partner.profile,name:partner_profiles.partner_profile_position #: model:partner.profile,name:partner_profiles.partner_profile_position
@@ -185,7 +253,7 @@ msgstr "Profil public"
#. module: partner_profiles #. module: partner_profiles
#: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__ref #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__ref
msgid "Ref" msgid "Ref"
msgstr "Ref" msgstr ""
#. module: partner_profiles #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
@@ -202,6 +270,11 @@ msgstr "Rue 2 ..."
msgid "Street..." msgid "Street..."
msgstr "Rue.." 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 #. 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_partner__to_migrate
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "ZIP" 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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 12.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 10:27+0000\n" "POT-Creation-Date: 2023-05-23 15:04+0000\n"
"PO-Revision-Date: 2023-05-16 10:27+0000\n" "PO-Revision-Date: 2023-05-23 15:04+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -15,11 +15,22 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form
msgid "<span>You are about to create a <strong>Position Profile</strong> which\n"
" represents the role or the job of a person in a structure.</span>"
msgstr ""
#. module: partner_profiles #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "Address" msgid "Address"
msgstr "" msgstr ""
#. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.create_position_wizard_view_form
msgid "Cancel"
msgstr ""
#. module: partner_profiles #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "City" msgid "City"
@@ -40,26 +51,59 @@ msgstr ""
msgid "Country" msgid "Country"
msgstr "" 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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "Create Public Profile" msgid "Create Public Profile"
msgstr "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_uid
msgid "Created by" msgid "Created by"
msgstr "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__create_date
msgid "Created on" msgid "Created on"
msgstr "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__display_name
msgid "Display Name" msgid "Display Name"
msgstr "" 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 #. 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_partner__has_position
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__has_position #: model:ir.model.fields,field_description:partner_profiles.field_res_users__has_position
@@ -67,10 +111,16 @@ msgid "Has Position"
msgstr "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__id
msgid "ID" msgid "ID"
msgstr "" 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 #. 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_partner__is_main_profile
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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 "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile____last_update
msgid "Last Modified on" msgid "Last Modified on"
msgstr "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_uid
msgid "Last Updated by" msgid "Last Updated by"
msgstr "" msgstr ""
#. module: partner_profiles #. 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 #: model:ir.model.fields,field_description:partner_profiles.field_partner_profile__write_date
msgid "Last Updated on" msgid "Last Updated on"
msgstr "" msgstr ""
@@ -121,6 +174,11 @@ msgstr ""
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#. module: partner_profiles
#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__comment
msgid "Notes"
msgstr ""
#. module: partner_profiles #. 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_partner__other_contact_ids
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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 #. 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_partner__partner_profile
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__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" msgid "Partner profile"
msgstr "" msgstr ""
@@ -164,6 +221,16 @@ msgstr ""
msgid "Partner: generate missing public profiles" msgid "Partner: generate missing public profiles"
msgstr "" 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 #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
#: model:partner.profile,name:partner_profiles.partner_profile_position #: model:partner.profile,name:partner_profiles.partner_profile_position
@@ -202,6 +269,11 @@ msgstr ""
msgid "Street..." msgid "Street..."
msgstr "" msgstr ""
#. module: partner_profiles
#: model:ir.model.fields,field_description:partner_profiles.field_create_position_profile__structure_id
msgid "Structure"
msgstr ""
#. module: partner_profiles #. 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_partner__to_migrate
#: model:ir.model.fields,field_description:partner_profiles.field_res_users__to_migrate #: model:ir.model.fields,field_description:partner_profiles.field_res_users__to_migrate
@@ -213,6 +285,11 @@ msgstr ""
msgid "ZIP" msgid "ZIP"
msgstr "" msgstr ""
#. module: partner_profiles
#: model:ir.model,name:partner_profiles.model_create_position_profile
msgid "create Position Profile"
msgstr ""
#. module: partner_profiles #. module: partner_profiles
#: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view
msgid "e.g. https://www.odoo.com" msgid "e.g. https://www.odoo.com"

View File

@@ -56,36 +56,24 @@
position="attributes"> position="attributes">
<attribute name="invisible">1</attribute> <attribute name="invisible">1</attribute>
</xpath> </xpath>
<xpath expr="//field[@name='child_ids']/form/sheet/group/group/field[@name='name']" <xpath expr="//field[@name='child_ids']" position="before">
position="before"> <button name="%(action_create_position_profile_wizard)d"
<field name="is_position_profile" readonly="1" invisible="1" /> string="Create New Position"
<field name="partner_profile" string="Partner profile" invisible="1" /> class="oe_highlight" type="action"
attrs="{'invisible': [('is_main_profile','=',False)]}" />
</xpath> </xpath>
<!-- page Other Positions --> <!-- page Other Positions -->
<xpath expr="//page[@name='other_position']" position="attributes"> <xpath expr="//page[@name='other_position']" position="attributes">
<attribute name="attrs">{'invisible': [('is_company','=',True)]}</attribute> <attribute name="attrs">{'invisible': [('is_company','=',True)]}</attribute>
</xpath> </xpath>
<xpath expr="//page[@name='other_position']/field[@name='other_contact_ids']/kanban" <xpath expr="//page[@name='other_position']/field[@name='other_contact_ids']/form"
position="attributes"> position="replace" />
<attribute name="create">true</attribute> <xpath expr="//field[@name='other_contact_ids']" position="before">
</xpath> <button name="%(action_create_position_profile_wizard)d"
<xpath expr="//page[@name='other_position']/field[@name='other_contact_ids']" string="Create New Position"
position="attributes"> class="oe_highlight" type="action"
<attribute name="context">{'default_partner_profile': 3, 'default_contact_id': attrs="{'invisible': [('is_main_profile','=',False)]}" />
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}</attribute>
</xpath>
<xpath
expr="//field[@name='other_contact_ids']/form/sheet/group/group/field[@name='name']"
position="after">
<field name="is_position_profile" readonly="1" invisible="1" />
<field name="partner_profile" string="Partner profile" />
<field name="parent_id" widget="res_partner_many2one" placeholder="Company"
domain="[('is_company', '=', True),('is_main_profile','=', True)]"
context="{'default_partner_profile': 1, 'default_is_company': True, 'show_vat': True}" />
</xpath> </xpath>
<!-- #################################### --> <!-- #################################### -->
@@ -160,6 +148,9 @@
<field name="phone" widget="phone" /> <field name="phone" widget="phone" />
<field name="email" widget="email" context="{'gravatar_image': True}" /> <field name="email" widget="email" context="{'gravatar_image': True}" />
</group> </group>
<group>
<field name="comment" />
</group>
</group> </group>
</xpath> </xpath>
</field> </field>

View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import create_position_profile

View File

@@ -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,
}

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="create_position_wizard_view_form" model="ir.ui.view">
<field name="name">create.position.wizard.view.form</field>
<field name="model">create.position.profile</field>
<field name="arch" type="xml">
<form string="Create a position profile">
<sheet>
<div class="alert alert-info" role="alert" style="margin-bottom:0px;">
<span>You are about to create a <strong>Position Profile</strong> which
represents the role or the job of a person in a structure.</span>
</div>
<group>
<field name="is_company" invisible="1" />
<field name="structure_id"
attrs="{'readonly': [('is_company','=',True)], 'required': [('is_company','=',False)]}" />
<field name="partner_id"
attrs="{'readonly': [('is_company','=',False)], 'required': [('is_company','=',True)]}" />
<field name="function" />
<field name="email" />
<field name="phone" />
<field name="comment" />
</group>
</sheet>
<footer>
<button string="Create" name="create_position_profile" type="object"
class="btn-primary" />
<button string="Cancel" class="btn-secondary" special="cancel" />
</footer>
</form>
</field>
</record>
<record id="action_create_position_profile_wizard" model="ir.actions.act_window">
<field name="name">Create Position Profile</field>
<field name="res_model">create.position.profile</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="create_position_wizard_view_form" />
<field name="target">new</field>
</record>
<act_window name="Create Position Profile"
res_model="create.position.profile"
src_model="res.partner"
multi="True"
key2="client_action_multi"
view_mode="form"
id="action_create_position_profile_wizard" />
</odoo>