Skip to content

Fork Sync Branch 18.0 - #19

Merged
btl-bot merged 4 commits into
BTLzdravtech:18.0from
ingadhoc:18.0
Oct 1, 2026
Merged

btl-bot merged 4 commits into
BTLzdravtech:18.0from
ingadhoc:18.0

Conversation

@btl-bot

@btl-bot btl-bot commented Oct 1, 2026

Copy link
Copy Markdown

No description provided.

lef-adhoc and others added 4 commits September 25, 2026 11:31
The core /mail/thread/data controller empties request_list when the user is
not internal, so the response carries neither followersCount nor attachments.
The chatter keeps its spinner while followersCount is undefined and the
attachments are not loaded, so both counters spin forever for a portal backend
user. The cut happens before any permission check, so it is not an ACL issue.

Override the controller to set portal_bypass for portal backend users, which
is the context this module already uses to make _is_internal return True. Core
still checks read access on the record before answering, so a portal backend
user without access to the record gets nothing, and plain portal users are
unaffected.

Also drop the _get_mail_thread_data override: that method no longer exists in
Odoo 18, where _thread_to_store replaced it. It was dead code left over from
the migration, and it used to strip "followers" to dodge an error on records
followed by an internal user. That error does not show up anymore.

closes #449

Signed-off-by: Guido Galetto <gal@adhoc.inc>
…ry model

The replacement of base.exception.method.detect_exceptions() used to live in
sale_exception_compat. The method is defined on the abstract model every
exception module inherits from, so stock_exception was covered only while a
sale module happened to be installed, with nothing declaring that dependency.

Move it to its own module that auto installs with base_exception, so the flow
is restored for stock.picking, stock.move and anything else that inherits
base.exception without depending on sales.

The override delegates to super() when the context carries test_base_exception,
the key upstream sets to exercise the second cursor on purpose in its own
tests. Nothing sets it outside tests, so the behaviour is unchanged elsewhere
and those tests keep meaning something once this module is loaded.

Without this module, on a database with stock_exception and no sale_exception,
confirming a transfer that matches an exception rule raises BaseExceptionError
from detect_exceptions(). The web client swallows it and asks the record for
its popup, but stock.picking does not override _must_popup_exception(), so the
default False turns it into a soft reload: the transfer stays in draft and the
user is told nothing. stock_exception's own test suite errors on 2 of its 4
tests for the same reason.

closes #453

Related: ingadhoc/sale#1871
Signed-off-by: Filoquin adhoc <maq@adhoc.com.ar>

@sireko sireko left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Auto approved

@btl-bot
btl-bot merged commit 154262e into BTLzdravtech:18.0 Oct 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants