Skip to content

Conversation

@tishmen
Copy link

@tishmen tishmen commented Oct 10, 2025

Scope

  • portal_debranding

Depends on

  • None

Summary

  • Migrate to Odoo 19 and rename the module to portal_debranding to remove redundant wording.
  • Debrand portal pages:
    • Hide brand promotion block.
    • Remove/avoid "Powered by Odoo" in portal record sidebar and login page footer.
  • No new dependencies.

Pre-commit

  • Ran locally; hooks passed (prettier, ruff, pylint-odoo, OCA hooks).

Tests

  • Unit tests included to assert brand promotion is hidden and portal sidebar has no "Powered by".
  • Example run:
    ./odoo/odoo-bin -c odoo.conf -d <db> -i portal_debranding --test-enable --stop-after-init

Review notes

  • Renaming applied as suggested (V-Name), keeping the technical scope minimal and focused on portal debranding.

@pedrobaeza
Copy link
Member

/ocabot migration portal_odoo_debranding

@OCA-git-bot OCA-git-bot added this to the 19.0 milestone Oct 11, 2025
@OCA-git-bot OCA-git-bot mentioned this pull request Oct 11, 2025
3 tasks
@pedrobaeza
Copy link
Member

Checked on runboat that indeed there's no "Powered by Odoo" in the /my page, but we have it on the login screen:

image

and I think this module should also take care of that. It's not a migration thing, as previous versions already had it, but to improve it that way. What do you think?

@tishmen
Copy link
Author

tishmen commented Oct 11, 2025

Thanks, @pedrobaeza - I’ll definitely take care of that and remove the “Powered by Odoo” footer.

If you notice any other Odoo-related branding that should be stripped out, please let me know and I’ll handle those too. I think this module should cover a bit more ground - I can already think of the website onboarding page and the “Powered by Odoo” strings at the bottom of the initial settings screen. What do you think?

Also, I’ve noticed that Odoo alert modals sometimes include “Odoo” in their titles. I’ve seen some third-party modules handle that kind of debranding as well - do you think that’s something we could leverage here?

Screenshot 2025-10-11 103733 Screenshot 2025-10-11 103850

@pedrobaeza
Copy link
Member

There's already a module for the website: https://github.com/OCA/website/tree/18.0/website_odoo_debranding

It should be maybe hosted here, but it's for now on OCA/website, and the idea is to not make this current module to depend on other modules that may or may not be installed.

@tishmen
Copy link
Author

tishmen commented Oct 11, 2025

I’ll try to migrate that module to version 19 as well so we can have a complete rebranding suite.

By the way, what about the Odoo branding shown at the bottom of the Settings page under Developer Tools? Should we handle that here too, or would you prefer it to stay out of scope?

@pedrobaeza
Copy link
Member

Well, the idea of this module is to prevent an outsider to see the brand Odoo. If you have access to the settings, you probably know that you are using Odoo, hehe.

@tishmen
Copy link
Author

tishmen commented Oct 11, 2025

Got it 🙂 I’ll try to make the module cover as much of the debranding as possible while keeping things clean. Once it’s done, we can review together and decide which parts make sense to keep or remove.

@tishmen
Copy link
Author

tishmen commented Oct 15, 2025

Hi @pedrobaeza!

  • I’ve added the debranding for the login screen so “Powered by Odoo” no longer shows up there.
  • I also added tests covering both the login page debranding and the portal record sidebar (no “Powered by” there either).
  • In parallel, I built a new module, web_odoo_debrand, which removes Odoo traces from Settings (About block) and clears the browser tab title fallback. It includes unit tests, and I’ll open a PR for it shortly.

If you spot any other remaining Odoo branding, happy to include it as well.

@pedrobaeza
Copy link
Member

Thanks for the changes. Another good change is to rename the module to portal_debranding to remove redundant words, but I would understand if it's asking too much.

@tishmen tishmen changed the title [19.0][MIG] portal_odoo_debranding: migrate [19.0][MIG] portal_debranding: migrate Oct 15, 2025
@pedrobaeza
Copy link
Member

Thanks for the renaming. For having the whole commit history renamed, as if not, the commit history will be lost on next version, please do:

OCA/brand#274 (comment)

@tishmen tishmen force-pushed the 19.0-mig-portal_odoo_debranding branch 4 times, most recently from fb9bae3 to 2d031ee Compare October 15, 2025 20:56
@tishmen
Copy link
Author

tishmen commented Oct 15, 2025

Hi @pedrobaeza , I rewrote the entire branch history to preserve ancestry using:

  • git filter-repo --path-rename portal_odoo_debranding/:portal_debranding/ --refs 19.0-mig-portal_odoo_debranding --force

Force-pushed the branch; PR #109 is updated. I also adjusted the title to “Portal” and renamed the tests accordingly. For anyone with the branch checked out:

  • git fetch origin && git checkout 19.0-mig-portal_odoo_debranding && git reset --hard origin/19.0-mig-portal_odoo_debranding

@tishmen
Copy link
Author

tishmen commented Oct 15, 2025

BTW, it’s been great aligning and merging all the debranding modules into a coherent suite. Really appreciate your guidance throughout! @pedrobaeza

Copy link
Member

@pedrobaeza pedrobaeza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work! You may want to add yourself in CONTRIBUTORS.md

@bjornbillen
Copy link

bjornbillen commented Dec 8, 2025

@tishmen @pedrobaeza : something else that might be included in the portal debranding code. Not sure how long this already exists in Odoo honestly, but it is full of "Odoo" references. With the E-Invoicing modules being more frequently used, this modal can be opened in the /my/purchase and /my/orders screen. Dependency on edi_ubl modules before the button starts showing. See below screenshot and source code of the modal.

image

(sale/views/sale_portal_templates.xml)

<div class="modal fade" id="sale_portal_connect_software_modal" tabindex="-1" role="dialog" aria-hidden="true">
                    <div class="modal-dialog modal-lg" role="document">
                        <div class="modal-content">
                            <div class="modal-body">
                                <div>
                                    <h5>Want to import this document in Odoo?</h5>
                                    <p>Drag and drop the request for quotation PDF file into your list of quotations in Odoo. Enjoy the automation!</p>
                                </div>
                                <div>
                                    <h5>Not using Odoo?</h5>
                                    <div class="input-group mb-3 w-50">
                                        <t t-set="base_address" t-value="sale_order.env['ir.config_parameter'].sudo().get_param('web.base.url')"/>
                                        <t t-set="doc_url" t-value="base_address + '/my/orders/' + str(sale_order.id) + '/download_edi?' + str(keep_query())"/>
                                        <input type="text" class="form-control" aria-describedby="copy-button" readonly="readonly" t-att-value="doc_url"/>
                                        <button class="btn btn-outline-secondary" type="button" id="copy-button"
                                        t-attf-onclick="navigator.clipboard.writeText('#{doc_url}')">Copy</button>
                                    </div>
                                    <p>Use the above REST URL to get structured data of the purchase order in UBL format.
                                        <a href="https://www.odoo.com/documentation/">Read the documentation </a>to learn all the ways to connect your software with <a href="https://www.odoo.com">Odoo</a>.
                                    </p>
                                </div>
                                <div>
                                    <h5>You don't use a good CRM software?</h5>
                                    <p><a href="https://www.odoo.com/app/sales">Start on Odoo</a>, it's 100% free! You'll save time creating beautiful quotations and track sales.</p>
                                </div>
                            </div>
                            <div class="modal-footer justify-content-between">
                                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                            </div>
                        </div>
                    </div>
                </div>

@pedrobaeza
Copy link
Member

@bjornbillen that requires an extra glue module sale_portal_debranding or similar, as we can't depend this one on sale. Feel free to propose it.

For now, let's merge this one.

/ocabot merge nobump

@OCA-git-bot
Copy link
Contributor

What a great day to merge this nice PR. Let's do it!
Prepared branch 19.0-ocabot-merge-pr-109-by-pedrobaeza-bump-nobump, awaiting test results.

OCA-git-bot added a commit that referenced this pull request Dec 8, 2025
Signed-off-by pedrobaeza
@tishmen tishmen force-pushed the 19.0-mig-portal_odoo_debranding branch from 96e4c74 to f0410aa Compare December 22, 2025 00:38
@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@pedrobaeza
Copy link
Member

/ocabot merge nobump

@OCA-git-bot
Copy link
Contributor

This PR looks fantastic, let's merge it!
Prepared branch 19.0-ocabot-merge-pr-109-by-pedrobaeza-bump-nobump, awaiting test results.

@OCA-git-bot
Copy link
Contributor

Congratulations, your PR was merged at 3d14d53. Thanks a lot for contributing to OCA. ❤️

@OCA-git-bot OCA-git-bot merged commit 5b2f563 into OCA:19.0 Jan 8, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.