Before this commit: when editable listview has sequence field with handle
widget and user edits row it is displayed with white background, while user
can not change it in edit mode so it should be displayed with grey background
After this commit: sequence field will be displayed with grey background in
editable listview in edit mode.
task-2507971
closesodoo/odoo#73173
X-original-commit: 9f00dcaedb280f403ff7576a31ff7f7e67f49c6c
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
PURPOSE
Improve the management of non-published event subrecords for internal users.
SPECIFICATIONS
In this task we did 3 changes
1) In Community section of any event non-publish room is not available. Here
we add unpublished rooms with tag, just like shop with opacity.
2) Before this commit unpublished exhibitors are mixed with the published ones
with random position. After our merge all unpublished exhibitors are shown at
the end of list and not mixed with published ones. Moreover display of exhibitors
is improved to better find unpublished one.
3) In agenda section only unpublished tags have blurry effect and except that
whole section is same as published ones. We add blurry effect for whole
unpublished agenda. Moreover this we added this blurry effect for main event
section, which looks more systematic..
LINKS
Task ID-2346612
closesodoo/odoo#63816
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
When mouse hover on tour droplet, it shows tip information but when click on
app name(ex- expenses) and hover on tour droplet, it does not shows tip
information, it is because tip is now part of o_content element i.e. controller
element and when we click on app name it re-renders whole action manager and
due to which tip element also removed and later tip element added but new tip
insteance is not created, element of existing tip instance is added to DOM and
due to which event bound on previous element is not bound on new element, to
fix this we need to explicitly bind events on tip.
after this commit: tip shows information even after clicking on app name as we
explicitly bind events when tip is re-rendered.
task-2376278
closesodoo/odoo#73304
X-original-commit: c25c1d644e84cade8766c1f89930b46e88a33087
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
Current bounce message is not very user friendly. Purpose of this commit
is to improve it, by improving wording and overall phrasing used in it.
Form view is improved so that bounce message takes all available width in
form view.
Some tests are added, notably to detect pseudo-void content from editor.
Task ID-2532529
PR odoo/odoo#71793
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
It seems quite easy to have a void content in the currently new editor
that actually holds a lot of undesired information, notably a font
tag. This is annoying when having behavior based on an html field
being empty or not. In this commit we therefore improve definition
of an 'empty' html field.
Task ID-2532529
PR odoo/odoo#71793
This commit changes the warning log for Selection fields that states
that the hook could not go through the ORM for the deletion at uninstall
(because of some business error) and that it had to bypass the ORM (aka
pure sql delete) and turns it into a runbot-level log, meaning that it's
technically a warning but the runbot won't fail because of it.
This is done because for the install/uninstall tests it shows up as an
actual failure but it is not as it is non-blocking, and 99.9% of devs
won't ever see this warning on runbot since it triggers on module
uninstall anyway.
closesodoo/odoo#73332
X-original-commit: c140f545d150da05bd47f2c2dabc28c53cefe912
Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
Before this commit, the events were not synced when the attendee state was modified.
closesodoo/odoo#73297
X-original-commit: faeaee43adb77fd0d4c36b68a548ac3ab35fdadc
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Arnaud Joset <arj-odoo@users.noreply.github.com>
Before this commit, attendee were found based on the email sent by Microsoft.
When multiple partners would match the mail, the first one was selected but we should favour the partner with a user.
The method _mail_find_partner_from_emails has this exact purpose and therefore is used.
X-original-commit: 4f944f89a5785a2569842dc402c484f21b7aa121
Before this commit, attendee were found based on the email sent by Google.
When multiple partners would match the mail, the first one was selected but we should favour the partner with a user.
The method _mail_find_partner_from_emails has this exact purpose and therefore is used.
X-original-commit: afabce8d20d574e07237d16fa01dea463979f705
The definition of the field is
```python
bank_ids = fields.One2many('res.partner.bank', 'company_id', string='Bank Accounts', help='Bank accounts related to this company')
```
So all the banks of all partners registered for one company.
closesodoo/odoo#73329
X-original-commit: 6c2ac88e843fb3b77e78e5fe52bd17b98bf7417e
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: William André (wan) <wan@odoo.com>
Steps to reproduce the bug:
- Install manufacturing app
- Create a product “A”
- Create a Bill of Materials for product A > add any product > save
- Create another Product “B” > Create a BOM and add the product “A” in quantity “0” > save
- Click on “BOM Structure & Cost” for product “B” > open the sublevel BOM dropdown of the product “A”
Problem:
An error is triggered because the quantity of the product is "None"
opw-2585033
closesodoo/odoo#73323
X-original-commit: 06c172746f2d2dc8235c6e607342506bf9ef1551
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
Signed-off-by: Djamel Touati <DjamelTouati@users.noreply.github.com>
- Go to Inventory > Configuration > Settings and activate "Expiration Dates"
- Create a storable product tracked by lot with expiration date (i.e. Component A)
- Update quantity of Component A in a lot with an expired expiration date (i.e. Lot A)
- Create a consumable product (i.e. Component B)
- Create a storable product (i.e. Product X) with a BoM having Component A & B as components
- Create a MO for Product X with a quantity to produce set to 1
- Confirm MO
- Edit MO to set quantity produced to 2
- Set consumed quantity for Component A to Lot A
- Mark MO as done
- Confirm confirmation wizard about using expired Lot A for Component A
The following Validation Error is triggered:
"This lot Lot A is incompatible with this product Component B"
In order to display lot in the confirmation wizard, the ids of the expired
lots are added in the context under key "default_lot_ids".
As we have set a produced quantity higher than the original quantity, some
additional stock moves will be created for final product and it components.
As "default_lot_ids" is still in the context at that point, it will set it
for stock move lines of both components, which will generate the Validation
Error for Component B.
"default_lot_ids" should be removed from context after confirming confirmation
wizard for expired lots.
opw-2543863
closesodoo/odoo#73302
X-original-commit: e70275f0bb7357385990e2fb9997ac495fd7f452
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
Adds a new feature to count overtime when using the attendance app.
Also adds an app that links the attendance and the holidays app to allow users to convert overtime hours to time off time.
Continuation of odoo/odoo#65542
Task ID: 1904850
closesodoo/odoo#69930
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Forward-port of a commit that was wrongly forward-ported with [1], half
of the diff was lost because it landed in master before the merge of
another commit which removes what was being reintroduced here...
[1]: https://github.com/odoo/odoo/commit/e7f497b027d5931b1cf57febcab5deda573b45bbclosesodoo/odoo#73287
X-original-commit: 68d7d42cce012269342e18373a30970e2c582ba3
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This module allows an employee to create leave requests or allocation
requests from their overtime.
Depending on the configuration of the leave type, the request can be
made from:
- "My Profile" for allocation which allows employee requests;
- Time Off dashboard for leave type with no allocations;
- The employee profile for the time off manager.
TaskID: 1904850
[IMP] hr_holidays{,_attendance}: leave allocation multi create
Change leave allocation create function to a multi create one.
Task ID: 1904850
This commit adds a new model `hr.attendance.overtime`.
When an employee checks out, an overtime entry will be created when:
- the option is enabled on the company;
- the employee worked more or less than the number of hours they
were supposed to work that day.
TaskID: 1904850
Unpublished tag not shown if track is not accepted, although track is not
published. Unpublished tracks was also visible for portal user. opacity
was not available on tracks, even track is unpublished.
unpublished tag added into event agenda next to 'not accepted', also
added blurry effect and unpublished tag into agenda which is
shows in details page. used normal text in place of badge for
unpublished track, because that red badge is already used by live
tag. Onwards now, unpublished track will not show to portal user.
TaskID - 2346612
Currently, the usability for unpublished exhibitor is not optimum.
For example, on `/exhibitors` page, we show the exhibitors in random
order where sometimes unpublished ones might come before the published
ones. And on the sidebar of the exhibitors, there's no visual indication
for unpublished record and they do not always appear after the published
ones. Same for the sponsor/exhibitor list that appears at he bottom of
almost all event pages.
This commit does the following improvements:
- For `/exhibitors` page, now first there will be random published
exhibitors, and after that, there will be random unpublished
exhibitors (class used to lower opacity is now removed as it
will be handled by publish management related data attributes).
- Clicking on any of this exhibitors, on the left sidebar, now
we display unpublished exhibitors at the last, with lower
opacity and 'Unpublished' tag.
- The 'Connect' button on exhibitors is now positioned absolutely
so that the opacity does not apply on it for unpublished
exhibitors.
- For the sponsors list appearing at the bottom of almost all
event pages, now the unpublished sponsors will appear at last
with lower opacity and 'Unpublished' tag below them.
- In a special case of sponsor list appearing in `/community`
page, the unpublished sponsors were displayed to all the
users, because the event record was passed with sudo. We
remove this sudo attribute, which seems not necessary.
taskID-2346612
Currently, if the room is unpublished, it`s never shown to users
(even if user is event user / manager).
This commit improves behaviour by displaying unpublished rooms to
specific users (in /community page). Below are the main changes:
- The unpublished rooms are now displayed to event users and
managers, after published ones and with lower opacity.
- The drop-down menu for managing rooms is now absolutely
positioned so that the opacity does not apply on the buttons
for unpublished rooms.
taskID-2346612
Steps to reproduce the bug:
- Let's consider a product P with sale price = 0€
- P is available in the POS
- Set a barcode to P, 2312345000002 (meaning price = 0€ with check digit = 2)
- Open a session in the POS and scan 2312345003003 (meaning price = 3€ with check digit = 3)
Bug:
A line was added with P but its price was 0€ instead of 3€
PS: Function _getAddProductOptions always sets price_extra to 0€
opw:2566502
closesodoo/odoo#73245
X-original-commit: ee567231a16b12031c234400a6a37bb5b7898cec
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
- Enable Margin analysis
- Have a product [TEST] in a category with
- FIFO and Automated Valuation.
- Kit BOM with 3 items (A,B,C)
- Create a SO with [TEST] and confirm.
- Modify the BOM and remove C from the kit.
- Back to the SO, cancel it.
Traceback will show, because there no more a bom_line associated with
the move
opw-2541674
closesodoo/odoo#72696
X-original-commit: 27821b728f409d7e1a69e84d0beb5ac708e6420e
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
Currently, a traceback is generated on removing a groupby when line is in edit
mode in groupable list view. It happens because the facet removal and window
click both are called at the same time.
This commit fixes the issue by ignoring the window click on removing the search
facet.
TaskID-2518527
closes#70236closesodoo/odoo#73102
X-original-commit: da51bd7ef270fe5a481b937f0a3c296d0eea196c
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
Co-authored-by: Mohammed Shekha <msh@odoo.com>
Steps to reproduce the bug:
1. Activate the 2 language “’English’ , ‘Spanish (AR) / Español (AR)’ ”
2. User -> select the language ‘Spanish (AR) / Español (AR)’
3. Create a new product (Test Product).
4. Create a another product using “Duplicate” function.
5. Rename new product name(Test Product -1)
6. Translate the name ( “Spanish (AR) / Español (AR) : 111 Spanish product “ , “English: English Product” )
7. create a purchase agreement -> select product “111 Spanish product ” -> Save -> confirm -> new quotation.
8. Purchase Quotation -> Order line
Bug:
Description shows “Test Item (copia)”
opw:2582778
closesodoo/odoo#72997
X-original-commit: 947484cd9a082003bfd5b3c2e64d6033b863aa84
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Due to EU e-commerce 'One-Stop Shop' which becomes available on 1 July 2021, EU companies involved in distance sales are able to file their taxes using the new OSS process. Adopting OSS is now simplified in Odoo.
On installation of the module, all companies having a fiscal country in the EU will be processed.
For all existing domestic taxes in the company, an associated foreign tax (standard rate, reduced rate, etc) is found in the `EU_TAX_MAP`. This mapping will be created in a fiscal position that is automatically detected based on the customers' country.
All that is required from the user, is to review the tax mappings according to the products and services sold by the company.
A refresh button is also available in the odoo settings to redo/update the fiscal positions. This might be useful after adding a new tax.
Note: The tax mapping herein is not intended to cover all possible tax mappings between EU countries, but rather, the most commonly used ones. It is advised that users with special tax cases update the created Fiscal Positions according to their requirements.
Closes [Task 2579615]
closesodoo/odoo#73042
X-original-commit: 9c548c423614d1305542ebdffdbcd0da3cf09899
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Habib Ayob <h4818@users.noreply.github.com>
- Have a Promotion program [TEST] applied automatically, which apply a
fixed amount discount on order
- Have a Sale Order, apply test via 'promotion' button
- Edit [TEST], add a mandatory code to be used
- Back to SO, add the promotion again via 'coupon' button and insert the
code
Promotion will be applied again in the order
opw-2526950
closesodoo/odoo#72860
X-original-commit: 8ff2a16401d462850b111a551a5058eef441a9b5
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
Currently, activity view does not support many2one_avatar_user widget due to
which clicking on image do not open chat window, with this commit, we add
support of many2one_avatar_user widget in activity_view so that user can click
on avatar image and open chat window.
task-2554466
closesodoo/odoo#71804
Related: odoo/enterprise#18803
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
Go to User list
With studio add column User type
export
Traceback will occur because the special field sel_groups_*
should not be exported
opw-2565911
closesodoo/odoo#72861
X-original-commit: 196fe4c0be19310964b41da3b8a113f6d81aed6e
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
58d3b670221b3 was not correctly forward ported, it misses the `''` fallback part
of the original commit dc20ab9c02
Without this, traceback is shown.
Step to reproduce:
- Open HTML Editor (or edit a backend view)
- Add an input with no class but a value attribute (no type or type text)
closesodoo/odoo#73057
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
The #for attribute of the LABEL tag should match the #id of the INPUT
tag, not it's #name.
This regression was introduced in a171694644closesodoo/odoo#73052
X-original-commit: 979c9d71aee4b1bb6c8798bdfdbf69ac8af3fa69
Signed-off-by: Romain Tartière <romain@vittoriaconseil.com>
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
New features to show suggested links as an autocomplete when creating a menu
was introduced with 9b9829416b.
But it was missing a sudo, so non-admin editor could not read module records.
task-2583737
closesodoo/odoo#73035
X-original-commit: d8206db3da541ba3f0c3e9cb63eab802e3ff096b
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
Before this commit, if a parent menu had child menus and all of those were not
visible (eg linked to an unpublished page), that parent menu would still be
shown.
While it is more a choice than an error, it might makes more sense to not show
it as most of the time, that parent menu has no sense itself, it just served as
a way to group submenus. Its URL can't be clicked (as it opens a dropdown)
despite the fact it is required, and is actually most of the time a random URL
typed by the user as it has no real purpose.
The parent menu is just used as a dropdown entry and shouldn't be displayed if
there is nothing in the dropdown, instead of converting it to a regular menu.
Historically, it was decided to do it that way to fulfill this usecase:
- /dogs
- /german-sheperds
- /beagles
If you were to unpublished your beagles and german sheperds pages, the menu
would auto convert to a regular menu pointing to your dogs page.
This use case now seems less prefered than the behavior to hide that menu.
task-2583737
closesodoo/odoo#73020
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
Domain terms of the form `('field', 'not in', [...])` generate incorrect
queries for translated fields, example (model `res.country`, field `name`):
```
psycopg2.errors.SyntaxError: syntax error at or near "ARRAY"
LINE 1: ...M "res_country" WHERE "res_country"."name" not in ARRAY['No ...
```
The root cause is that the right part of the term is not converted to
tuple.
Observed during the upgrade request 16639
opw-2525553
closesodoo/odoo#73030
X-original-commit: 7c4db97e21f74a429e56f6cae4d4786ee74f7e22
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
A kits bom has a component but qty is 0. When sale this kits, the 0 qty
component won't be delivered, and the delivered qty of the kits will
always be 0.
To fix it, we don't find a stock.move and bypass the quantity check
since the stock.move are not generated when bom line quantities are 0.
Task-2580118
PR #72637closesodoo/odoo#72920
X-original-commit: fad7a15560c1d454be294f1a8d1ce5a57d576900
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
We have a test case 'test_my_activity_flow_employee' that checks user's
own activty for current day. However, the creation of the activities is
done with OdooBot, and 'date_deadline' is not being passed. For this
reason, the default deadline (default value = fields.Date.context_today)
is set based on the tz of OdooBot (which is Europe/Brussels) and so it
might happen that the deadline is set on the next day (when test case
is performed just before mid-night).
In such cases, when we search for today's activites for the employee
(with absolute current date in domain, which is still before midnight),
result can be misleading as we expect one activty for the employee but
none could be found (as deadlines are set for the next day).
This commit fixes the issue by using absolute current for the test case
(whlie setting 'date_dateline' and while searching records) and thus making
it more reliable.
Note: The test case was introduced with commit https://github.com/odoo/odoo/commit/6aa3dc609cb13a469492b1a39a8fd9810040f079
TaskID-2570963
closesodoo/odoo#73034
X-original-commit: 962153a062af3f611e38c0d588febfecd9755810
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
With commit odoo/odoo@83ffe8b we ensured that while creating a child contact, it
takes language from its parent by default if any, otherwise falls back to DB
lang.
The fix was done with help of `default_get` method. However after merge of
odoo/odoo#55995 `default_get` is now called through the onchange for o2m
fields. Now we don't get the default value of `parent_id` here which
re-introduced the bug.
This commit fixes the behavior by setting the language from onchange
while creating the child contact and thus (once again) making the
language from parent contact prevail on DB lang.
We also re-use default_lang coming from parent in form view, which partially
reverts odoo/odoo@83ffe8b .
TaskID-2416922
closesodoo/odoo#72960
X-original-commit: 4d9b85bd07e487e7843dc458332dede36c2889c2
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
before this commit: when user is in readonly form, hovering on color picker
widget show cursor pointer due to which user has impression that it can be
edited while color picker should display default cursor in readonly form.
after this commit: in readonly form color picker widget will display default
cursor while hovering over color.
task-2326198
closesodoo/odoo#73011
X-original-commit: a7663fd5c0bf9f09dbb7fa472b1cb0ef3aa47930
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
RATIONALE
Make it easier for users to both build and see a forecast of their sales.
PURPOSE
Introduce forecasting by notably improving kanban view on crm.leads record.
It should be possible to group by date, add / remove columns dynamically
based on a given granularity (day, month, ...) and move / quick create
records.
Objective is to show the short term forecast for opportunities (crm_lead)
based on their expected closing (date_deadline) and have an overview of the
prorated revenues for each period (defaults to month).
MAIN CONTENT
[IMP] `core`, `web`: add a range for date(time) read_group
Add a way to get the date range of a group for a date(time) field in frontend.
As long as we are using Babel 2.6.0, it is not reliable to reverse-compute the
label to a range with moment.js (and will probably never be, since these are 2
different libraries)
Add a new `<field>` xml attribute `allow_group_range_value` for the kanban view
in order to enable/disable field by field the drag&drop and quickCreate
features.
[IMP] `core`: add a new dictionary format for fill_temporal
Add a dictionary format and optional keys to `fill_temporal` context key
for more flexibility with the `_read_group_fill_temporal` method from `models.py`.
Previously, we could only fill empty groups between groups containing records.
With the new format, it is possible to specify custom bounds or a minimum
amount of groups.
[IMP] `crm`: add a forecast feature (kanban, pivot, graph, list)
`fill_temporal_service.js`
The forecast will display records classified by a date/time field. A special
rule will be applied to show only the closest records (short term forecast)
`forecast_model_extension.js`
A special filter will be applied to show only future records, from the start
of the "groupBy" period containing "today"
[IMP] `crm`: implement the forecast feature for opportunities
Add a new submenu "Forecast" in "Reporting" for CRM. Forecast shows 4 views:
1. Kanban
2. Graph
3. Pivot
4. List
[MOV] `crm`: move server actions from lead views to a dedicated file
Taking advantage of the new action_opportunity_forecast for crm leads to
create a dedicated ir_actions.xml file to store all server/client actions.
[IMP] `web`: add hover description for kanban progressbar sum field
This commit adds a sum field description when hovering the quantity at the end
of a progressbar. The description is the label (translated string
representation) of the field used for the sum.
LINKS
Task ID-2243913
DOC PR odoo/documentation#1049closesodoo/odoo#69380
Related: odoo/enterprise#18547
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
When sending a notification, the company used is:
- company_id of current record or if not available,
- company_id of author or if no author,
- company_id of user
This can seem unexpected if the author is the current user and the
company_id of our user is different than the current company switcher
company.
With this changeset: the company used is:
- company_id of current record or if not available,
- company_id of author if author is different than user or,
- current company in company switcher or if not,
- company_id of user
opw-2472622
closesodoo/odoo#73031
X-original-commit: 3f61d9e2dadf47d211ed078b36e9f3a416bbbff0
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Steps:
- Active Pricelist
- Create SO --> add some lines
- Change Pricelist and remove lines
Issue:
- Button to Update prices is still visible
Fix:
- Button should not be visible as there are no lines
closesodoo/odoo#73038
X-original-commit: aab38f9d52f8629eaea1a3725e4909ac5df1b067
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
When a vendor is (un)archived, we should (un)archive all related products
as well to avoid displaying archived vendors and products in the search
panel of the Order lunch and Products list views.
closesodoo/odoo#73007
X-original-commit: 259d2f36cc73892ef295a6cfdc7e72340bfd9afd
Signed-off-by: Alex Tuyls <alt-odoo@users.noreply.github.com>