Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OLD] HOOT: various imps & fixes part 15 #160291

Closed
wants to merge 31 commits into from

Conversation

Arcasias
Copy link
Contributor

@Arcasias Arcasias commented Apr 3, 2024

woops, wrong branch

d-fence and others added 30 commits March 19, 2024 12:57
As part of our Onboarding revamp, we want the user to be able to just do what he
wants to do when he opens Odoo, and just guide him through it.
In this commit we will work on trying to provide a better UX for the
configuration of document layout.
We want him to be able to setup his base layout quickly, without having to go
through to multiple configuration steps, with an enhanced preview functionality.

This commit will thus modify the base template by adding and modifying
fields to match what we want.

What has been done:
- The different layout are presented by buttons
- adding some placeholder
- increase of the preview size
- increase of the dialog size

For accounting:
- Possibility to check the QR code functionality and add an iban directly
- The preview is directly impacted when checking the qr code

closes odoo#147056

Task: 3646829
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
It can sometimes be useful to get an overview of all your activities at
once (or someone else's activities), regardless of what they target.
This can be especially useful if you use activities as a list of todos
that you may want to go through some time in your day.

To that end, we introduce a new shortcut in the 'Activities' dropdown to
view all activities at once in a list view; clicking on the row will
open the target record's form view (not the activity), and buttons to
quickly mark as done or cancel an activity are readily available. The
view also allows mass edition to e.g. re-assign all activities of
another user that may be unavailable, etc.

Task-3710334

closes odoo#153790

Signed-off-by: Bouvy Damien (dbo) <dbo@odoo.com>
Behavior before the changes:
- When a note was modified, it cancelled the old orderline and recreated
it with the new note.
- Products were not sorted by category in the order preparation display.
- Clicking on the header of an order sent it directly to the next stage,
regardless of whether lines were crossed out or not.
- There were brackets around the order number.

Behavior after changes:
- When a note is modified, it is modified directly on the existing
orderline.
- Products are now sorted by category in the order.
- Clicking on an order header sends only the crossed-out lines to the
next stage. If no line is crossed out, the entire order is sent.
- There are no longer any brackets around the order name.

taskId: 3764317
enterprise PR: odoo/enterprise#57385

closes odoo#157060

X-original-commit: c55ac85
Related: odoo/enterprise#58351
Signed-off-by: Adrien Guilliams (adgu) <adgu@odoo.com>
Signed-off-by: David Monnom (moda) <moda@odoo.com>
The s_picture snippet's image was not using the img-fluid class; which
means that if you removed the default img-thumbnail, the image could
overflow its container, especially if you replaced it with a custom
image.

The user still had the possibility to apply width: 100% to solve the
issue. This commit solves the issues by just adding the img-fluid class
for future s_picture snippets. Existing ones are not worth worrying
about: setting a 100% fixed width is an easy fix and a good practice
anyway.

task-3266862

closes odoo#157813

X-original-commit: 32688e0
Related: odoo/design-themes#787
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: qsm-odoo <qsm@odoo.com>
Since [1], live chat categories are dynamic (one per live chat channel)
and their open state is not saved on the server anymore.

This PR saves this information on the local storage so that the state
can be restored on page reload.

follow-up of task-3640730

[1]: odoo#155741

closes odoo#157826

Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
Purpose
=======

The time off duration is set to 0 when the related contract is set
as expired, then we remove the end date and set the contract back
to running.

That's because the check was done before calling super, hence the
contract is excluded from the candidates because it is still expired
without end date, which would make no sense when trying to retrieve
the related calendar.

closes odoo#157899

Taskid: 3806342
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Steps to reproduce [17.0+]:

- Create a website form of any type in which you have:
    - One "Name" or other text field.
    - One field with the "Date" type.
    - One field "Email" with the visibility condition: "Only visible if"
    a field of type "Date" "Is set".

- When you complete the "Date" field, the "Email" one should show but it
does not > It shows if you also add at least two characters to the text
field.

Starting from [1], an OWL date picker component was introduced mainly to
replace the use of `TempusDominus` and `DateRangePicker` libraries.

After this change, an adaptation (from [2]) was done to completely
replace every usage of `TempusDominus` with the new OWL component
(including the form date[time]picker fields).

One of the lost features from `TempusDominus` was the trigger of an
"input" event on date [time] change, which also triggers the form field
visibility check.

The goal of this commit is to fix this behaviour by simply updating
fields visibility on every component value change.

[1]: odoo@b5794e8
[2]: odoo@910897f

opw-3778129

closes odoo#157935

X-original-commit: 538c806
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Outagant Mehdi (mou) <mou@odoo.com>
-Step to reproduce: any custom model that inherit from mail.thread then
define a field user_id but with type is char and boom error happen at
method '_message_get_suggested_recipients' because it always expect
'user_id' to be a many2one field

closes odoo#157945

-solution: need to check the type of 'user_id' also
X-original-commit: 4aaab35
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Ensure an avatar is generated based on the employee/user name
if no image is provided at the record creation (for internal users only).

closes odoo#158049

Taskid: 3637523
Related: odoo/enterprise#58849
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: Yannick Tivisse <yti@odoo.com>
Before this PR, the fixture was wrongly positionned in debug mode
thus barely visible.

This PR fixes the issue by removing the `transform` style.

closes odoo#158059

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit resets badge's padding to Bootstrap default as it was too
small and creating a cluttered feeling.

task-3749107

Part-of: odoo#154759
*: event, hr_recruitment, profile, slides

In the past, to compensate the undersized padding of badges, some
padding utility classes were arbitrarily applied. Since we fixed the
default padding in previous commit, we don't need these classes anymore
and thus we can remove them.

task-3749107

closes odoo#154759

Related: odoo/enterprise#57704
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Since ee3bf99, `sale_product_configurator` is auto-installed. The
settings to enable or disable it have been removed and the only way to
deactivate the product configurator is to uninstall the module but then
it provides a poor UX (eg. in `website_sale` buy now button on /shop
page adds the first available combination to the cart instead of opening
the configurator).

Therefore, we have decided to merge modules to improve the readability
and reduce the complexity of our codebase.

task-3763473

closes odoo#155449

Related: odoo/upgrade#5750
Related: odoo/enterprise#57577
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Steps to reproduce:
-------------------
- go to time-off analysis (by type);
- group by "Requet Type" and use list view;
- click on an allocation;

Issue:
------
We don't have the record for this allocation.

Cause:
------
Commit [^1] removes the `allocation_id` field, so it is no
longer possible to retrieve a record from the
`hr.leave.allocation` model.

Solution:
---------
Redirect on the correct record using `leave_id`
and `leave_model`.

opw-3748884

[^1]: a1949ca

closes odoo#157313

X-original-commit: 55c77ae
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
Steps to reproduce:
- Enable 2 step reciept in warehaouse settings

Bug1:
- Create and confirm a PO qty = 1
- Open reciept update qty to 4 and validate
- The internal transfer qty is updated to 3 (the difference)

Bug2:
- In inventory overview create a new reciept and mark it as todo
- Update quantity and validate
- Internal transfer is not updated

Root cause:
Initially in version 17 product_uom_qty was changed to indicate the demand
before the move is done and it indicates the acutual done qty when
the move is done.
After odoo#130342
product_uom_qty will always indicate the demand qty,
and qty_done will always indicate actually done quantity.

Fix:
updating the quantity will create a new move for the difference that is
used to trigger new push rule and then merged back in the original
when merging product_uom_qty is not updated to keep track of the intial
demand but pending linked moves should be updated to reflect the new quantity

opw-3708740

closes odoo#158227

X-original-commit: 3d5d5cc
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Since 9aa52dd, down payments
are created without any product (and dp product settings have been
removed).

Nevertheless, the SOlines views were not adapted and the product
was still required in the view, even if the line was a down payment.

This commit makes sure that a down payment line without a product
is considered valid client-side.

opw-3798379

closes odoo#158237

X-original-commit: 24b700e
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
Steps to reproduce
===================
- Launch a survey in a live session.
- Start the survey.
- Click on the link to join.
- The link didn't copy to the clipboard.

Technical
===========
Here the target element is the input tag so 'textcontent' will not work for that
moved the 'o_survey_session_copy_url' class in span tag.This commit has resulted
in a breakdown of the feature odoo@b62eff7

After this commit
==================
The link will be copied to the clipboard.

Task-3792666

closes odoo#158241

X-original-commit: 5b1c719
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
With this commit, the domain of work location domain is reintroduced.
It was a mistake introduced by this PR : odoo#129308

closes odoo#158242

X-original-commit: 94de344
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit lowers the default `waitUntil` helper (and all its variants)
from 1000ms to 200ms.

The motivation is that 200 milliseconds should already be plenty enough
for most cases, and edge cases needing more time can still use the
`timeout` option.
This commit fixes 2 issues when interacting with tests in debug mode
after the test is done:

- manual user interaction warnings were still triggered if the test was
set in debug with a `test.debug` modifier in the code;

- calling `expect.step` would also trigger errors, while these errors
were only meant to prevent calling that function outside of a test
source code.
This commit fixes several timing issues in HOOT:

- the `mockRequestAnimationFrame` did not pass the time delta argument
to the original function when it was executed without `advanceTime`,
resulting in code relying on time delta to  fail;

- the updates in `waitUntil` were not frequent enough and the predicate
could be valid much sooner than when it was actually evaluated. Now,
the predicate is checked on each animation frame, ensuring that the
promise is resolved as soon as possible;

- `runAllTimers` would wait for the async result of timers callbacks,
which does not make sense since the API of setTimeout/setInterval/RAF
is synchronous by nature. Instead, the helper waits for a full animation
frame after having called (synchronously) each of the current timers;

- an `àdvanceFrame` helper has been introduced to advance the time by
a given amount of animation frames (precisely set on the same variable
used to calculate frame duration).
This commit extracts as many native objects and functions from the
global scope as possible to prevent even further pollution of global
objects from tests.

It also changes a few calls to the global console objects by the HOOT
`logger` to also ensure they are not affected by tests.
This commit changes the `confirm` option passed to all helpers
responsible of changing an element's value in HOOT, from a simple
boolean to either:

- "blur": will click on the body;

- "enter": will press "Enter" on the current element;

- "tab": will press "Tab" on the current element;

- false: no confirm action.

This allows to give more control over what confirm action must be
performed after changing the value of an element.
This commit speeds up the algorithm responsible for computing job-level
getters.
This commit ensures the use of the mosts appropriate test helpers in a
few test suites.

It also removes `toBeTruthy` and `toSatisfy` matchers which are
considered too weak and vague compared to other matchers.
Before this commit, event listeners removed from global DOM objects
would not account for the `options` object passed when adding the
listener.

This meant that event listeners were improperly removed and would leak
on other tests.

This commit ensures that the option object is passed when removing the
event listener.
This commit adds a condition around the "clearing" part of the `edit`
helper: it will now only clear the value if there is one already.

This is needed because some behaviours relied on "Backspace" being
pressed on empty inputs (namely: the search bar) and this was not the
intention behind `edit`: which is to replace the value with the new one.

The `editSearch` helper has been also adapted to make use of `edit` now
that it is safe to use.
This commit does 2 things to the mock server state:

- it changes the `companyId` and `companyName` to a list of company
objects, effectively declaring what companies will be accessible by the
client;

- it adds a `userContext` object that will enrich the `user_context`
exported by the session (and exported as `user.context` by `user.js`)
that can be used to simulate server-side user context information sent
to the client.
This commit ensures that Luxon settings are properly restored to their
defaults between each test. This prevents a test mocking a default value
altering the next one.
This commit removes the automatic conversion for MacOS events as they
should be handled by Odoo.

This is because Odoo handles hotkeys differently in MacOS and Windows
and this concern should be moved elsewhere than the low-level helpers.
@robodoo
Copy link
Contributor

robodoo commented Apr 3, 2024

@Arcasias Arcasias closed this Apr 3, 2024
@Arcasias Arcasias changed the title HOOT: various imps & fixes part 15 [OLD] HOOT: various imps & fixes part 15 Apr 3, 2024
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.

None yet