From b016968fbd035f136acc96eba0e23aeb73789293 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 1 Apr 2026 08:00:44 +0000 Subject: [PATCH 01/14] [UPD] Update vcp_git.pot --- vcp_git/i18n/vcp_git.pot | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 vcp_git/i18n/vcp_git.pot diff --git a/vcp_git/i18n/vcp_git.pot b/vcp_git/i18n/vcp_git.pot new file mode 100644 index 0000000..45506e9 --- /dev/null +++ b/vcp_git/i18n/vcp_git.pot @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * vcp_git +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \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: vcp_git +#: model:ir.model,name:vcp_git.model_vcp_repository_branch +msgid "Links Branches with Repositories" +msgstr "" + +#. module: vcp_git +#: model:ir.model,name:vcp_git.model_vcp_repository +msgid "Repository" +msgstr "" + +#. module: vcp_git +#: model:ir.model,name:vcp_git.model_vcp_platform +msgid "VCP Platform" +msgstr "" From 76fff6e1a97205b8ec17cc176a5e9624eea2f9a4 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 1 Apr 2026 08:00:44 +0000 Subject: [PATCH 02/14] [UPD] Update vcp_github.pot --- vcp_github/i18n/vcp_github.pot | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 vcp_github/i18n/vcp_github.pot diff --git a/vcp_github/i18n/vcp_github.pot b/vcp_github/i18n/vcp_github.pot new file mode 100644 index 0000000..87b0648 --- /dev/null +++ b/vcp_github/i18n/vcp_github.pot @@ -0,0 +1,55 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * vcp_github +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \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: vcp_github +#. odoo-python +#: code:addons/vcp_github/models/vcp_platform.py:0 +msgid "" +"No github clients configured. Please enter at least a Github Personal Access" +" Token. You can check more information at " +"https://docs.github.com/en/authentication/keeping-your-account-and-data-" +"secure/managing-your-personal-access-tokens" +msgstr "" + +#. module: vcp_github +#. odoo-python +#: code:addons/vcp_github/models/vcp_host.py:0 +msgid "Only one GitHub Host type is allowed." +msgstr "" + +#. module: vcp_github +#: model:ir.model,name:vcp_github.model_vcp_organization +msgid "Organization" +msgstr "" + +#. module: vcp_github +#: model:ir.model,name:vcp_github.model_vcp_repository +msgid "Repository" +msgstr "" + +#. module: vcp_github +#: model:ir.model,name:vcp_github.model_vcp_user +msgid "User" +msgstr "" + +#. module: vcp_github +#: model:ir.model,name:vcp_github.model_vcp_host +msgid "VCP Host" +msgstr "" + +#. module: vcp_github +#: model:ir.model,name:vcp_github.model_vcp_platform +msgid "VCP Platform" +msgstr "" From ced5c558722a25ba928a7f0789e3a23d348b49aa Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 1 Apr 2026 08:00:45 +0000 Subject: [PATCH 03/14] [UPD] Update vcp_management.pot --- vcp_management/i18n/vcp_management.pot | 1055 ++++++++++++++++++++++++ 1 file changed, 1055 insertions(+) create mode 100644 vcp_management/i18n/vcp_management.pot diff --git a/vcp_management/i18n/vcp_management.pot b/vcp_management/i18n/vcp_management.pot new file mode 100644 index 0000000..0fdddaa --- /dev/null +++ b/vcp_management/i18n/vcp_management.pot @@ -0,0 +1,1055 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * vcp_management +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \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: vcp_management +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_platform_key_name_uniq +msgid "API Key must be unique." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__key_ids +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_platform_form_view +msgid "API Keys" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__active +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__active +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__active +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__active +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__active +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_search_view +msgid "Active" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__additions +msgid "Additions" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_search_view +msgid "Archived" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__body +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__body +msgid "Body" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_branch +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__branch_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__branch_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__branch_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__branch_id +msgid "Branch" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__branch_count +msgid "Branch Count" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__branch_pattern +msgid "Branch Pattern" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__branch_update_date +msgid "Branch Update Date" +msgstr "" + +#. module: vcp_management +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_branch_name_uniq +msgid "Branch name must be unique." +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_branch_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_branch_menu +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_platform_form_view +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Branches" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields.selection,name:vcp_management.selection__vcp_rule__rule_type__cloc +msgid "Cloc Analysis" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields.selection,name:vcp_management.selection__vcp_request__status__closed +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_form_view +msgid "Closed" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__closed_at +msgid "Closed At" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__code +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__kind +msgid "Code" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__code_count +msgid "Code Count" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__code_kind +msgid "Code Kind" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_request +msgid "Code Request" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__color +msgid "Color" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_comment +msgid "Comment" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__comment_count +msgid "Comment Count" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +#: model:ir.actions.act_window,name:vcp_management.vcp_comment_act_window +#: model:ir.actions.act_window,name:vcp_management.vcp_request_2_comment_act_window +#: model:ir.model.fields,field_description:vcp_management.field_res_partner__vcp_comments +#: model:ir.model.fields,field_description:vcp_management.field_res_users__vcp_comments +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__comment_ids +#: model:ir.ui.menu,name:vcp_management.vcp_comment_menu +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_partner_detail +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_form_view +msgid "Comments" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__commits +msgid "Commits" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_res_partner +msgid "Contact" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__user_id +msgid "Contributor" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__created_at +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__created_at +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__created_at +msgid "Created At" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +#: model:ir.model.fields,field_description:vcp_management.field_res_partner__vcp_created_requests +#: model:ir.model.fields,field_description:vcp_management.field_res_users__vcp_created_requests +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_partner_detail +msgid "Created Requests" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__create_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__create_uid +msgid "Created by" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__create_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__create_date +msgid "Created on" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__default_repository_scheduled_branch_update +msgid "Default Repository Scheduled Branch Update" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__default_repository_scheduled_information_update +msgid "Default Repository Scheduled Information Update" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_rule__paths +msgid "Define with pathspec especification" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__deletions +msgid "Deletions" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__description +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__description +msgid "Description" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +msgid "Developers" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__display_name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__display_name +msgid "Display Name" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__documentation_count +msgid "Documentation Count" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields.selection,name:vcp_management.selection__vcp_request__status__draft +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_form_view +msgid "Draft" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__empty_count +msgid "Empty Count" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__external_id +msgid "Externa ID" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__external_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__external_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__external_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__external_id +msgid "External" +msgstr "" + +#. module: vcp_management +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_comment_external_id_uniq +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_organization_external_id_uniq +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_request_external_id_uniq +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_review_external_id_uniq +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_user_external_id_uniq +msgid "External ID must be unique." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__fetch_branch_pattern +msgid "Fetch Branch Pattern" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__fetch_repository_archived +msgid "Fetch Repository Archived" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__fetch_repository_branch_pattern +msgid "Fetch Repository Branch Pattern" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__fetch_repository_fork +msgid "Fetch Repository Fork" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Force Update Information (1Y)" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__fork_count +msgid "Fork Count" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Forks" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__from_date +msgid "From Date" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__host_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__host_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__host_id +msgid "Host" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__id +msgid "ID" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_platform__fetch_repository_archived +msgid "" +"If checked, all repositories will be fetched (actives and archived). " +"Otherwise, only active repositories will be fetched" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_platform__fetch_repository_fork +msgid "" +"If checked, all repositories will be fetched (sources and forks). Otherwise," +" only sources repositories will be fetched" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_platform__scheduled_information_update +msgid "" +"If checked, the cron that update platform informations will look for up to " +"date information, for this platform." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_platform__default_repository_scheduled_information_update +msgid "" +"If checked, the cron that update repositories will look for up to date " +"information, for this repository." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_platform__default_repository_scheduled_branch_update +#: model:ir.model.fields,help:vcp_management.field_vcp_repository__scheduled_branch_update +msgid "" +"If checked, the cron that update repository branches will look for up to " +"date branches, for this repository." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_repository__scheduled_information_update +msgid "" +"If checked, the cron that update repository informations will look for up to" +" date information, for this repository. This update include the recovery of " +"requests, comments and reviews." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__image_1920 +msgid "Image" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__image_128 +msgid "Image 128" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__image_256 +msgid "Image 256" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__image_512 +msgid "Image 512" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_branch_form_view +msgid "Information" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_rule_information +msgid "Information about the processing of a rule on a repository branch" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__is_draft +msgid "Is Draft" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__is_fork +msgid "Is Fork" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__is_merged +msgid "Is Merged" +msgstr "" + +#. module: vcp_management +#: model:ir.model.constraint,message:vcp_management.constraint_vcp_request_label_name_uniq +msgid "Label name must be unique." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__label_ids +msgid "Labels" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__last_commit +msgid "Last Commit" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__last_commit_date +msgid "Last Commit Date" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__last_update +msgid "Last Update" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__write_uid +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__write_date +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__write_date +msgid "Last Updated on" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_repository_branch +msgid "Links Branches with Repositories" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__local_path +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__local_path +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__local_path +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information_mixin__local_path +msgid "Local Path" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields.selection,name:vcp_management.selection__vcp_request__status__merged +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_form_view +msgid "Merged" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +#: model:ir.model.fields,field_description:vcp_management.field_res_partner__vcp_merged_requests +#: model:ir.model.fields,field_description:vcp_management.field_res_users__vcp_merged_requests +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_partner_detail +msgid "Merged Requests" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_rule_information_mixin +msgid "Mixin to link rule information models" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host_type__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__name +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__name +msgid "Name" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__number +msgid "Number" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields.selection,name:vcp_management.selection__vcp_request__status__open +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_form_view +msgid "Open" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_organization +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__organization_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__organization_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__organization_id +msgid "Organization" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +msgid "Organization Name" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__partner_organization_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__partner_organization_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__partner_organization_id +msgid "Organization Partner" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_organization_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_organization_menu +msgid "Organizations" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__override_parent_rules +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__override_parent_rules +msgid "Override Parent Rules" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__partner_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_organization__partner_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__partner_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__partner_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_user__partner_id +msgid "Partner" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__paths +msgid "Paths" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_branch__platform_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform_key__platform_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__platform_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__platform_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__platform_id +msgid "Platform" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_host_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_host_menu +msgid "Platform Types" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_platform_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_platform_menu +msgid "Platforms" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Process Rules" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_rule +msgid "Processing Rule" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_rule_act_window +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__rule_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__rule_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__rule_ids +#: model:ir.ui.menu,name:vcp_management.vcp_rule_menu +msgid "Processing Rules" +msgstr "" + +#. module: vcp_management +#: model:ir.ui.menu,name:vcp_management.vcp_request_menu +msgid "Pull Requests" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_platform__fetch_repository_branch_pattern +msgid "" +"Regular Expression. If set, only branches whose names are matching the " +"pattern will be fetched, when fetching branches of the repositories of the " +"platform." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_repository__fetch_branch_pattern +msgid "" +"Regular Expression. If set, only branches whose names are matching the " +"pattern will be fetched. You can define that value at platform level." +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_platform_2_repository_act_window +#: model:ir.actions.act_window,name:vcp_management.vcp_repository_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_repository_menu +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_platform_form_view +msgid "Repositories" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_repository +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__repository_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__repository_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__repository_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__repository_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__repository_id +msgid "Repository" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_repository_branch_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_repository_branch_menu +msgid "Repository Branches" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__repository_count +msgid "Repository Count" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +msgid "Repository Name" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__request_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__request_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__request_id +msgid "Request" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__request_count +msgid "Request Count" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_request_label_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_request_label_menu +msgid "Request Labels" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_repository_2_request_act_window +#: model:ir.actions.act_window,name:vcp_management.vcp_request_act_window +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request_label__request_ids +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Requests" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__res_id +msgid "Res" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__res_model +msgid "Res Model" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_review +msgid "Review" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__review_comments +msgid "Review Comments" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__review_count +msgid "Review Count" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_platform.py:0 +#: model:ir.actions.act_window,name:vcp_management.vcp_request_2_review_act_window +#: model:ir.actions.act_window,name:vcp_management.vcp_review_act_window +#: model:ir.model.fields,field_description:vcp_management.field_res_partner__vcp_reviews +#: model:ir.model.fields,field_description:vcp_management.field_res_users__vcp_reviews +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__review_ids +#: model:ir.ui.menu,name:vcp_management.vcp_review_menu +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_partner_detail +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_request_form_view +msgid "Reviews" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__rule_id +msgid "Rule" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__rule_information_ids +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information_mixin__rule_information_ids +msgid "Rule Information" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule__rule_type +msgid "Rule Type" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__scanned_files +msgid "Scanned Files" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__scheduled_branch_update +msgid "Scheduled Branch Update" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__scheduled_information_update +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__scheduled_information_update +msgid "Scheduled Information Update" +msgstr "" + +#. module: vcp_management +#: model:ir.ui.menu,name:vcp_management.vcp_settings_menu +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_rule_form_view +msgid "Settings" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__short_description +msgid "Short Description" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,help:vcp_management.field_vcp_repository__is_fork +msgid "Specify if the repo is a Source or a Fork repository" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__stargazers_count +msgid "Stargazers Count" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Stars" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__state +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__state +msgid "State" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__status +msgid "Status" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__submitted_at +msgid "Submitted At" +msgstr "" + +#. module: vcp_management +#: model:ir.ui.menu,name:vcp_management.vcp_technical_menu +msgid "Technical" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__test_field +msgid "Test Field" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_repository_branch.py:0 +msgid "The branch and the repository must belong to the same platform." +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__total_comments +msgid "Total Comments" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_rule_information__total_count +msgid "Total Count" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_host__type_id +msgid "Type" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_repository_branch.py:0 +msgid "Unable to create a folder in '%(local_path)s'." +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Update Branches" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_platform_form_view +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Update Information" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_platform__update_interval_days +msgid "Update Interval Days" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository_branch__update_rule_processing_date +msgid "Update Rule Processing Date" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__updated_at +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__updated_at +msgid "Updated At" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_request__url +msgid "Url" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_user +#: model:ir.model.fields,field_description:vcp_management.field_vcp_comment__user_id +#: model:ir.model.fields,field_description:vcp_management.field_vcp_review__user_id +msgid "User" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.act_window,name:vcp_management.vcp_user_act_window +#: model:ir.ui.menu,name:vcp_management.vcp_user_menu +msgid "Users" +msgstr "" + +#. module: vcp_management +#: model:ir.module.category,name:vcp_management.module_category_vcp +msgid "VCP" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_host +msgid "VCP Host" +msgstr "" + +#. module: vcp_management +#: model:res.groups,name:vcp_management.group_vcp_manager +msgid "VCP Manager" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_platform +msgid "VCP Platform" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_platform_key +msgid "VCP Platform API Key" +msgstr "" + +#. module: vcp_management +#: model:res.groups,name:vcp_management.group_vcp_user +msgid "VCP User" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.server,name:vcp_management.cron_repository_branch_rule_process_ir_actions_server +msgid "VCP: Branch Rule Process" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.server,name:vcp_management.cron_repository_branch_update_ir_actions_server +msgid "VCP: Branch Update" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.server,name:vcp_management.cron_platform_update_ir_actions_server +msgid "VCP: Platform Update" +msgstr "" + +#. module: vcp_management +#: model:ir.actions.server,name:vcp_management.cron_repository_update_ir_actions_server +msgid "VCP: Repository Update" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_host_type +msgid "Vcp Host Type" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_res_partner__vcp_organization_ids +#: model:ir.model.fields,field_description:vcp_management.field_res_users__vcp_organization_ids +msgid "Vcp Organization" +msgstr "" + +#. module: vcp_management +#: model:ir.model,name:vcp_management.model_vcp_request_label +msgid "Vcp Request Label" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_res_partner__vcp_user_ids +#: model:ir.model.fields,field_description:vcp_management.field_res_users__vcp_user_ids +msgid "Vcp User" +msgstr "" + +#. module: vcp_management +#: model:ir.ui.menu,name:vcp_management.vcp_main_menu +msgid "Version Control Platform" +msgstr "" + +#. module: vcp_management +#: model_terms:ir.ui.view,arch_db:vcp_management.vcp_repository_form_view +msgid "Watchers" +msgstr "" + +#. module: vcp_management +#: model:ir.model.fields,field_description:vcp_management.field_vcp_repository__watchers_count +msgid "Watchers Count" +msgstr "" + +#. module: vcp_management +#. odoo-python +#: code:addons/vcp_management/models/vcp_request_label.py:0 +msgid "" +"You can not delete labels that are related to Requests. You should first " +"delete the related requests." +msgstr "" From da514f06c486807e64fcf0bba8f060208d784cbd Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 1 Apr 2026 08:00:45 +0000 Subject: [PATCH 04/14] [UPD] Update vcp_odoo.pot --- vcp_odoo/i18n/vcp_odoo.pot | 294 +++++++++++++++++++++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 vcp_odoo/i18n/vcp_odoo.pot diff --git a/vcp_odoo/i18n/vcp_odoo.pot b/vcp_odoo/i18n/vcp_odoo.pot new file mode 100644 index 0000000..86b9805 --- /dev/null +++ b/vcp_odoo/i18n/vcp_odoo.pot @@ -0,0 +1,294 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * vcp_odoo +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \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: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__auto_install +msgid "Auto Install" +msgstr "" + +#. module: vcp_odoo +#: model:ir.actions.act_window,name:vcp_odoo.vcp_odoo_bin_package_act_window +#: model:ir.actions.act_window,name:vcp_odoo.vcp_odoo_python_library_act_window +#: model:ir.ui.menu,name:vcp_odoo.vcp_odoo_bin_packages_menu +msgid "Bin Packages" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model,name:vcp_odoo.model_vcp_odoo_bin_package +msgid "Binary Package required by an Odoo Module" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__create_uid +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__create_uid +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__create_uid +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__create_uid +msgid "Created by" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__create_date +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__create_date +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__create_date +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__create_date +msgid "Created on" +msgstr "" + +#. module: vcp_odoo +#: model:ir.ui.menu,name:vcp_odoo.vcp_odoo_dependencies_menu +msgid "Dependencies" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__depends_on_module_ids +msgid "Depends On Module" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__description +#: model_terms:ir.ui.view,arch_db:vcp_odoo.vcp_odoo_module_version_form_view +msgid "Description" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__display_name +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__display_name +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__display_name +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__display_name +msgid "Display Name" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__id +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__id +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__id +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__id +msgid "ID" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__image_1920 +msgid "Image" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__image_128 +msgid "Image 128" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__image_256 +msgid "Image 256" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__image_512 +msgid "Image 512" +msgstr "" + +#. module: vcp_odoo +#: model_terms:ir.ui.view,arch_db:vcp_odoo.vcp_odoo_module_version_form_view +msgid "Information" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__write_uid +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__write_uid +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__write_uid +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__write_date +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__write_date +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__write_date +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__write_date +msgid "Last Updated on" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__license +msgid "License (Manifest)" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__local_path +msgid "Local Path" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__module_id +msgid "Module" +msgstr "" + +#. module: vcp_odoo +#: model:ir.actions.act_window,name:vcp_odoo.vcp_odoo_module_version_act_window +#: model:ir.ui.menu,name:vcp_odoo.vcp_odoo_module_version_menu +msgid "Module Versions" +msgstr "" + +#. module: vcp_odoo +#: model:ir.actions.act_window,name:vcp_odoo.vcp_odoo_module_act_window +#: model:ir.ui.menu,name:vcp_odoo.vcp_odoo_module_menu +msgid "Modules" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__name +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__name +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__name +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__name +msgid "Name" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model,name:vcp_odoo.model_vcp_odoo_module +msgid "Odoo Module" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields.selection,name:vcp_odoo.selection__vcp_rule__rule_type__odoo_module +msgid "Odoo Module Analysis" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_rule__odoo_module_rule_ids +msgid "Odoo Module Rule" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_bin_package__module_version_ids +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_python_library__module_version_ids +msgid "Odoo Module Versions" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model,name:vcp_odoo.model_vcp_odoo_module_version +msgid "Odoo Module on an specific repository branch" +msgstr "" + +#. module: vcp_odoo +#: model:ir.ui.menu,name:vcp_odoo.vcp_odoo_menu +msgid "Odoo Modules" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__path +msgid "Path" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model,name:vcp_odoo.model_vcp_rule +msgid "Processing Rule" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__bin_package_ids +msgid "Python Binaries" +msgstr "" + +#. module: vcp_odoo +#: model:ir.ui.menu,name:vcp_odoo.vcp_odoo_python_library_menu +msgid "Python Librairies" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__python_library_ids +msgid "Python Libraries" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model,name:vcp_odoo.model_vcp_odoo_python_library +msgid "Python Library required by an Odoo Module" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__repository_branch_ids +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__repository_branch_id +msgid "Repository Branch" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__rule_information_ids +msgid "Rule Information" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_rule__rule_type +msgid "Rule Type" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__summary +msgid "Summary (Manifest)" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.constraint,message:vcp_odoo.constraint_vcp_odoo_module_name_uniq +msgid "The module name must be unique" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__version_ids +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__version +msgid "Version" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module__version_count +msgid "Version Count" +msgstr "" + +#. module: vcp_odoo +#: model_terms:ir.ui.view,arch_db:vcp_odoo.vcp_odoo_module_form_view +msgid "Versions" +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,field_description:vcp_odoo.field_vcp_odoo_module_version__website +msgid "Website (Manifest)" +msgstr "" + +#. module: vcp_odoo +#: model_terms:ir.ui.view,arch_db:vcp_odoo.vcp_odoo_module_search_view +msgid "With version" +msgstr "" + +#. module: vcp_odoo +#. odoo-python +#: code:addons/vcp_odoo/models/vcp_odoo_python_library.py:0 +msgid "" +"You can not delete librairies that are related to Odoo Modules. You should " +"first delete the related odoo modules." +msgstr "" + +#. module: vcp_odoo +#. odoo-python +#: code:addons/vcp_odoo/models/vcp_odoo_bin_package.py:0 +msgid "" +"You can not delete packages that are related to Odoo Modules. You should " +"first delete the related odoo modules." +msgstr "" + +#. module: vcp_odoo +#: model:ir.model.fields,help:vcp_odoo.field_vcp_odoo_module__version_count +msgid "number of versions in which the module is available" +msgstr "" From 1da7fd965c335cef72e8ba7046ea06720ad24817 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 1 Apr 2026 08:00:46 +0000 Subject: [PATCH 05/14] [UPD] Update vcp_portal.pot --- vcp_portal/i18n/vcp_portal.pot | 190 +++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 vcp_portal/i18n/vcp_portal.pot diff --git a/vcp_portal/i18n/vcp_portal.pot b/vcp_portal/i18n/vcp_portal.pot new file mode 100644 index 0000000..f5080d6 --- /dev/null +++ b/vcp_portal/i18n/vcp_portal.pot @@ -0,0 +1,190 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * vcp_portal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \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: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid ": Month-To-Date" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid ": Moving Annual Total - Last 12 Months" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid ": Year-To-Date - From January to the selected month" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "April" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "August" +msgstr "" + +#. module: vcp_portal +#: model_terms:ir.ui.view,arch_db:vcp_portal.vcp_partner_detail +msgid "Comments" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "Contributors" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "Contributors Statistics" +msgstr "" + +#. module: vcp_portal +#: model_terms:ir.ui.view,arch_db:vcp_portal.vcp_partner_detail +msgid "Created Requests" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "Date selection Tooltip" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "December" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "February" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "January" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "July" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "June" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "MAT" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "MTD" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "March" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "May" +msgstr "" + +#. module: vcp_portal +#: model_terms:ir.ui.view,arch_db:vcp_portal.vcp_partner_detail +msgid "Merged Requests" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "November" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "October" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "Organizations" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "Repositories" +msgstr "" + +#. module: vcp_portal +#: model_terms:ir.ui.view,arch_db:vcp_portal.vcp_partner_detail +msgid "Reviews" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "" +"Select the period for which you want to see the contributors statistics.\n" +" Options are:" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "September" +msgstr "" + +#. module: vcp_portal +#: model_terms:ir.ui.view,arch_db:vcp_portal.portal_my_home_contributors +msgid "Show Version Control Platform information" +msgstr "" + +#. module: vcp_portal +#: model_terms:ir.ui.view,arch_db:vcp_portal.portal_my_home_contributors +msgid "Version Control Platforms" +msgstr "" + +#. module: vcp_portal +#. odoo-javascript +#: code:addons/vcp_portal/static/src/components/vcp_render/vcp_render.xml:0 +msgid "YTD" +msgstr "" From 5ac173d5e7de1a03dfd91786c9897ae559c19f32 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 1 Apr 2026 08:00:46 +0000 Subject: [PATCH 06/14] [UPD] Update vcp_website.pot --- vcp_website/i18n/vcp_website.pot | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 vcp_website/i18n/vcp_website.pot diff --git a/vcp_website/i18n/vcp_website.pot b/vcp_website/i18n/vcp_website.pot new file mode 100644 index 0000000..1ea9066 --- /dev/null +++ b/vcp_website/i18n/vcp_website.pot @@ -0,0 +1,24 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * vcp_website +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \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: vcp_website +#: model:ir.model,name:vcp_website.model_vcp_organization +msgid "Organization" +msgstr "" + +#. module: vcp_website +#: model:ir.model,name:vcp_website.model_vcp_user +msgid "User" +msgstr "" From 9c3d74609de99bb25acbfdba0ccbc190788b4a88 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 1 Apr 2026 08:04:26 +0000 Subject: [PATCH 07/14] [BOT] post-merge updates --- README.md | 11 ++++- setup/_metapackage/pyproject.toml | 16 +++++++ vcp_git/README.rst | 8 +++- vcp_git/static/description/index.html | 26 +++++++---- vcp_github/README.rst | 8 +++- vcp_github/static/description/index.html | 26 +++++++---- vcp_management/README.rst | 8 +++- vcp_management/static/description/index.html | 48 +++++++++++--------- vcp_odoo/README.rst | 8 +++- vcp_odoo/static/description/index.html | 26 +++++++---- vcp_portal/README.rst | 8 +++- vcp_portal/static/description/index.html | 26 +++++++---- vcp_website/README.rst | 8 +++- vcp_website/static/description/index.html | 26 +++++++---- 14 files changed, 169 insertions(+), 84 deletions(-) create mode 100644 setup/_metapackage/pyproject.toml diff --git a/README.md b/README.md index fcebc52..266f94c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,16 @@ Version Control Platform allows to import Git information and other kind of cont [//]: # (addons) -This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools. +Available addons +---------------- +addon | version | maintainers | summary +--- | --- | --- | --- +[vcp_git](vcp_git/) | 18.0.1.0.0 | | Allows to download code from git +[vcp_github](vcp_github/) | 18.0.1.0.0 | | Integrate Version Control Platform with Github +[vcp_management](vcp_management/) | 18.0.1.0.0 | | Management for your Version Control Platforms +[vcp_odoo](vcp_odoo/) | 18.0.1.0.0 | | Import Odoo modules from VCP Repositories +[vcp_portal](vcp_portal/) | 18.0.1.0.0 | | Version control platform integration with portal +[vcp_website](vcp_website/) | 18.0.1.0.0 | | Adds integration of VCP with Odoo Website [//]: # (end addons) diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml new file mode 100644 index 0000000..da5151b --- /dev/null +++ b/setup/_metapackage/pyproject.toml @@ -0,0 +1,16 @@ +[project] +name = "odoo-addons-oca-version-control-platform" +version = "18.0.20260401.0" +dependencies = [ + "odoo-addon-vcp_git==18.0.*", + "odoo-addon-vcp_github==18.0.*", + "odoo-addon-vcp_management==18.0.*", + "odoo-addon-vcp_odoo==18.0.*", + "odoo-addon-vcp_portal==18.0.*", + "odoo-addon-vcp_website==18.0.*", +] +classifiers=[ + "Programming Language :: Python", + "Framework :: Odoo", + "Framework :: Odoo :: 18.0", +] diff --git a/vcp_git/README.rst b/vcp_git/README.rst index 50a00e1..a3a513f 100644 --- a/vcp_git/README.rst +++ b/vcp_git/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ======= Vcp Git ======= @@ -7,13 +11,13 @@ Vcp Git !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:086596db3dcb4fa7565fc97cf01ccd22449731243622d4587a1f609eab8bc121 + !! source digest: sha256:1ca94913950dfe5023e3cbc4dfea32bd9c2afba8382c77319676bceda2cb69ae !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fversion--control--platform-lightgray.png?logo=github diff --git a/vcp_git/static/description/index.html b/vcp_git/static/description/index.html index f64f236..47f97aa 100644 --- a/vcp_git/static/description/index.html +++ b/vcp_git/static/description/index.html @@ -3,7 +3,7 @@ -Vcp Git +README.rst -
-

Vcp Git

+
+ + +Odoo Community Association + +
+

Vcp Git

-

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

This module adds the necessary code to download using git.

It should be parent on git possible origins, like github or gitlab.

Table of contents

@@ -385,7 +390,7 @@

Vcp Git

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -393,15 +398,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -423,5 +428,6 @@

Maintainers

+
diff --git a/vcp_github/README.rst b/vcp_github/README.rst index 1c659e0..75eda72 100644 --- a/vcp_github/README.rst +++ b/vcp_github/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========== Vcp Github ========== @@ -7,13 +11,13 @@ Vcp Github !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:086596db3dcb4fa7565fc97cf01ccd22449731243622d4587a1f609eab8bc121 + !! source digest: sha256:e658564d23337fe17b8a0bda9c6f780e8a4ce61ef1368682e9dbeded389b3be8 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fversion--control--platform-lightgray.png?logo=github diff --git a/vcp_github/static/description/index.html b/vcp_github/static/description/index.html index f258b6c..cbd40c1 100644 --- a/vcp_github/static/description/index.html +++ b/vcp_github/static/description/index.html @@ -3,7 +3,7 @@ -Vcp Github +README.rst -
-

Vcp Github

+
+ + +Odoo Community Association + +
+

Vcp Github

-

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

This module facilitates the integration between Github and Version Control Platform.

Table of contents

@@ -385,7 +390,7 @@

Vcp Github

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -393,15 +398,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -423,5 +428,6 @@

Maintainers

+
diff --git a/vcp_management/README.rst b/vcp_management/README.rst index 6590093..c4232dd 100644 --- a/vcp_management/README.rst +++ b/vcp_management/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============== VCP Management ============== @@ -7,13 +11,13 @@ VCP Management !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:e5814614bba4bc7f628d116d3529a253bb2ae9bff8e8a16c3cfc7eefa5def3cf + !! source digest: sha256:49d0c92337984596c4c5c8ca9dcc56988c952e541b00ac0aa8de8984f320ceb5 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fversion--control--platform-lightgray.png?logo=github diff --git a/vcp_management/static/description/index.html b/vcp_management/static/description/index.html index 16ce4da..c35ec20 100644 --- a/vcp_management/static/description/index.html +++ b/vcp_management/static/description/index.html @@ -3,7 +3,7 @@ -VCP Management +README.rst -
-

VCP Management

+
+ + +Odoo Community Association + +
+

VCP Management

-

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

Creates a set of modules used for handling a version control patform.

Table of contents

@@ -401,41 +406,41 @@

VCP Management

-

Use Cases / Context

+

Use Cases / Context

The aim of this module is to allow any community to import data from a version control system.

The system should be done in a way that is agnostic to the system and the connections are handled directly by specific modules.

-

Definitions

+

Definitions

-

Hosts

+

Hosts

Hosts are the origin of data. Each host has a type that helps us know how to integrate with the system. For example, on Github there is only one host (github.com). However, in Gitlab there could be one for each instance that we are integrating too.

-

Platform

+

Platform

We understand that a platform is an entity that can provide code and information to our Version Control Platform (VCP). A platform could be an organization on Github (like OCA) or Gitlab for example.

-

Repository

+

Repository

A repository is an origin of code. For example, this repository could be a VCP repository.

-

Requests

+

Requests

A request is what contributors do to propose new codes. In Github it is a Pull request, however in Gitlab it is called Merge Request.

When a user makes a review on a request, it markes their resolution and some comments. That would correspond to Reviews and Comments.

-

Rules

+

Rules

Inside a Platform or repository, we can apply some rules to get some basic statistics. This rules are usually done by downloading the code locally and then it can give some basic information like number of lines @@ -444,20 +449,20 @@

Rules

-

Usage

+

Usage

-

Creation

+

Creation

First step is to create a Platform. In the platform we need to set the host (you might need to create it on gitlab) and add some Platform Keys.

This keys will allow us to integrate with the origin system.

-

Refresh

+

Refresh

By default, the system provides some refresh rules for platforms and repositories, however we can deactivate or activate it manualy.

-

Management of rules

+

Management of rules

One of the capabilities of this module is the generation of rules.

This rules allow us to know some information of the repository.

By default, the system adds some rules aligned with odoo to make it @@ -474,7 +479,7 @@

Management of rules

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -482,15 +487,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -516,5 +521,6 @@

Maintainers

+
diff --git a/vcp_odoo/README.rst b/vcp_odoo/README.rst index da8c495..84dd1a4 100644 --- a/vcp_odoo/README.rst +++ b/vcp_odoo/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ======== Vcp Odoo ======== @@ -7,13 +11,13 @@ Vcp Odoo !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ef63b1c14207b6759d45b5eacbd2e64c831f4d70d6fbb787df788da1ec104c18 + !! source digest: sha256:1c630d3bc7de7fb0583a324711131b1f3fa3e066e30f4afa4113efa3614d8f04 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fversion--control--platform-lightgray.png?logo=github diff --git a/vcp_odoo/static/description/index.html b/vcp_odoo/static/description/index.html index 08041fd..0cbe890 100644 --- a/vcp_odoo/static/description/index.html +++ b/vcp_odoo/static/description/index.html @@ -3,7 +3,7 @@ -Vcp Odoo +README.rst -
-

Vcp Odoo

+
+ + +Odoo Community Association + +
+

Vcp Odoo

-

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

This module allows to import Odoo modules from VCP repositories to make specific analysis.

Table of contents

@@ -385,7 +390,7 @@

Vcp Odoo

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -393,15 +398,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -423,5 +428,6 @@

Maintainers

+
diff --git a/vcp_portal/README.rst b/vcp_portal/README.rst index 6ad36ce..97e335e 100644 --- a/vcp_portal/README.rst +++ b/vcp_portal/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========== Vcp Portal ========== @@ -7,13 +11,13 @@ Vcp Portal !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:b86336321067f41802020c80252b484185be575574666747172a5c99793fe4ff + !! source digest: sha256:063d2364fb20274a400aa01fefe7e1a581fc6917274a0a3c0db88134732185b0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fversion--control--platform-lightgray.png?logo=github diff --git a/vcp_portal/static/description/index.html b/vcp_portal/static/description/index.html index ac9cafe..4848c93 100644 --- a/vcp_portal/static/description/index.html +++ b/vcp_portal/static/description/index.html @@ -3,7 +3,7 @@ -Vcp Portal +README.rst -
-

Vcp Portal

+
+ + +Odoo Community Association + +
+

Vcp Portal

-

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

Integrates Version Control Platform with Portal.

Table of contents

@@ -384,7 +389,7 @@

Vcp Portal

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -392,15 +397,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -422,5 +427,6 @@

Maintainers

+
diff --git a/vcp_website/README.rst b/vcp_website/README.rst index 83636f0..98f646a 100644 --- a/vcp_website/README.rst +++ b/vcp_website/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================================ Version Control Platform Website ================================ @@ -7,13 +11,13 @@ Version Control Platform Website !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:fc63310fd3dc2d79e35eb27c50cd083cfcd5822270ce0d3f750e8cf51c0b8ca9 + !! source digest: sha256:4f6b2923481cd7cdd0ac5e2d429a9ca63e7fe2ff5ca6bffe1d77110ca3fb71a7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fversion--control--platform-lightgray.png?logo=github diff --git a/vcp_website/static/description/index.html b/vcp_website/static/description/index.html index 35c6d42..4ce3233 100644 --- a/vcp_website/static/description/index.html +++ b/vcp_website/static/description/index.html @@ -3,7 +3,7 @@ -Version Control Platform Website +README.rst -
-

Version Control Platform Website

+
+ + +Odoo Community Association + +
+

Version Control Platform Website

-

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/version-control-platform Translate me on Weblate Try me on Runboat

Glue module for showing VCP data in partner website.

Table of contents

@@ -384,7 +389,7 @@

Version Control Platform Website

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -392,15 +397,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -426,5 +431,6 @@

Maintainers

+
From dcf3e83a533cb5666b97385d3d29c37d8900035c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Wed, 25 Mar 2026 17:48:33 +0100 Subject: [PATCH 08/14] [FIX] vcp_github: fix getting repository url --- vcp_github/models/vcp_repository.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vcp_github/models/vcp_repository.py b/vcp_github/models/vcp_repository.py index 016e5e9..8f655d3 100644 --- a/vcp_github/models/vcp_repository.py +++ b/vcp_github/models/vcp_repository.py @@ -17,6 +17,12 @@ class VcpRepository(models.Model): _inherit = "vcp.repository" + def _get_repository_url(self): + result = super()._get_repository_url() + if not result and self.platform_id.host_id.type_id.code == "github": + return f"https://github.com/{self.platform_id.name}/{self.name}" + return result + def _update_branches_github(self): self.ensure_one() client = self.platform_id._get_github_clients()[0] From d12cf538dc1a1ad8d8141995a8ee45886bf55404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Wed, 25 Mar 2026 17:50:13 +0100 Subject: [PATCH 09/14] [IMP] vcp_odoo: add button box so other module can inherit without conflict --- vcp_odoo/views/vcp_odoo_module_version.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/vcp_odoo/views/vcp_odoo_module_version.xml b/vcp_odoo/views/vcp_odoo_module_version.xml index 3484034..fc392ba 100644 --- a/vcp_odoo/views/vcp_odoo_module_version.xml +++ b/vcp_odoo/views/vcp_odoo_module_version.xml @@ -8,6 +8,7 @@
+
Date: Wed, 25 Mar 2026 22:26:14 +0100 Subject: [PATCH 10/14] [IMP] vcp_odoo: map development_status --- vcp_odoo/models/vcp_odoo_module_version.py | 4 ++++ vcp_odoo/models/vcp_rule.py | 1 + vcp_odoo/views/vcp_odoo_module_version.xml | 1 + 3 files changed, 6 insertions(+) diff --git a/vcp_odoo/models/vcp_odoo_module_version.py b/vcp_odoo/models/vcp_odoo_module_version.py index eb1b10f..5251540 100644 --- a/vcp_odoo/models/vcp_odoo_module_version.py +++ b/vcp_odoo/models/vcp_odoo_module_version.py @@ -35,6 +35,10 @@ class VcpOdooModuleVersion(models.Model): license = fields.Char(string="License (Manifest)", readonly=True) summary = fields.Char(string="Summary (Manifest)", readonly=True) website = fields.Char(string="Website (Manifest)", readonly=True) + development_status = fields.Char( + string="Development Status (Manifest)", + readonly=True, + ) python_library_ids = fields.Many2many( "vcp.odoo.python.library", string="Python Libraries", diff --git a/vcp_odoo/models/vcp_rule.py b/vcp_odoo/models/vcp_rule.py index 10e8aee..ddb1bbd 100644 --- a/vcp_odoo/models/vcp_rule.py +++ b/vcp_odoo/models/vcp_rule.py @@ -124,6 +124,7 @@ def _process_rule_odoo_module_prepare_vals( "license": manifest.get("license"), "summary": manifest.get("summary"), "website": manifest.get("website"), + "development_status": manifest.get("development_status"), "auto_install": manifest.get("auto_install", False), "repository_branch_id": repository_branch.id, "depends_on_module_ids": [Command.set(depends)], diff --git a/vcp_odoo/views/vcp_odoo_module_version.xml b/vcp_odoo/views/vcp_odoo_module_version.xml index fc392ba..47149cf 100644 --- a/vcp_odoo/views/vcp_odoo_module_version.xml +++ b/vcp_odoo/views/vcp_odoo_module_version.xml @@ -27,6 +27,7 @@ + From 4b809a5f7352c03879dc9671d3f688f5b3abaf12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Wed, 25 Mar 2026 22:27:17 +0100 Subject: [PATCH 11/14] [IMP] vcp_odoo: map authors --- vcp_odoo/__manifest__.py | 1 + vcp_odoo/models/__init__.py | 1 + vcp_odoo/models/vcp_odoo_author.py | 38 ++++++++++++++++++++++ vcp_odoo/models/vcp_odoo_module_version.py | 5 +++ vcp_odoo/models/vcp_rule.py | 4 +++ vcp_odoo/security/ir.model.access.csv | 2 ++ vcp_odoo/views/menu.xml | 7 +++- vcp_odoo/views/vcp_odoo_author.xml | 31 ++++++++++++++++++ vcp_odoo/views/vcp_odoo_module_version.xml | 1 + 9 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 vcp_odoo/models/vcp_odoo_author.py create mode 100644 vcp_odoo/views/vcp_odoo_author.xml diff --git a/vcp_odoo/__manifest__.py b/vcp_odoo/__manifest__.py index db9c82d..db85a02 100644 --- a/vcp_odoo/__manifest__.py +++ b/vcp_odoo/__manifest__.py @@ -15,6 +15,7 @@ "views/vcp_odoo_module_version.xml", "views/vcp_odoo_bin_package.xml", "views/vcp_odoo_python_library.xml", + "views/vcp_odoo_author.xml", "views/vcp_rule.xml", "views/menu.xml", "data/vcp_rule.xml", diff --git a/vcp_odoo/models/__init__.py b/vcp_odoo/models/__init__.py index dd294a2..1441934 100644 --- a/vcp_odoo/models/__init__.py +++ b/vcp_odoo/models/__init__.py @@ -1,5 +1,6 @@ from . import vcp_rule from . import vcp_odoo_module +from . import vcp_odoo_author from . import vcp_odoo_module_version from . import vcp_odoo_bin_package from . import vcp_odoo_python_library diff --git a/vcp_odoo/models/vcp_odoo_author.py b/vcp_odoo/models/vcp_odoo_author.py new file mode 100644 index 0000000..f1c9d01 --- /dev/null +++ b/vcp_odoo/models/vcp_odoo_author.py @@ -0,0 +1,38 @@ +# Copyright 2026 Akretion (https://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models, tools + + +class VcpOdooAuthor(models.Model): + _name = "vcp.odoo.author" + _description = "Vcp Odoo Author" + + name = fields.Char() + partner_id = fields.Many2one("res.partner", "Partner") + + _sql_constraints = [("name_unique", "unique(name)", "Name must be uniq")] + + def _get_partner(self, name): + # Simple way to match the partner + partner = self.env["res.partner"].search( + [("name", "ilike", name), ("parent_id", "=", False)] + ) + if len(partner) > 1: + partner = partner.filtered(lambda s: s.name == name) + if len(partner) == 1: + return partner.id + else: + return None + + def _prepare_author(self, name): + return {"name": name, "partner_id": self._get_partner(name)} + + @tools.ormcache("name") + def _get_author(self, name): + author = self.search([("name", "=", name)], limit=1) + if not author: + vals = self._prepare_author(name) + author = self.create(vals) + return author.id diff --git a/vcp_odoo/models/vcp_odoo_module_version.py b/vcp_odoo/models/vcp_odoo_module_version.py index 5251540..f645dd6 100644 --- a/vcp_odoo/models/vcp_odoo_module_version.py +++ b/vcp_odoo/models/vcp_odoo_module_version.py @@ -50,6 +50,11 @@ class VcpOdooModuleVersion(models.Model): readonly=True, ) description = fields.Html(readonly=True) + author_ids = fields.Many2many( + comodel_name="vcp.odoo.author", + string="Author", + readonly=True, + ) def _get_local_path(self): return f"{self.repository_branch_id.local_path}/{self.path}" diff --git a/vcp_odoo/models/vcp_rule.py b/vcp_odoo/models/vcp_rule.py index ddb1bbd..85877ef 100644 --- a/vcp_odoo/models/vcp_rule.py +++ b/vcp_odoo/models/vcp_rule.py @@ -106,6 +106,9 @@ def _process_rule_odoo_module_prepare_vals( package_bins.append( self.env["vcp.odoo.bin.package"]._get_bin_package(package_bin) ) + authors = [] + for author in manifest.get("author").split(","): + authors.append(self.env["vcp.odoo.author"]._get_author(author.strip())) description = False for html_description_path in self._get_html_description_path(): path = Path(os.path.dirname(manifest_path)) / html_description_path @@ -115,6 +118,7 @@ def _process_rule_odoo_module_prepare_vals( return { "name": manifest.get("name"), "module_id": module_id, + "author_ids": [Command.set(authors)], "version": manifest.get( "version", repository_branch.branch_id.name + ".0.0-dev" ), diff --git a/vcp_odoo/security/ir.model.access.csv b/vcp_odoo/security/ir.model.access.csv index 2fe5323..0ea2795 100644 --- a/vcp_odoo/security/ir.model.access.csv +++ b/vcp_odoo/security/ir.model.access.csv @@ -7,3 +7,5 @@ access_vcp_odoo_bin_package,Access Odoo Bin Package,model_vcp_odoo_bin_package,v manage_vcp_odoo_bin_package,Manage Odoo Bin Package,model_vcp_odoo_bin_package,vcp_management.group_vcp_manager,1,1,1,1 access_vcp_odoo_python_library,Access Odoo Python Library,model_vcp_odoo_python_library,vcp_management.group_vcp_user,1,0,0,0 manage_vcp_odoo_python_library,Manage Odoo Python Library,model_vcp_odoo_python_library,vcp_management.group_vcp_manager,1,1,1,1 +access_vcp_odoo_author,Access Odoo Author,model_vcp_odoo_author,vcp_management.group_vcp_user,1,0,0,0 +manage_vcp_odoo_author,Manage Odoo Author,model_vcp_odoo_author,vcp_management.group_vcp_manager,1,1,1,1 diff --git a/vcp_odoo/views/menu.xml b/vcp_odoo/views/menu.xml index befbdcf..c049831 100644 --- a/vcp_odoo/views/menu.xml +++ b/vcp_odoo/views/menu.xml @@ -21,8 +21,13 @@ action="vcp_odoo_module_version_act_window" sequence="20" /> + - + + + + vcp.odoo.author + + + + + + + + + + vcp.odoo.author + + + + + + + + + Author + ir.actions.act_window + vcp.odoo.author + list + + [] + {} + + diff --git a/vcp_odoo/views/vcp_odoo_module_version.xml b/vcp_odoo/views/vcp_odoo_module_version.xml index 47149cf..1066cc1 100644 --- a/vcp_odoo/views/vcp_odoo_module_version.xml +++ b/vcp_odoo/views/vcp_odoo_module_version.xml @@ -29,6 +29,7 @@ + From 1a7e1458922d94b20346beab916a3fed67c78a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Wed, 25 Mar 2026 23:07:58 +0100 Subject: [PATCH 12/14] [IMP] vcp_odoo: map maintainers --- vcp_odoo/models/vcp_odoo_module_version.py | 5 +++++ vcp_odoo/models/vcp_rule.py | 8 ++++++++ vcp_odoo/views/vcp_odoo_module_version.xml | 1 + 3 files changed, 14 insertions(+) diff --git a/vcp_odoo/models/vcp_odoo_module_version.py b/vcp_odoo/models/vcp_odoo_module_version.py index f645dd6..a46b24a 100644 --- a/vcp_odoo/models/vcp_odoo_module_version.py +++ b/vcp_odoo/models/vcp_odoo_module_version.py @@ -55,6 +55,11 @@ class VcpOdooModuleVersion(models.Model): string="Author", readonly=True, ) + maintainer_ids = fields.Many2many( + comodel_name="vcp.user", + string="Maintainer", + readonly=True, + ) def _get_local_path(self): return f"{self.repository_branch_id.local_path}/{self.path}" diff --git a/vcp_odoo/models/vcp_rule.py b/vcp_odoo/models/vcp_rule.py index 85877ef..318c1e8 100644 --- a/vcp_odoo/models/vcp_rule.py +++ b/vcp_odoo/models/vcp_rule.py @@ -109,6 +109,13 @@ def _process_rule_odoo_module_prepare_vals( authors = [] for author in manifest.get("author").split(","): authors.append(self.env["vcp.odoo.author"]._get_author(author.strip())) + + maintainers = [] + for maintainer in manifest.get("maintainers", []): + maintainers.append( + repository_branch.platform_id.host_id._get_user(maintainer) + ) + description = False for html_description_path in self._get_html_description_path(): path = Path(os.path.dirname(manifest_path)) / html_description_path @@ -119,6 +126,7 @@ def _process_rule_odoo_module_prepare_vals( "name": manifest.get("name"), "module_id": module_id, "author_ids": [Command.set(authors)], + "maintainer_ids": [Command.set(maintainers)], "version": manifest.get( "version", repository_branch.branch_id.name + ".0.0-dev" ), diff --git a/vcp_odoo/views/vcp_odoo_module_version.xml b/vcp_odoo/views/vcp_odoo_module_version.xml index 1066cc1..d1bb9e8 100644 --- a/vcp_odoo/views/vcp_odoo_module_version.xml +++ b/vcp_odoo/views/vcp_odoo_module_version.xml @@ -30,6 +30,7 @@ + From 7268da6e4b328710a1ed44f8bf658015965e51eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Mon, 30 Mar 2026 01:26:06 +0200 Subject: [PATCH 13/14] vcp_management,vcp_github: synchronize information on user with a cron --- vcp_github/models/vcp_user.py | 41 +++++++++++++++++++++++++++- vcp_management/data/ir_cron.xml | 9 ++++++ vcp_management/models/res_partner.py | 34 +++++++++++++++++++++++ vcp_management/models/vcp_user.py | 23 ++++++++++++++++ vcp_management/views/vcp_user.xml | 14 +++++++++- 5 files changed, 119 insertions(+), 2 deletions(-) diff --git a/vcp_github/models/vcp_user.py b/vcp_github/models/vcp_user.py index 7b85782..8f6d1ae 100644 --- a/vcp_github/models/vcp_user.py +++ b/vcp_github/models/vcp_user.py @@ -2,7 +2,15 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import models +import logging +from datetime import datetime + +import github3 + +from odoo import fields, models +from odoo.exceptions import ValidationError + +_logger = logging.getLogger(__name__) class VcpUser(models.Model): @@ -13,3 +21,34 @@ def _get_contributor_url(self): if not result and self.host_id.type_id.code == "github": return f"https://github.com/{self.external_id}" return result + + def _prepare_user_vals(self, user): + return { + "name": user.name or user.login, + "email": user.email, + "avatar_url": user.avatar_url, + "company": user.company, + } + + def _update_information_github(self): + self.ensure_one() + # TODO maybe we should move the api key on the host ? + platform = self.env["vcp.platform"].search( + [("host_id", "=", self.host_id.id)], limit=1 + ) + client = platform._get_github_clients()[0] + try: + user = client.user(self.external_id) + self.write(self._prepare_user_vals(user)) + except github3.exceptions.ForbiddenError as e: + _logger.error(e) + rate = client.rate_limit() + reset = fields.Datetime.to_string( + datetime.utcfromtimestamp(rate["resources"]["core"]["reset"]) + ) + raise ValidationError(self.env._(f"Reset on {reset}")) from e + except github3.exceptions.NotFoundError: + _logger.warning( + "The user %s do not exist anymore, inactive it", self.external_id + ) + self.active = False diff --git a/vcp_management/data/ir_cron.xml b/vcp_management/data/ir_cron.xml index 7746dda..907d4a9 100644 --- a/vcp_management/data/ir_cron.xml +++ b/vcp_management/data/ir_cron.xml @@ -38,4 +38,13 @@ days False + + VCP: User Update + + code + model._cron_update_users(limit=100) + 1 + days + False + diff --git a/vcp_management/models/res_partner.py b/vcp_management/models/res_partner.py index 902e67b..3e7f874 100644 --- a/vcp_management/models/res_partner.py +++ b/vcp_management/models/res_partner.py @@ -2,7 +2,12 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import base64 + +import requests + from odoo import api, fields, models +from odoo.exceptions import UserError class ResPartner(models.Model): @@ -32,6 +37,35 @@ class ResPartner(models.Model): "vcp.organization", inverse_name="partner_id", ) + image_1920 = fields.Image( + compute="_compute_image_1920", + inverse="_inverse_image_1920", + store=True, + readonly=False, + ) + + @api.depends( + "vcp_user_ids.sync_image_to_partner", + "vcp_user_ids.avatar_url", + ) + def _compute_image_1920(self): + for record in self: + sync_user = record.vcp_user_ids.filtered("sync_image_to_partner") + if len(sync_user) > 1: + raise UserError( + self.env._( + "Only one Vcp User can be use for synchronising the main image" + ) + ) + elif sync_user: + try: + response = requests.get(sync_user.avatar_url, timeout=10) + response.raise_for_status() + except Exception as e: + raise UserError( + self.env._("Fail to download avatar, %s.please retry".format()) + ) from e + record.image_1920 = base64.b64encode(response.content).decode("utf-8") @api.depends() def _compute_vcp_contributions(self): diff --git a/vcp_management/models/vcp_user.py b/vcp_management/models/vcp_user.py index 1230e92..d7fbc8a 100644 --- a/vcp_management/models/vcp_user.py +++ b/vcp_management/models/vcp_user.py @@ -26,6 +26,14 @@ class VcpUser(models.Model): partner_id = fields.Many2one( "res.partner", ) + sync_image_to_partner = fields.Boolean( + help="Use the image user as image on the partner" + ) + user_update_date = fields.Datetime(readonly=True, default=fields.Datetime.now) + avatar_url = fields.Char(readonly=True) + email = fields.Char(readonly=True) + company = fields.Char(readonly=True) + active = fields.Boolean(readonly=True, default=True) _sql_constraints = [ ( @@ -40,3 +48,18 @@ def _get_contributor_url(self): def _get_contributors_name(self, kind, **kwargs): return self.partner_id.name or self.name + + def update_information(self): + self.ensure_one() + now = fields.Datetime.now() + getattr(self, f"_update_information_{self.host_id.type_id.code}")() + self.user_update_date = now + + def _cron_update_users(self, limit): + users = self.search( + [], + limit=limit, + order="user_update_date ASC", + ) + for user in users: + user.update_information() diff --git a/vcp_management/views/vcp_user.xml b/vcp_management/views/vcp_user.xml index 8d328ad..e491f32 100644 --- a/vcp_management/views/vcp_user.xml +++ b/vcp_management/views/vcp_user.xml @@ -8,11 +8,22 @@
+
+

+ +

+
- + + + +
@@ -36,6 +47,7 @@ + From 1f34af68546acfa988ca0526eaeb4a781ea7cdbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Mon, 30 Mar 2026 09:11:46 +0200 Subject: [PATCH 14/14] vcp_odoo: remove white space on module name --- vcp_odoo/models/vcp_rule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcp_odoo/models/vcp_rule.py b/vcp_odoo/models/vcp_rule.py index 318c1e8..6dc0c78 100644 --- a/vcp_odoo/models/vcp_rule.py +++ b/vcp_odoo/models/vcp_rule.py @@ -123,7 +123,7 @@ def _process_rule_odoo_module_prepare_vals( description = path.read_text() break return { - "name": manifest.get("name"), + "name": manifest.get("name").strip(), "module_id": module_id, "author_ids": [Command.set(authors)], "maintainer_ids": [Command.set(maintainers)],