On a new database, logged as administrator, installing
``website_slides`` commonly (but not systematically) leads to a 403
error when the module install redirects to the slides
index (``/slides``).
The issue here is the installation of the slides module deletes the
existing routing map, which needs to be regenerated. The regeneration is
performed at the start of URL dispatching *before authentication* but
accesses ``request.env` in order to look up the list of installed
modules, which generates and caches (due to env being a lazy_property)
an ``Environment(cr, None, context)``.
Once regeneration and auth are done the controller is executed with
``request.env`` still being set to ``Environment(cr, None, context)``
and thus the first tentative access (search) to an object blowing up
with an AccessError. The next request or an initial request not
accessing ``request.env`` will work fine as they'll reuse the routing
map generated by the initial request.
Fixed by just getting the set of installed modules from the registry.
The only difference between payment matching and reconciliation is that
in the former the reconciliation was already made while in the latter we
do it at bank statement reconciliation time.
So they behave the same in the interface except that partial reconciliation
is not proposed for payment matching.
The `account.account` `name` can be translated
as soon as `l10n_multilang` is installed.
Not passing the context in the calls to
the `search` method prevented to search
on the translations of this name.
Closes#4511
Main_domain for getting preferred_quants needs to be reset every time.
(otherwise the method will change it every time and it will lead to inconsistent results)
An entire pack can be moved also when the products inside require lot tracking. (check_tracking update)
There is no check if the quants have lots when a pack is moved entirely.
On the other hand, the "put in pack" checks that what is put in it has the necessary lots.
(but if incoming is without lots and outgoing with, you can still do an entire pack out without lots)
In commit bc43417b, a loading attribute is set on any submit button. The
problem is that this attribute is the first thing to be set. Therefore,
we cannot prevent its propagation.
Since Bootstrap sets this 'loading' attribute in a setTimeout, we need
to remove it in a setTimeout as well.
When selecting the contacts to recieve a massmailing, restrict to the ones
available for mass-mailing to be consistent with the menu 'Mailing List
Subscribers'
Fix#8463
During reconciliation wizard, the wizard tries to find the best match with
exisiting unreconciled lines.
When more than one line could be reconciled with the bank statement line, the
oldest line was not selected.
e.g.
- statemement line: 10€
- invoice 1: 10€
- invoice 2: 10€
- invoice 3: 5€
The statement line was reconciled with the 5€ invoice instead of the first one.
This was due to the domain not matching when the exact same amount was found.
Sign CLA for compassionCH
Closes#8767
Commit e0c1f54fd7 was supposed to prevent the message fetch in the
inbox view. However, self.is_log refers to the type of message: internal
note or message. This properly checks if the page displayed is the inbox
view before fetching the messages.
Related to #7596
opw-650208
Avoid "patching" the registry, as this introduces inconsistencies (some field
attributes are lost). Instead, proceed as follows:
- update the definition of custom fields in database;
- clear the corresponding cache on the registry (this was missing);
- setup the models in registry (this reloads the custom models and fields);
- update the database schema of the models based on the registry.
This makes the update of custom fields simpler and more robust.
This merge is a large refactoring of the chat/channel code (client side
code). A goal is to simplify the logic of updating chat windows,
chatter and channels.
A notable change is that it also disable the livechat js code, because
it was not updated on time.
At least, when someone mentions a user in a message posted in a channel, a
notification is sent by the server that a new message just arrived in that
channel. Client side, we then decide whether or not this message should appear
in the Inbox as well. In the positive case, we can increase the needaction
counter.
Problem remains for messages sent from chatters and by using the mail icon in
the systray, as for those ones, no notification at all is sent by the server.
In test mode, only one cursor is available, and longpolling will take
it, and not give it back before 60s, causing a phantomjs timeout. This
commit simply return an error when the server is in test mode.
Sadly, I had to patch the web client to prevent logging the error in
this case, because that's the way phantomjs detect if there is a
problem.
It was hidding it because the method that removes a message from the thread
didn't pass the options for the thread rendering, and the flag specifiying
whether or not the 'load more' button should be displayed is in this options
object.
boot loader waited for only 100 ms before logging failed modules.
However, modules can now wait for deferred before completing their
loading, so this delay is increasingly getting too short.
in systray and in client action. This is only a client side fix. A
problem persists: the server does not notify the client when a new
message arrives in the inbox, to the client can not possibly increase
the counter.
The problem was that the bus didn't listen to new channels when they were
registered until the end of the current longpoll. This allows mail to manually
restart the polling.