Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
6bb12b8
[ADD] add oca_vcp
sebastienbeau Mar 25, 2026
a476dba
[ADD] add oca_search_engine
sebastienbeau Mar 9, 2026
c3d25b2
Update pyproject
sebastienbeau Mar 25, 2026
239d6cd
DO NOT MERGE: hack uv sync to avoid to commit uv.lock
sebastienbeau Mar 26, 2026
99d4677
oca_vcp: add category in repository tree view
sebastienbeau Mar 30, 2026
8a1f194
oca_search_engine: add author, maintainer, development_status
sebastienbeau Mar 30, 2026
cd53a1a
oca_all: add migration script
sebastienbeau Mar 30, 2026
29985d2
[DRAFT] Cleaning of OCA database
arnaudlayec Mar 25, 2026
e7b7b5c
[18.0][ADD] oca_sponsor
arnaudlayec Mar 25, 2026
c6c87fc
[18.0][NEW] DRAFT: Start minimal oca_membership for search engine
arnaudlayec Mar 25, 2026
43e2b6d
[18.0][IMP] Add into oca_all and oca_search_engine the synch logics f…
arnaudlayec Mar 25, 2026
92a64a9
Move PSC to oca_vcp and comment everything (as obsolete)
arnaudlayec Mar 31, 2026
3417d59
[oca_membership] Simplify Roles & Working Groups mgt:
arnaudlayec Mar 31, 2026
e957c0c
[DRAFT] schema: replace TypedDict with StrictExtendableBaseModel
arnaudlayec Apr 1, 2026
8a94414
[REVIEW+SMALL FIX]
arnaudlayec Apr 3, 2026
ce78b78
[IMP] Avatar: switch to image_1920, and clean old default ones
arnaudlayec Apr 3, 2026
686b2ea
pyproject: Update version of VCP + pytest version
sebastienbeau Apr 6, 2026
6b6c9c8
[IMP] move 'publish' fields to 'oca_membership' + other small reviews…
arnaudlayec Apr 8, 2026
b2683d3
pylint / pre-commit
arnaudlayec Apr 8, 2026
a1e972f
[IMP] Add Github fields on my/home portal: login & sync avatar
arnaudlayec Apr 8, 2026
1b408fb
DO NOT MERGE: Add module in test_requirement
sebastienbeau Apr 9, 2026
cfa2257
[FIX] Tests of 'oca_sponsor' and 'oca_search_engine'
arnaudlayec Apr 9, 2026
a9c2461
oca_custom: disable everything (will be replaced by 'oca_membership_g…
arnaudlayec Apr 9, 2026
77109e1
Move scripts in migrations
arnaudlayec Apr 9, 2026
eb5f9ca
Fix pre-commit
sebastienbeau Apr 12, 2026
3b7902a
[MIG] Disable 'website_oca_sponsor' and clean 'oca_custom' too. Keep …
arnaudlayec Apr 12, 2026
911260f
[FIX] oca_search_engine: auto-sync only sponsors & integrators, and o…
arnaudlayec Apr 13, 2026
cdbc09e
[FIX] Do not use 'sponsor_name' for url_key, else it's empty for many…
arnaudlayec Apr 13, 2026
2251f91
oca_search_engine: implement url logic for module, and fix ur for par…
sebastienbeau Apr 13, 2026
faecb10
oca_search_engine: complet schema
sebastienbeau Apr 13, 2026
a70c1ca
oca_vcp: add collaboration index computation
sebastienbeau Apr 13, 2026
48e562b
[FIX] oca_sponsor: wrong view xml id
bguillot Apr 22, 2026
80055b5
[FIX] set publish field as default false to let the member choose wha…
bguillot Apr 22, 2026
830d31e
oca_vcp: add long and short description in repo category
sebastienbeau Apr 23, 2026
b8a93ac
oca_vcp: support removing main login
sebastienbeau Apr 23, 2026
cb232a9
oca_search_engine: export category, only export url on sponsor integr…
sebastienbeau Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ RUN set -e \
# github_connector* Odoo modules
cloc \
git \
pandoc \
&& apt -y clean \
&& rm -rf /var/lib/apt/lists/*

Expand Down Expand Up @@ -49,9 +50,8 @@ RUN set -e \
# but not the project
ARG DISTRO
RUN --mount=type=cache,target=/root/.cache/uv,id=uv-${DISTRO} \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --frozen --no-install-project
uv sync --no-install-project

###############################################################
# In this runtime stage, we install the app in editable mode,
Expand All @@ -68,6 +68,6 @@ WORKDIR /app
RUN python -m compileall .
ARG DISTRO
RUN --mount=type=cache,target=/root/.cache/uv,id=uv-${DISTRO} \
uv sync --locked --no-dev
uv sync --no-dev

COPY entrypoints/* /odoo/start-entrypoint.d/
6 changes: 1 addition & 5 deletions oca_all/README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=======
OCA All
=======
Expand All @@ -17,7 +13,7 @@ OCA All
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
.. |badge2| image:: https://img.shields.io/badge/licence-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%2Foca--custom-lightgray.png?logo=github
Expand Down
11 changes: 9 additions & 2 deletions oca_all/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{
"name": "OCA All",
"summary": "All oca modules dependencies",
"version": "18.0.0.0.2",
"version": "18.0.1.0.0",
"development_status": "Alpha",
"website": "https://github.com/OCA/oca-custom",
"author": "Pierre Verkest <pierre@verkest.fr>, Odoo Community Association (OCA)",
Expand Down Expand Up @@ -153,6 +153,7 @@
"partner_statement",
"project_task_add_very_high",
"oca_custom",
"oca_search_engine",
"partner_contact_access_link",
"pdf_xml_attachment",
"project_role",
Expand All @@ -168,8 +169,14 @@
"web_refresher",
"web_search_with_and",
"web_widget_dropdown_dynamic",
"website_oca_integrator",
"website_sale_hide_empty_category",
# Custom
"oca_custom",
"oca_membership",
"oca_search_engine",
"oca_sponsor",
"oca_website",
"website_oca_integrator",
"website_sale_oca_apps",
# OCA CUSTOM
"oca_website",
Expand Down
65 changes: 65 additions & 0 deletions oca_all/migrations/18.0.1.0.0/post-migrate-avatar-reset.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Copyright 2026 Akretion (https://www.akretion.com).
# @author Arnaud LAYEC <sebastien.beau@akretion.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

import logging

from openupgradelib import openupgrade

from odoo.tools import SQL

_logger = logging.getLogger(__file__)

BATCH_SIZE = 1000


@openupgrade.migrate(use_env=True)
def migrate(env, version):
"""Lots of avatar are duplicated on `res.partner`, and stored 'in hard' in database
though they are default avatar"""

# 1. Get partners with similar avatar (by checksum)
res = env.execute_query(
SQL("""
SELECT res_id
FROM ir_attachment
WHERE checksum IN (
SELECT checksum -- , COUNT(id), MAX(res_id)
FROM ir_attachment
WHERE res_model = 'res.partner' AND res_field = 'image_1920'
GROUP BY checksum
HAVING COUNT(id) >= 2
ORDER BY COUNT(id) DESC
)
AND res_model = 'res.partner'
""")
)
partner_ids = [y for x in res for y in x]
partners = (
env["res.partner"]
.browse(set(partner_ids))
.exists()
.with_context(prefetch_fields=False)
)

# 2. Cleaning duplicated avatars, by batch
if not partners:
_logger.info("No partner with duplicate avatar => stop here.")
return

partners_count = len(partners)
_logger.info("Start avatar cleaning: %d partners(s)", partners_count)

for i in range(0, partners_count, BATCH_SIZE):
offset = i * BATCH_SIZE
_logger.info(
"Batch %d: partners %d to %d...",
i + 1,
offset + 1,
min(offset + BATCH_SIZE, partners_count),
)

batch = partners[i : i + BATCH_SIZE]
batch.image_1920 = False

_logger.info("Avatar cleaning ended: %d partners cleaned.", partners_count)
24 changes: 24 additions & 0 deletions oca_all/migrations/18.0.1.0.0/post-migrate-github-user.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2026 Akretion (https://www.akretion.com).
# @author Sébastien BEAU <sebastien.beau@akretion.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


@openupgrade.migrate(use_env=True)
def migrate(env, version):
partners = env["res.partner"].search(
[
("github_name", "!=", False),
]
)
host = env.ref("vcp_github.vcp_github_host")
for partner in partners:
env["vcp.user"].create(
{
"name": partner.name,
"external_id": partner.github_name,
"partner_id": partner.id,
"host_id": host.id,
}
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2026 Akretion (https://www.akretion.com).
# @author Arnaud LAYEC <sebastien.beau@akretion.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

import logging

from click_odoo import odoo
from openupgradelib import openupgrade

_logger = logging.getLogger(__file__)


@openupgrade.migrate(use_env=True)
def migrate(env, version):
"""Set Membership Categories on Products, as per their name
We now need them to manage the Role in the association.
This scripts helps recomputing the history and define the last active
'Category' in the association"""

_logger.info("Membership Category init: start")

# 1. Configure product: set `membership_category_id` based on products' name
mapped_categories = {
category.name.lower().split(" ")[0]: category
for category in env["membership.membership_category"].search([])
}
products = (
env["product.product"]
.with_context(active_test=False)
.search([("membership", "=", True)])
)
for product in products:
category = None
for category_name, category in mapped_categories.items():
if category_name in product.name.lower():
product.membership_category_id = category
break

# 2. On members, set `membership_category_id` based on their last membership line
members = env["res.partner"].search([("member_lines", "!=", False)])
for member in members:
last_line = odoo.fields.first(
member.member_lines.sorted("date_to", reverse=True)
)
member.membership_category_id = last_line.category_id

_logger.info("Membership Category init: done (%d members)", len(members))
22 changes: 8 additions & 14 deletions oca_all/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>README.rst</title>
<title>OCA All</title>
<style type="text/css">

/*
Expand Down Expand Up @@ -360,21 +360,16 @@
</style>
</head>
<body>
<div class="document">
<div class="document" id="oca-all">
<h1 class="title">OCA All</h1>


<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
</a>
<div class="section" id="oca-all">
<h1>OCA All</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:3e887c794f820f242543499c03a977bc94b399afb9e33b751884e986543cef0e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Alpha" src="https://img.shields.io/badge/maturity-Alpha-red.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/oca-custom/tree/18.0/oca_all"><img alt="OCA/oca-custom" src="https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/oca-custom-18-0/oca-custom-18-0-oca_all"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/oca-custom&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Alpha" src="https://img.shields.io/badge/maturity-Alpha-red.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/oca-custom/tree/18.0/oca_all"><img alt="OCA/oca-custom" src="https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/oca-custom-18-0/oca-custom-18-0-oca_all"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/oca-custom&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>OCA’s Odoo instance’s dependencies.</p>
<p>Installing this module will create an instance likes the one used to
manage the OCA association.</p>
Expand All @@ -396,23 +391,23 @@ <h1>OCA All</h1>
</ul>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-1">Bug Tracker</a></h2>
<h1><a class="toc-backref" href="#toc-entry-1">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/oca-custom/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/oca-custom/issues/new?body=module:%20oca_all%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h2><a class="toc-backref" href="#toc-entry-2">Credits</a></h2>
<h1><a class="toc-backref" href="#toc-entry-2">Credits</a></h1>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-3">Authors</a></h3>
<h2><a class="toc-backref" href="#toc-entry-3">Authors</a></h2>
<ul class="simple">
<li>Pierre Verkest &lt;<a class="reference external" href="mailto:pierre&#64;verkest.fr">pierre&#64;verkest.fr</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-4">Maintainers</a></h3>
<h2><a class="toc-backref" href="#toc-entry-4">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
Expand All @@ -427,6 +422,5 @@ <h3><a class="toc-backref" href="#toc-entry-4">Maintainers</a></h3>
</div>
</div>
</div>
</div>
</body>
</html>
6 changes: 1 addition & 5 deletions oca_custom/README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

===================
OCA Custom Settings
===================
Expand All @@ -17,7 +13,7 @@ OCA Custom Settings
.. |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/license-AGPL--3-blue.png
.. |badge2| image:: https://img.shields.io/badge/licence-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%2Foca--custom-lightgray.png?logo=github
Expand Down
15 changes: 1 addition & 14 deletions oca_custom/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,6 @@
"website": "https://github.com/OCA/oca-custom",
"author": "GRAP, Akretion, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": [
"base",
"contacts",
"github_connector",
"membership",
"mail_group",
],
"data": [
"data/ir_cron_data.xml",
"data/ir_action_server_data.xml",
"views/res_config_settings.xml",
"views/res_partner.xml",
"views/mail_group.xml",
],
"depends": ["base"],
"installable": True,
}
11 changes: 0 additions & 11 deletions oca_custom/data/ir_action_server_data.xml

This file was deleted.

13 changes: 0 additions & 13 deletions oca_custom/data/ir_cron_data.xml

This file was deleted.

2 changes: 0 additions & 2 deletions oca_custom/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
from . import res_partner
from . import res_config_settings
from . import mail_group
Loading
Loading