Changelog:
[FIX] Core,Underline: fix compilation errors after cascading
[IMP] DomHelpers: transfer dom mutation in VDocument
[IMP] Core: add iterable capacity to modifiers
[IMP] core: add cascading modifier support
[FIX] DomLayout: firefox screenshot feature
[FIX] Underline: always put <u> as deep as possible in the rendered DOM
[FIX] JWEditor: Await the new stop event mutex + adapat some tests
[FIX] EventNormalizer: Clean _triggerEventBatchOutside at destroy()
[IMP] JWEditor: Wait for all mutex to be done before stopping the editor
[FIX] Textarea: use tag name for textarea parser predicate
[IMP] Quote: add quote plugin
[FIX] DomLayout: Make sure falsy attribute values are not transformed into null
[IMP] Heading, Blockquote, Pre: do not preserve modifiers on end split
[FIX] history: change icon to be compatible with Odoo FA version (1.4.7)
[FIX] table: table-picker rendered under some buttons
[FIX] Odoo: add OdooFields css to OdooWebsiteEditor
[FIX] Color: do not color a ZoneNode
[IMP] Table: add component "Table options" button + visible on group
[IMP] Pre: never duplicate a pre on insertParagraphBreak
[IMP] Blockquote: never duplicate a blockquote on insertParagraphBreak
[FIX] List: should not have the list-style none attribute in the vDoc
[FIX] List: toggle list should removes list-style from li element
[FIX] Iframe: IframeNode should be rendered in the layout.
[ADD] Core: handle deleteHardLine
closesodoo/odoo#63006
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Before this commit the visibility of the blog (un)subscribe/(un)follow
buttons was behaving inconsistently because of a combination of specific
CSS based on data values and the adding and removal of d-none classes.
After this commit the visibility of the buttons is using only the CSS
mechanism based on data values. Also adjusted the alignment of the email
text input and its attached button (aligned in both blog & forum).
Fixes https://github.com/odoo/odoo/issues/62714closesodoo/odoo#63001
X-original-commit: 486c445d2200d3805ffac30e84ff35a7a61bf0b7
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
- Install sale_stock_margin
- In a multi-company environment, create a Product (i.e. Product X)
with a different Cost in each Company
- Switch to Company that is not the main one
- Create a SO with Product X
- Make sure Cost (purchase_price) field is diplayed in Order Lines tab
- Confirm SO
After confirmation, the purchase_price of Product X switches from Cost configured
for current Company to Cost configured for the main Company.
opw-2389741
closesodoo/odoo#62997
X-original-commit: 82106350d3a7b82c6c529ae4ff9a2513ae34518e
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
This should avoid situations when customer reported the same issue via two
channels (github and odoo.com/help), which makes two group of people work in
parallel on the same issue
closesodoo/odoo#62996
X-original-commit: 714cb64595fef08a79bd25b11de51293de7203e5
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
5c4544fb29 reordered some of the
operations at the export toplevel, and in doing so moved the filtering
of the xid out of the `fields` list *after* that fields list has been
used to know what fields to export.
Meaning the fields list isn't filtered anymore, and requesting the xid
on a view would blow up due to a latter assertion checking against
that.
Fix the filter, although a better solution might be to strip out the
field upstream (in the fields list provided to the export wizard) such
that users wouldn't even attempt to perform this export.
An other possibility (possibly combined with the previous) could be to
only strip out the export of the xid based on the absence of an
``id`` field on the model, though that's somewhat risky: technically
views have no reason to be stable so a "record" could disappear or
move around without the ORM being aware, leading to dangling xids.
Fixes#46674closesodoo/odoo#62995
X-original-commit: adc25bcf67438675bc9b0d55975ce733d58b4fb5
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Steps to reproduce the bug:
- Let's consider a product P with sale UOM = Unit and unit price = 10€
- Create a SO and add a sale.order.option SOO with P and Dozen as UOM
Bug:
The unit price was 10€ instead of 120€
opw:2413237
closesodoo/odoo#62992
X-original-commit: 880555b38dee0c3e3b364c19bb6b0db983bf8aa0
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Clicking the media button failed to open the media modal. The reason was
that initializing the media modal involved triggering an RPC to fetch
attachments but that resulted in a never-resolving promise because
`trigger_up('call_service')` was never caught. That is because
`website_forum` failed to pass itself as parent of `wysiwyg` when
instantiating the editor, thus breaking the chain that should have led
to `public_root`, which listens to `'call_service'` custom events.
closesodoo/odoo#62991
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
When going on Leaves dashboard, if an employee is archived, his leaves
are still displayed.
To reproduce the error:
1. Add time-off to an employee E
2. Archive E
3. Go back to Time Off module > Everyone
=> The E's leaves are still shown
They should be hidden.
Notes:
Manual forward-port.
In previous versions, the fix concerned the `hr_holidays` module
Replace #62795
Initial PR #62726
OPW-2406702
closesodoo/odoo#62987
X-original-commit: aa4be1c39d246a1a48c40bf7717c23809ca2e7ef
Signed-off-by: adwid <adwid@users.noreply.github.com>
In the change 6ba81c99 there was an issue with timezone with Google
because we were now sending "20201217T123000+0000" instead of
"20201217T123124Z".
When google received formatted date ending in Z it would treat it as
UTC, but with +0000 ending he treats it as a locale time thus get it
wrong if locale timezone is different than UTC.
opw-2370895
closes#62943closesodoo/odoo#62970
X-original-commit: b68ca9fb1d3f8c0a6346fa1d3d6cce28f4977bbd
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Purpose of this task is to improve the reporting of Project module by
various improvements.
So in this commit done the below changes:
- Project Costs & Revenues:
- Pivot view
- apply a group by > month by default
- remove the 'timesheet duration' measure and display the 'margin' mesure by
default instead
- Graph view
- apply a group by > project
- add a group by > task (not applied by default)
- change the labels as follows:
- Untaxed Amount Invoiced -> Amount Invoiced
- Untaxed Amount Re-Invoiced -> Amount Re-Invoiced
- Untaxed Amount to Invoice -> Amount to Invoice
- Untaxed Amount to Re-Invoice -> Amount to Re-invoice
- Customer Ratings:
- list view
- change the order of the fields as follows: 1) Rating 2) Assigned to
3) Customer 4) Task 5) Project 6) Submitted on 7) Comment
- display the rating in bold
- apply the 'last 30 days' filter by default
- apply a group by 'rated user' by default
- switch the default view to the kanban view
- kanban view
- the smiley should be centered vertically
- display the full comment below(crop it after x characters if it is too long)
closesodoo/odoo#62294
Taskid: 2307111
Related: odoo/enterprise#14960
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Before this commit, when the delay_count had two digits, the fixed min-width of the o_row class made the delay_unit stick to the delay_from.
closesodoo/odoo#61628
Taskid: 2378814
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Before this commit, the hr_timesheet reporting graph view always displayed the amount (duration) in hours regardless the Time unit used.
closesodoo/odoo#62576
Taskid: 2391418
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Because there is a trailing comma, the code crashes and the domain becomes a
tuple.
Cherry-pick of 82df14554e0e8
closesodoo/odoo#62409
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Current 404 page template has been improved, by adjusting the alignment
of the elements and making a better use of their previous Bootstrap
syntax, in order to have a more readable template.
Task 2409545
closesodoo/odoo#62894
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
The purpose of this task is to add the link to outlook synchronization
document in the settings next to "Outlook Calendar".
In this commit the link is added next to the Outlook Calendar in settings.
TaskID:2382640
closesodoo/odoo#62797
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
The project overview statbutton will only be shown when there's a proper
Project Overview to display (when there are timesheets, etc.)
closesodoo/odoo#57698
Taskid: 2257764
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Python 3.9 has 10 new bytecode instructions, for now this commit adds 8
* CONTAINS_OP / IS_OP: moved out of COMPARE_OP which is now only used
for *rich* comparisons (bpo-39156)
* JUMP_IF_NOT_EXC_MATCH: also moved out of COMPARE_OP for the sole
purpose of testing exception types
* RERAISE and WITH_EXCEPT_START (bpo-32949) used to simplify the
context manager bytecode, but RERAISE was then used for
try/except/finally, we don't support context managers in safe_eval
so we don't care about the latter
* LIST_TO_TUPLE, LIST_EXTEND, SET_UPDATE, DICT_MERGE and
DICT_UPDATE (bpo-39320) updates to unpacking (* and **) in various
contexts
* LIST_TO_TUPLE we're skipping as it's only used when calling a
function with two `*arg` parameters (aka `foo(*a, *b)`)
* SET_UPDATE is used for set literals of 3 or more items or
unpacking ({*a})
* LIST_EXTEND is used in the same cases as well as function calls
with unpacking
* DICT_MERGE is used for function calls with `**kwargs`
* DICT_UPDATE is used when unpacking in a dict literal (`{**kw}`)
See odoo/odoo#59980closesodoo/odoo#62989
X-original-commit: 3d1c7231a080eebb4f6a7d56cbfa5721bf76befd
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Old naming has been deprecated for a long time, it's been removed
entirely in 3.9 (bpo-37804).
X-original-commit: c4a94bc99285aba085badeb1a41e8fe04562ef50
- Set the Delivery in 2 steps in the warehouse
- Create a 'wave' route:
- Sequence: 5
- Apply on Product Categories
- Rules:
- Action: Pull From
- Operation Type: San Francisco: Pick
- Source Location: WH/Stock/Chairs
- Destination Location: WH/Output
- Supply Method: Take From Stock
- Propagation of Procurement Group: Fixed
- Fixed Procurement Group: Chairs
- Create a 'Chairs' product category, apply the wave route
- Create a 'Chair' product:
- Category: Chairs
- Storable
- Make some stock in WH/Stock/Chairs
- Create a SO for 1 Unit of Chair, confirm
=> a picking from WH/Stock/Chairs to WH/Output is created
- Create a SO for 2 Units of Chair, confirm
=> the 2 units are added to the previous picking
However, the 2 stock moves are not merged.
It happens because `date_deadline` prevents the grouping.
opw-2390630
closesodoo/odoo#62983
X-original-commit: c4505b704489db7ef47dd9a201def536a99d03f3
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
- Before the fix, the banner with the button would show when the move is posted or in creation mode even though no async edi is associated to this move.
closesodoo/odoo#62974
X-original-commit: e18c3f023d10944b2cea9cd23703529b41ba48d3
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Signed-off-by: bfr-o <bfr-o@users.noreply.github.com>
account: the field was present twice in the view
purchase: was not using the right group, same as c9e8ec50ca1c
Fixesodoo/odoo#35073closesodoo/odoo#62910
X-original-commit: c3f0d0387f2cab7e45cd298858038be25e113185
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
In 376891294 the default purchase.order view tree was changed to have
different view with dashboard.
But the current view referenced:
('parent.state', 'not in', ('purchase', 'done'))
which seems incorrect because an x2many view towards purchase.order
could currently only be used for purchase.requisition (doesn't have
purchase/done as state value) and stock.production.lot (doesn't have
state field) or a customization that might not have state field.
With this change, we copy what there was originally on this field.
opw-2381767
closes#62903closesodoo/odoo#62964
X-original-commit: 4628675caf37c1699d8c25fe2ff6ef8b7bbc72a0
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
The creation of a Stock Valuation Layer is useless in case of a
Consumable product. At best it is useless, at worst it causes
inconsistencies when the user switch from a Consumable to a Storable
type.
closesodoo/odoo#62936
X-original-commit: 7e9d052beabe15d932e5d403f8ca2f4837c7d24f
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Changing a product type from Consumable to Storable usually gives
unexpected results once some stock movements have been performed
(negative inventory, wrong valuation...).
While it should remain possible to do it (as long as the user knows what
he is doing), it is worth pointing the fact that unexpected results
are... to be expected.
To do so, we raise a non-blocking warning.
X-original-commit: 383b12977062cacc6ff0f553d7012029268be1ec
Issue:
The `_update_available_quantity` will flush the all environment due to
the savepoint (at each call). When we working with the package,
it becomes bottleneck due to the `_compute_package_info`. Indeed,
it computes two compute store field (`location_id` and `company_id`) and
depends of multiple field of related quants `quants_ids.xxx`. It means
that each time we enter/exit in the savepoint to update quants, this
compute will be execute (because of flush + compute_store).
Solution:
Avoid flushing when enter in the savepoint of
`_update_available_quantity` (`flush=False`)
Performance gain:
To validate a Delivery with 1000 move lines with package (source and
dest):
- Without patch: +- 120 sec
- With patch: +- 17 sec
opw-2371161
closesodoo/odoo#62841
X-original-commit: b2d57323caf9f7fe47c4fe9ac26b0e955d9987b9
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
When a picking contains a lot (> 10000) of stock move line, the time
to open the picking become a issue (for 50000 sml, +- 6.5 sec) because of the
`_compute_has_packages`. Use a search with a limit=1 to avoid fetching
all `stock.move.line` with `result_package_id`
(for 50000 sml, +- 2.5 sec).
opw-2371161
X-original-commit: e78ca55997dfbf13c0798c1f59408450071e1452
When there are a lot of stock move line related to a stock move
(> 50000), the `_compute_lot_ids` become a time issue (for 50000 sml,
+- 3 sec).
Use a read_group to increase the performance (for 50000 sml, +- 1.2 sec)
opw-2371161
X-original-commit: b79364910e94bbb0216d3cb682a3c4550713e134
Before this commit, refresh the forecast report can lead to error if
this report refer to a product variant (`product.product`).
As it lost to which model the report is supposed to refer, it take the
one by default (`product.template`) which can lead to error (display a
traceback if the ID doesn't exist or display the report for another
product if the ID exists).
How to reproduce:
Open the Forecasted Report for a `product.product` (from the stat button
or from the `sale.order.line` widget for example) then refresh the page.
task-2362313
issue #59924closesodoo/odoo#62668
X-original-commit: 5b07432af890794742697641a593fc649630316f
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
`setSelectionRange()` on Safari has side-effect to focusing the
input element, which is not the case in Chrome and Firefox.
Task-2410311
closesodoo/odoo#62886
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
RATIONALE
Events often have sponsors displayed on their front page. This should be
a real standalone feature of Online Event application. However currently it
cannot be used without tracks managements
PURPOSE
Purpose of this task is to allow to use and display sponsors on an Event front
page without using tracks. Moreover online and chat capabilities should be
part of a sponsor feature, located within website_event_exhibitor module.
SPECIFICATIONS
Move everything related to event.sponsor model from website_event_track
to website_event_exhibitor. Functionally feature should be the same as
before except that we should be able to configure and display sponsors
directly with website_event_exhibitor application without using tracks.
Website_event_exhibitor should also define the sponsor template used to
display sponsors below an event.
Merge website_event_track_exhibitor into website_event_exhibitor and remove
dependency on website_event_track. That way all features related to sponsors
are now located within website_event_exhibitor
SPECIFICATIONS: CSS
Purpose of this commit is simply to try to reorganize css currently split across
two files without any real clear difference between those files. We now
have 3 files: a common for all event-related webpages, a file for event list
view (displaying events in frontend) and event page view (display a specific
event details in frontend).
Sponsor specific CSS is moved into website_event_exhibitor so that it contains
its own specific CSS
SPECIFICATIONS: SPONSOR MANAGEMENT
Introduce a new category field containing sponsor, exhibitor or online
exhibitor. Meaning is
* sponsor: display as a sponsor (sponsor cards at the bottom of events).
No publish management is done at sponsor level: a sponsor is always
displayed in the sponsor widget;
* exhibitor: display as a sponsor in sponsor cards. An exhibitor is also
displayed in /exhibitors page and allow publish management. Also allow
to edit description as it is used in front-end page view of exhibitor;
* online exhibitor: same as exhibitor and allow to configure jitsi (online)
capabilities. It also activates display of jitsi in frontend;
An exhibitor would be a sponsor that has a physical stand but no online
support. Online exhibitors hold a jitsi room to chat with online visitors.
Also add field in kanban view.
In frontend rename "Connect" to "More info" when exhibitor has no online
capabilities. That way we don't connect with an exhibitor that has only
a published description.
SPECIFIATIONS: B2B
Clearly separate sponsorship levels (gold, silver) from exhibitor type
(sponsor, exhibitor, online). Propagate this new naming through views and
menus as well as frontend filters.
Reword sponsor form view, notably to have a clean 2 column display. Left
column holds customer related information. Right column holds event and
sponsorship information.
SPECIFICATIONS: FIXES
Apply various fixes
* fix unpublished badge on exhibitor cards;
* fix display of sponsor content when image overflows;
* improve display sidebar flag / description columns in page view;
* show opening hours in exhibitor frontend page;
LINKS
Task ID-2326433
COM PR odoo/odoo#61781
ENT PR odoo/enterprise#14752
UPG PR odoo/upgrade#1931
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This is a minor issue, but determinism is better than non-determinism.
closesodoo/odoo#62904
X-original-commit: 1b0869554d8755f8fdeb73dd2aa2ae7426522e84
Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
In case a user has installed a module where the code becomes unavailable or during migration a module was removed and needs to be removed after migration it is impossible to uninstall the module from a database still holding the fields or the models.
In order to disable prefetch based on information from the database it is needed that the module and models of the unavailable module are initialized with related fields and models.
closesodoo/odoo#62895
X-original-commit: e4a1121e572d07cc720ede8c1b1116d4f1d7ae98
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Purpose
=======
The goal of this commit if double:
- Prevent employees to change the m2o address_home_id, that could lead
to future inconsistencies on future HR processes
- Allow the employee to modify it own private address, even if the
access is restricted to administrators for private addresses
closesodoo/odoo#62891
Taskid: 2412387
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
What are the steps to reproduce your issue?
1. Install "stock"
2. Go to Inventory/Inventory Overview/Internal Transfer
3. Create new record and set manually a date with year < 1000 like "0008-10-10 18:35:00"
4. Save
What is currently happening?
An error arises when saving the record, and it is then no longer
possible to reopen the records or any view containing it.
This also prevents us from correcting the date to no longer have the error
Why is this happening?
The root cause is an inconsistency in `strftime` for years < 1000 [1, 2]. To take it into
account, a zero-padding is needed in the DateTime parser.
How to fix the bug?
The missing padding is added.
However, such dates lead to problematic behaviors in Python:
```
DT_FORMAT = "%Y-%m-%d %H:%M:%S"
new_date = "0008-02-05 18:10:10"
datetime.strptime(
datetime.strptime(
new_date, DT_FORMAT
).strftime(DT_FORMAT),
DT_FORMAT
)
```
This raises:
```
ValueError: time data '8-02-05 18:10:10' does not match format '%Y-%m-%d %H:%M:%S'
```
As of today there was no reported business cases where dates with year < 1000 would be
necessary. Therefore, we limit the range to years >= 1000.
[1] https://bugs.python.org/issue13305
[2] https://docs.python.org/dev/library/datetime.html#strftime-strptime-behavior
opw-2408260
closesodoo/odoo#62889
X-original-commit: b873bda1e560bc49ab707aa238fdc962f23bc1e4
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Achraf <abz-odoo@users.noreply.github.com>
Previously, the check to see if a statement ending balance is the same as the computed balance was only done when moving from draft to posted which is wrong as people can modify the balance of posted statement programmatically which is the case when using online synchronization for example. Now perform that check at each change of state: draft->posted and posted->processed. Also the indication in the view to indicate that the balance was not the same was only displayed in draft, we removed that constraints as user should always see if there is a problem.
closesodoo/odoo#62879
X-original-commit: 69fc9b71e991983b5bcddc948ac4c3749e305a3f
Related: odoo/enterprise#15155
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
Signed-off-by: Florian Gilbert <FlorianGilbert@users.noreply.github.com>
There is now two lists of attachments : first one with images and second
one with non-images. Attachment viewer allows to navigate through
previews of all viewable attachments in the order they're shown.
task-2272587
task-2401325
closesodoo/odoo#62719
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>