A similar fix was originally done in [1], where the access to `env` was done
before the parent dispatch.
The issue was then reintroduced with [2], where the `env` was possibly accessed
again after the dispatch. This works most of the time, but in the rare case
where the session is destroyed during dispatch, which is the case on
`/web/session/destroy`, accessing the environment after that point will crash.
This issue didn't manifest before [3], because the `env` was always initialized
during `checked_call` when calling the `clear` method on it (since `env` is a
magic property). After that commit, the `clear` is not called if not necessary,
therefore it might happen that the `env` is never initialized. This leads to the
crash when trying to initialize it for the first time after the `db` attribute
has been cleared during the destroy, since a `db` is required to initialize it.
The current fix aims to prevent the crash. As opposed to [1] that actually kept
the tracking fields by fetching them before the dispatch, it is decided on this
commit to voluntarily lose the tracking fields when destroying the session,
because keeping them would require too much refactoring for a fix in stable, but
we also feel that it makes sense functionally: those tracking fields were maybe
used for a specific purpose in the original database, but they might mean
something completely different on another database.
[1] 6780597f2d
[2] c78de22a09
[3] f6d56afba0closes#42260closesodoo/odoo#42314
X-original-commit: 2ac11ce7a3f36a1572d886bc872facf339cb6516
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Before this commit nothing prevented high concurrency on a threaded http
server to consume too much resources, ending up failing requests either
because the OS is unable to spawn that many threads
(`RuntimeError: can't start new thread`), either because the Odoo db
connection pool is full (`PoolError: The Connection Pool Is Full`).
This commit adds the ODOO_MAX_HTTP_THREADS environment variable which
allows to limit the amount of concurrent socket connections accepted by
a threaded server, implicitly limiting the amount of concurrent threads
running for http requests handling.
Note that if a value has been provided to ODOO_MAX_HTTP_THREADS that cannot
be parsed as an integer, a value will be automatically set to half the
db connection pool size (which defaults to 64). This dynamic value is
chosen because while most requests will borrow only one cursor
concurrently, there are some exceptions where some controllers might
allocate two or more cursors.
closesodoo/odoo#42327
X-original-commit: d42a951369ee87b50e834f73cd2af5cf031d43f7
Signed-off-by: Christophe Simonis <chs@odoo.com>
Purpose
=======
If the user doesn't have the timesheets app, it is not possible to generate
a task from an SOL. However, the user may want to generate a task without
necessarily timesheeting on it (e.g. a task in Field Service).
Specification
=============
Move the feature to a new module sale_project, sale_timesheet becomes
dependent on it.
Task-2123707
closes odoo/odoo#40594
Closes: #40594
Related: odoo/enterprise#6851
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Changes (+ fix) to the way inputs work:
- Placeholder is now independant from the default value and set through
data-placeholder. When emptying an input, it still sends the default
value but appears empty. The value is only visually added in the input
after leaving it (or hitting enter), after the validation through
_computeWidgetState (because now when the default value is applied on
a snippet, the value is displayed in the input as any other value).
- Consider inputs active if they hold a value and, in the case the input
has an associated unit, if that value is different from 0 (important
for visibility checks).
- If no default value is set and that a unit is set, the input will
return the ('0' + unit) value by default (no need to specify it in xml
anymore).
Part of https://github.com/odoo/odoo/pull/42407
Collisions in table names of ORM models with built-in PG structures such
as "attributes", "domains", "routines", "parameters", ... could occur
and render the result of `table_kind` meaningless.
Based on what was done via https://github.com/odoo/odoo/pull/16651 more
than 2 years ago, it seems relying on our tables being in the 'public'
schema is safe, even though it's only a default from PG. We reuse that
same logic rather than the alternative of excluding
('information_schema', 'pg_catalog', ...), even though it looks safer at
first. If we did the latter we'd have to change the other comparison for
consistency, i.e. more risks.
closesodoo/odoo#42358
X-original-commit: d8e74eb14990c82f65a44ffe163aa84159d6ccc4
Signed-off-by: Denis Vermylen <Icallhimtest@users.noreply.github.com>
Currently, the website logo is not displayed on SEO dialog and instead the
company logo is being displayed.
After recent changes (see [1]), company logo and website logo are now
different and so changes were not adapted on the website.
This commit fixes the issue by adapting the changes and displaying the
correct website logo on the SEO dialog.
[1] - https://github.com/odoo/odoo/commit/8be4567ae8f6b0388206c091590278ef11a2df21
task-2083006
closesodoo/odoo#42391
X-original-commit: 9c75960e931bc77530074f60997cced4b5907d3e
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The tokens access rights makes it possible for a portal users to manage
cards for their 'parent' (commercial_partner_id), this commit
homogenises this concept to allow using these tokens at checkout as
well.
Side effect of task 2119417
closesodoo/odoo#42386
Related: odoo/enterprise#7430
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
Create a repair order for some product tracket by SN. User is able to
specify the quantity of items to be repaired. This is purely graphical
as the SN will determine the quantity (1) but may confuse the user
opw-2160595
closesodoo/odoo#42392
X-original-commit: 054d4bc6bc219bcc6b0a64265e8d7e9c7423dbc8
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Issue
- Install CRM & Studio
- Edit CRM kanban view
- Add tags > select "tags"
Traceback
Cause
_render is called multiple times, there is one case where
`this.$el` is undefined.
Solution
Checking if `this.$el` exists before using it.
OPW-2156964
closesodoo/odoo#42382
X-original-commit: 05f31289c1bb1d8c4b8e1f72f519e8e35e5ecb8c
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
- Set USD as company currency
- Set the EUR rate to 1.5
- Create a product A: FIFO & automated, invoicing based on delivery
- Create a pricelist in EUR
- Buy some quantity @ 100 USD
- Create a SO for 1 @ 200 EUR
- Confirm the SO, validate the picking, generate the invoice
- Post the invoice
The COGS are incorrect:
Amount Currency Debit Credit
Stock Interim (Delivered) -66.67 0.00 100.00
Expense 66.67 100.00 0.00
It should be:
Amount Currency Debit Credit
Stock Interim (Delivered) 0.00 0.00 100.00
Expense 0.00 100.00 0.00
opw-2148171
closesodoo/odoo#42381
X-original-commit: 3a6ada5e550775e84c3d8a2f720bdd45250e2880
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
`self` is a controller, not a model, thus we use the request to get the
environment.
opw-2160614
closesodoo/odoo#42350
X-original-commit: ac456d8d12bfc26addb3f097aa5552176f6fb765
Signed-off-by: Richard Mathot (rim) <rim@openerp.com>
Leftover typo from #36804.
The company_id key in the context was removed and replaced
by the generic with_company mechanism, we therefore have to use self.env.company
(and not self.env.company_id which doesn't exist).
closesodoo/odoo#42348
X-original-commit: 4a627816e9c803ff414e6d5a5267b6f44aa25e72
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Before this, when we printed a ticket for the kitchen, if we went back to the table management and go back to the order, we could re print the same product.
Now, we can only reprint the order if there is something different.
closesodoo/odoo#42208
Task-id: 2123029
X-original-commit: c8f604045eb0d476766641386c4e5e1605b915c3
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Purpose of this commit is to clean a bit crm tests, notably lessening data
created in tests and removing / improving some low level tests. As we are
about to remove onchange / default and replace them by editable computed
fields it is easier to clean some tests and data beforehand.
This commit is a preliminary cleaning coming from task 2088565 about CRM
onchange to compute methods update.
LINKS
Task ID 2088565
Community PR #42344
Enterprise PR odoo/enterprise#7403
Related: odoo/enterprise#7403
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
We now also support formatting a return path when emulating incoming emails.
Purpose is to integrate some more tests in a near future about incoming
emails, notably in CRM.
This commit is a preliminary cleaning coming from task 2088565 about CRM
onchange to compute methods update.
LINKS
Task ID 2088565
Community PR #42344
Enterprise PR odoo/enterprise#7403
Channel allow to browse slides and a list of available slide is displayed
as a left panel in the eLearning frontend. Even slides current user
cannot see are displayed in order to give some information about course
content. Accessible slides are clickable, other slides should be
displayed as strings. However due to some sudo when computing slide
informations all links are set as clickable.
There is no security issue as when being redirected to a slide the
user cannot access there is an acl error. However he should not have
the links displayed, just strings. This commit fixes that behavior.
closesodoo/odoo#42338
X-original-commit: 04a957bb18665957faf87b6c47996643adbd4558
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit adds the width of blog posts to the "Stretch" snippet option
(previously, only full width aka container-fluid and regular container
were allowed, hence the name), as such it has been renamed to width.
Some code in website_blog has been adapted to reuse that class, such
that the width of the small container can be adjusted and website and
website blog will stay consistent with one another.
task-2155513
closesodoo/odoo#41844
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Before this task, we had some menu snippets but they were not really
perfect and there were theme specific.
task-2091911
closesodoo/odoo#40169
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
PURPOSE
Currently eLearning lacks feature of having downloadable resources on
lessons. Indeed for example teachers would like to attach zip files or
other resources linked to a given lesson.
SPECIFICATIONS
You can now allow the user to download the slide content for pdf and image
slides. A new icon will be visible next to the fullscreen button on the pdf
viewer.
Course maintainers can also add additional resources to a slide which will be
available to download for the user.
Task ID 2066741
PR #39890
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
-Product configurator applies to all a db. If need it for just a few products.
If want to scan or type sku of variants of other products to quickly populate the order.
it's time-consuming to go through product configurator.
-In this commit, To overcome of this issue, 'Product Variant' field optionally
visible when product_configurator is installed.
task- 2082126
closes- odoo#41979
closesodoo/odoo#41979
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
PURPOSE :
A quiz after a course content is a good way to check if the user gets the previous lesson.
Despite, the user/student may not understand why his answer was wrong/correct.
In this task we'll allow the teacher to add a comment next to the asnwer of a quiz.
SPECIFICATION :
The quiz creator will now be able to comment the answers to inform the frontend user why
his answer is wrong/correct. He will be able to add the comments both in backend and frontend.
Task ID : 2072566
PR : #41188
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
SPECIFICATIONS
Fixes following issue: when a lead is marked as lost, the probability is
correctly set to 0 but not the automatic one. If one clicks on the "Set to
automatic", the probability is updated, which un-archives it without really
restoring it, meaning we get in a very strange state outside the expected flow
(no Won/Lost buttons, ...).
With this commit the automated probability is set to 0 when setting as lost.
Moreover restoring a lead recomputes its probabilities.
LINKS
Task ID 2092799
Manual backport of PR odoo/odoo#42015 done in master
PR odoo/odoo#42045closesodoo/odoo#42057
X-original-commit: 9ac5f42cd0c381bdddfd196721983057bab7028b
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Before this commit, we can't use the Generate and Assign Serial Numbers
on already existing move line. It always creates new one, even if the
picking type use "Pre-fill Detailed Operations".
Now, it will edit existing lines, except if we ask to generate more SN
than we have unassigned move lines, or if the picking don't use the
"Pre-fill Detailed Operations" option, in which cases it will still
create new move line with the generated SN.
Also, before this commit, paste a list of serial numbers to assign them
on multiple move lines in once work only with creation of a new move
line for each serial number.
Now, it's also work with existing move lines.
Finally, some code shared the same logic in `stock.move` in the move
line onchange method and in the `_generate_serial_numbers` method.
Moves this code in a new method, `_generate_serial_move_line_commands`,
and call it in the two previous methods.
task-2150561
closesodoo/odoo#42316
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
glibc's malloc() uses arenas [1] in order to efficiently handle memory
allocation of multi-threaded applications. This allows better memory
allocation handling in case of multiple threads that would be using
malloc() concurrently [2].
Due to the python's GIL, this optimization have no effect on
multithreaded python programs. Unfortunately, a downside of creating one
arena per cpu core is the increase of virtual memory which Odoo is based
upon in order to limit the memory usage for threaded workers.
On 32bit systems the default size of an arena is 512K while on 64bit
systems it's 64M [3], hence a threaded worker will quickly reach it's
default memory soft limit upon concurrent requests. We therefore set the
maximum arenas allowed to 2 unless the MALLOC_ARENA_MAX env variable is
set.
This commit also brings the following changes:
- allow to disable the memory hard limit for all servers if the provided
value is 0 (instead of crashing)
- increase the log level for threaded server in case of limits reached
Note: Setting MALLOC_ARENA_MAX=0 allow to explicitely set the default
glibs's malloc() behaviour.
[1] https://sourceware.org/glibc/wiki/MallocInternals#Arenas_and_Heaps
[2] https://www.gnu.org/software/libc/manual/html_node/The-GNU-Allocator.html
[3] https://sourceware.org/git/?p=glibc.git;a=blob;f=malloc/malloc.c;h=00ce48c;hb=0a8262a#l862closesodoo/odoo#42323
X-original-commit: 85fe2c6e60f7f1f6ea72cb55e85f85d420ce6616
Signed-off-by: Christophe Simonis <chs@odoo.com>
In a80775ce3c, some code was refactored to stop using the confusing
'animation' denomination, as in reality they were just public facing
widgets that did many things, such as loading data based on
data-attributes and other things that were not always animation related.
One instance of the animation_stop_demand event was not renamed in the
_onSnippetWillBeCloned method, which creates some problems, one of which
being that the facebook snippet's iframe wouldn't be destroyed on clone,
but since the animation was started after the clone, this would result
in one facebook page snippet with two iframes with the facebook page,
for a total of 3 instead of 2, and one of these was unconfigurable.
This commit renames the event to restore the proper behavior.
closesodoo/odoo#42311
X-original-commit: 2a671f47f87e2bb52a5fade11ea6b79070516694
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The account.group model has been refactored in
https://github.com/odoo/odoo/commit/a124050511d508f6f1f8a4d4f9dfb2fa1507ad98
Although the filename was correct (.template) and one field was changed
(code_prefix -> code_prefix_start), we don't accept a parent anymore and
we have to provide the chart of account id.
closesodoo/odoo#42302
X-original-commit: 079ebab64e1ea7c17d786c8b4d17bbb707ff856a
Signed-off-by: Josse Colpaert <jco@openerp.com>
Before this commit, the configuration of the facebook page snippet was
done in a modal window. In an effort to streamline and unify snippet
options, the configuration has been moved into the left panel.
task-2146928
closesodoo/odoo#41104
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
New field to express the profitability percentage of a Sales Order (/SO line).
task-2033253
closesodoo/odoo#39926
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
Purpose of the commit is, the template website.404 is renamed
in commit https://github.com/odoo/odoo/commit/423402f1e50000186924186beba0cbe87e02e774
but still remains use of it at some places which is going to produce
the traceback so replace the template website.404 rendering with NotFound
exception as it will use the template http_routing.404
Task-2145659
closes odoo/odoo#42294
Closes: #40924
X-original-commit: e5af7617e02e39b8a37a02b102d3da0e4525ffa9
Related: odoo/enterprise#7394
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
The remaining hours on a task are now displayed unless there are no
planned hours defined.
- Between 0 and 79%: green border
- Between 80 and 100%: yellow border
- Above 100%: red border
closesodoo/odoo#41222
Taskid: 2150121
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Writing for the web interface on the scheduled date of a stock move
will failed as the date is send to the python server as a string. Then,
a duration in datetime format is added. This failed as operation on string
and datetime is forbidden.
This commit cast the string date into a datetime object before applying
date logic.
closesodoo/odoo#42287
X-original-commit: 8f122297f80e06c06a3a5efc6815b9ba627d0ed8
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
purpose of this commit is to reuse availability widget for
rental products so need to refactor the widget
task- 2081260
closes- #41598
Related: odoo/enterprise#7169
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
Issue
- Install Mail template
- Enable debug mode (normal or assets)
- Create or edit a mail template
- Click in the text editor
The toolbar is not showing up (it does when we're not in debug mode)
Cause
We are doing `splice(-1, 0, ['view', ['codeview']])` on toolbar
which is undefined, the method crashes and the toolbar doesn't
render.
Solution
Checking if the toolbar is defined before doing all that logic.
OPW-2151675
X-original-commit: 0e5ca50d5a8401bb3495e83691eab5c86a97a616
Generate a pricelist report for products and its variants. It's base on selected
pricelist and quantities. It also bring new UI.
closesodoo/odoo#35341
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
Co-authored-by: Jigar Patel <jat@openerp.com>
This is usefull for tests invoicing cases.
closesodoo/odoo#42169
X-original-commit: 32b443752dd0fb1ceda3e05da0d878bf908ebf8a
Signed-off-by: Josse Colpaert <jco@openerp.com>