Commit Graph
141731 Commits
Author SHA1 Message Date
Odoo's Mergebot 2133b807a8 [MERGE] sale_timesheet: employee rate for fsm projects
Purpose
======

Currently, the user can configure his field service project to be billed at an employee rate but it just won't work. The rates configured for each employee on the project are not taken into account when the task is marked as done. As a consequence, the only workaround to support this kind of use-case is to create 1 task per employee with a different rate (or to add service products on the task). Those solutions are far from being ideal. We should give more flexibility.

## Details

To reach the goal, some updates are made:
 - Move the timesheet_product field in employee mappings into the fsm sale module, because this field is only used for fsm projects,
 - render _timesheet_determine_sale_line no static to easily override it,
 - fix bug when the user change project on task form view, the project for non billed timesheets is not correctly changed,
 - let the SOL in task when the user wants to change the project of it to a project with pricing type defined as employee rate. Before when the pricing type of the destination project is employee rate, we remove the SOL of the task.

task-2376382

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

closes odoo/odoo#66157

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-03-25 19:34:16 +01:00
bat-odoo feca3ad527 [IMP] base: update l10n icons
Purpose of the task is to update all l10n modules icon with new icon that i have
found in task attachment.

So in this commit, Updated all l10n modules icon with new icon.

closes odoo/odoo#65329

Taskid: 2442631
Related: odoo/enterprise#16054
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-03-25 15:01:43 +00:00
nounoubensebia 417622d655 [IMP] [website_]event[_questions|_sale] datetimes sales start/end
changed the start/end date fields to datetime fields, in order to allow more
flexibility for the user and enable them to set a precise point in time at
which ticket sales should start/end, because otherwise ticket sales/end would
always be set at midnight which is not very flexible.

Task-2431440

closes odoo/odoo#65133

Related: odoo/upgrade#2126
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-03-25 14:58:20 +00:00
Urvi Soni e109e476e6 [IMP] various: reorganize the general setting
Purpose of the task is, 'general setting' is not easily understandable
by the user. The user often gets lost. This is especially damaging
through onboarding as some new users like to discover the software by
scrolling through the general settings.

So in this commit, the general setting is well organized and easily
understandable by the user.

Related PR: https://github.com/odoo/enterprise/pull/14707

closes odoo/odoo#61645

Taskid: 2374990
Related: odoo/enterprise#14707
Related: odoo/upgrade#1958
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-03-25 15:48:10 +00:00
Yannick Tivisse 8444643cc6 [FIX] hr_contract: Allow manager to modify current employee contract
closes odoo/odoo#68259

X-original-commit: c60672e123e996a82a706a8aed5456ddd2288578
Related: odoo/enterprise#17259
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-03-25 10:24:19 +00:00
Xavier BOL (xbo) 25cbc6a7e3 [IMP] sale_timesheet: edit bottom the employee mapping
Before this commit, when the user adds a line in the employee mappings
from the project form view, the new line appears at the top of the list.

This commit changes to display this new line at the bottom of the list.

task-2376382

closes #66157
2021-03-17 14:57:33 +01:00
Xavier BOL (xbo) ffae2fd626 [IMP] sale_timesheet: display price_unit in SOL name_get
Before this commit, when many sales order items have a same product with
a different price_unit, the user cannot know which one of these sales
order items has the product with the expensive price with just the
name_get of the SOL in task form view.

This commit adds the price_unit in the name_get of the sale order items
only for the sales order items in a same sales order have the same
product.

task-2376382

closes #66157
2021-03-17 14:57:33 +01:00
Xavier BOL (xbo) 1b60102b20 [IMP] sale_timesheet: rename label of timesheet_product_id in project
Before this commit, the label for timesheet_product_id field in the
project form view was "Service". Now with this commit, this label is
equal to "Default Service".

task-2376382

closes #66157
2021-03-17 14:57:33 +01:00
Xavier BOL (xbo) ab9eea0759 [IMP] sale_timesheet: let the SOL when project changed to employee rate
Before this commit, when the user changes the project on the task to
choose a project with the pricing type to employee rate, then the SOL on
this task is removed.

This commit removes this behaviour to let the SOL of the task.

task-2376382

closes odoo/odoo#66157
2021-03-17 14:57:33 +01:00
Xavier BOL (xbo) 00ce1211f9 [FIX] sale_timesheet: change project for non billed timesheets
Before this commit, when the user changes the project_id of a task, all
timesheets from this task have not the new project, because only the
timesheets not invoiced and the ones with no SOL or with the same SOL
than the task are updated.
The problem is the not invoiced timesheets with another SOL than the one
in the task keep the old project.

This commit changes the condition to change the project for the
timesheets are not invoiced.

task-2376382

closes odoo/odoo#66157
2021-03-17 14:57:33 +01:00
Xavier BOL (xbo) 14e36685c1 [IMP] sale_timesheet: render _timesheet_determine_sale_line no static
Before this commit, this method is static to the model. But in fact, we
always use the project, employee and the task from the current
timesheet. So it can be better to directly have this information in the
self.

This commit changes this method to have no params into it and only use
the self to retrieve the useful data.

task-2376382

closes odoo/odoo#66157
2021-03-17 14:57:33 +01:00
Xavier BOL (xbo) 5236dff955 [MOV] sale_timesheet: move the timesheet_product_id field in mappings
Before this commit, the timesheet_product_id field in
project.sale.line.employee.map model is defined but never used.

This commit moves the definition of this field in the industry_fsm_sale
module to use this field in that module.

task-2376382

closes odoo/odoo#66157
2021-03-17 14:57:33 +01:00
oco-odoo 167655e2ce [FIX] account: make tax report duplication work properly
Before this, due to the order the lines were interated on (their sequence), some lines were duplicated without parent, making the duplicate report's layout different from its parent. We now ensure we treat the lines in an order that guarantees the parent line has always been copied before its children.

closes odoo/odoo#68011

X-original-commit: c815342b986851e0a4733ed5bf9fbcc7f8fb7442
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2021-03-17 11:59:42 +00:00
root 9404c2815e [IMP] sale: set id on invoice block for easier xpath
Before this commit it was rather painful/cluncky to find a way to remove this block.
By setting a name on the block we can easily xpath it to replace it or add extra content within.
This makes it easier for external devs to influence this view.

closes odoo/odoo#68010

X-original-commit: d418e4e16a46a0d499e606598b3524eabd19e5fd
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2021-03-17 11:57:32 +00:00
Laurent Smet fbe1cca0d6 [FIX] account: Set 'move_id.ref' as payment memo with vendor bill
The current behavior was to set the label as memo in the payment register wizard.
However, this is to restrictive when a vendor bill hasn't any payment reference but a bill reference.
In that case, the user is expecting to have the bill 'ref' in the payment 'memo'.

Since the matching rules in the reconciliation widget are matching line.name, then line.move_id.ref and then line.move_id.name, the same logic is applied here to construct the payment 'memo'.

closes odoo/odoo#68004

Opw: 2440389
X-original-commit: 92ceb86d58f4d78c8a4256f29d101d3730517b93
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2021-03-17 11:08:05 +00:00
Julien Castiaux e5cf8cc8b7 [REF] Lunch: Use dynamic daily crons for auto emails
The Lunch module can automatically send an email to a supplier with the
daily orders at a configured time. It can also remind the users via chat
so they don't forget to order their sanddwish.

Before, two high frequency cron jobs were responsible to check every 20
and 5 minutes if we reached the moment when to send the email to the
suppliers or the notification to the users. Together the two crons were
executed 360 times a day.

The new model uses a dedicated daily cron per supplier record and per
alert record, the dedicated cron is created on the fly and its moment of
execution automatically updated to reflect the supplier/alert record.

See also #41858 for prior work.

closes odoo/odoo#63749

Task: 2416741
Related: odoo/upgrade#2044
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
2021-03-17 02:10:41 +00:00
oco-odoo 758f09890a [FIX] account: forbid making refunds on incompatible journals
It shouldn't be possible to create refunds on misc journals, as the tax report would compute the wrong multiplicator sign, and hence end up being entirely wrong.

Introducing the constraint also allowed finding an issue within _move_autocomplete_invoice_lines_create: some tests directly create an invoice by giving it line_ids instead of using the invoice_line_ids helper. The former implementation of this function made it so that the default type wasn't set in the context properly, and these tests were putting their invoices on misc journals. We fix this here as well.

closes odoo/odoo#67965

X-original-commit: fdc96de0e411760f84a78c36543f9157332346de
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2021-03-16 14:23:32 +00:00
Nasreddin (bon) 9857b96b97 [FIX] website_blog: display post_date on latests blogs
Issue

	- Install 'Blogs' module
	- Create a blog post
	- Set published_date to 01/01/1997
	- Go to website
	- Edit any page and add a 'Blog Posts' Block
	- Set 'Layout' to 'Cards' (or 'Horizontal')
	- Save

	In snippet cards, the blog post date is not the published date.

Cause

	Displaying update date ('write_date' field) instead of
	the published date ('post_date' field).

Solution

	Replace 'write_date' by 'post_date'.

opw-2443104

closes odoo/odoo#67985

X-original-commit: 681e709b239c2456c71d1c16bb40de055dfb927c
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2021-03-16 16:54:39 +00:00
Mathias Markl 6ca12a2545 [IMP] base: performance improvement when installing a module
closes odoo/odoo#67316

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2021-03-16 11:50:29 +00:00
Victor Feyens 4b2c6ff064 [REM] l10n_fr: duplicate method (_prepare_all_journals)
defined first 4y ago in https://github.com/odoo/odoo/commit/d56baebc8e7f654304eca59b3c58ceb80846c659
then 2y ago in https://github.com/odoo/odoo/commit/182b4d86f443eefcc647fb44f0b1f5fe406637d4

Merge the two methods, keeping the one in the dedicated account_chart_template file,
but improving it with the early check on the company country code.

Fixes #67728

closes odoo/odoo#67882

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2021-03-15 15:46:27 +00:00
Xavier Morel 4ef97f2125 [FIX] base_automation: mis-ordered computation of stored fields
Client issue: when updating the company of a contact, the Display Name
keeps using the previous company's name, so given Bob in company A, if
Bob is moved to company B the form's title remains "A, Bob" instead of
becoming "B, Bob". More annoying, if Bob is moved back to A the name
becomes "B, Bob".

On res.partner, `display_name` is a stored computed field which
depends on `commercial_company_name` (via `name_get` -> `_get_name` ->
`_get_contact_name`). This is an other stored computed name, which
depends on `commercial_partner_id`, which is yet another stored
computed name, which depends on the `parent_id`.

The dependencies are meh but usually resolve fine, the issue occurs
when a base.automation rule is created with a non-empty
domain (including an empty literal list, which was the case here):
when the first field of the sequence is computed, base.automation's
`_compute_field_value` is called. This calls `_filter_pre`,
which (because `filter_pre_domain` is non-empty) calls `search` on the
model.

This would normally be innocuous as `search` will only flush the
fields used in the search, however for `res.partner` the default
`_order` is... `display_name`. Meaning we flush that computation,
forcing the computation of `commercial_company_name`, but since
`commercial_partner_id` is being computed we reuse its old value (or
something), which is not re-recomputed after the
`commercial_partner_id` computation ends.

So rather than resolve a full search involving an order, filter the
records in-place.

OPW-2427264

closes odoo/odoo#67987

X-original-commit: 221ea6079b2beeb66c4cfa48b237791e1b380c5e
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2021-03-16 16:55:20 +00:00
qsm-odoo e5a701de42 [FIX] web: properly find the scrolling element of zoomed pages
To find the main element which scrolls in the page, we rely on its
height being as tall as the body one. The code which checks that was
making a comparison between a rounded value and floating value without
care of the rounding errors that might induce, especially on zoomed
pages.

Fixes https://github.com/odoo/odoo/issues/63306

closes odoo/odoo#67986

X-original-commit: 71b6fc7341dfec5e8fc2352c3143b1e324a880f8
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2021-03-16 16:54:58 +00:00
Julien Mougenot 9bf7d15da4 [FIX] web: allow filtering with decimals on price filter + unit test
Issue

	- Install "Sales"
	- Switch to "German" language
	- Go to Sales -> Products -> Products
	- Try to filter on "Public Price" is equal to "2,3"

	Not possible to add decimal point at the end (only in middle of number).

Cause

	In case the 'decimal point' in DB params is not a dot '.',
	the filter input will be considered as 'text' instead of
	'number'.

	In case of the 'number' type; HTML do already a pre and post
	processing, including managing decimal point (who, for example,
	is not included in ev.target.value if last char is a '.').
	Unfortunalty, the library is not well working with other
	language and not supported on every browser, therefore,
	must use own logic.

	In case of a 'text' type, the value will be send to 'parseFloat'
	,then `parseNumber` will replace decimal_point by dot (also one the
	issues since needed to display decimal_point according user language),
	and `Number` will remove the decimal_point in case of '123,' -> '123',
	and therefore we will not be able to write decimals ( apart of adding
	the decimal point after writing the whole number...)

Solution

	If user input is well parsed, store parsed value in condition.value and
	set condition.displayedValue to the input value (an so without updating
	input value). Else, replace input value with previous value (who should
	be the condition.DisplayedValue).

opw-2463441

closes odoo/odoo#67978

X-original-commit: e795ce5bff14b6b748c1f4a2651946aafdc299f4
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
2021-03-16 16:02:07 +00:00
Adrien Widart 387e9a402a [FIX] purchase,purchase_product_matrix: ignore date planned
When adding a variant product, if the option "Variant Grid Entry" is
enabled, it will reset the delivery date of each purchase order line.

To reproduce the error:
(Use demo data)
1. In Settings, enable "Variant Grid Entry"
2. Create an RfQ
3. Add the field "Delivery Date" to purchase order line view
4. Add a basic product (e.g. "[FURN_6666] Acoustic Bloc Screens")
    - Keep its delivery date in mind
5. Add a variant product (e.g. "[E-COM12] Conference Chair (CONFIG)")

Error: The delivery date of the first purchase order line has changed
for no reason. Moreover, suppose that in step 4, the user defines a
specific date: the latter will still be changed after the variant
product is added.

When adding a product, the delivery date of the purchase order and its
lines are recomputed. However, an override of `onchange` ensures that
the new delivery date of the lines will be ignored if the `onchange`
concerns the field `order_line`. Here is the problem: when using the
Variant Grid Entry, the `onchange` concerns the field `grid`. As a
result, the new delivery dates are kept. This explains the creation of
`_must_delete_date_planned` in this fix.

However, when returing the result of an `onchange` linked to `grid`, the
result contains the existing lines (on client side) and the new ones
(from the Variant Grid Entry). If the field `date_planned` of the new
lines is deleted, the client will raise an error when it tries to render
these dates (it has no information about their value). Since existing
lines are of the form `(0, <client_id>, <values>)`, this fix only
deletes `date_planned` field for lines with <client_id> defined.

OPW-2454164

closes odoo/odoo#67972

X-original-commit: d2d495bca3e91862470702f1ef07aa27c33d8e2d
Signed-off-by: Adrien Widart <adwid@users.noreply.github.com>
2021-03-16 15:12:08 +00:00
oco-odoo 56f8c1c048 [FIX] base: tools: float_split_str: avoid traceback when rounding to 0 places and add some test cases
closes odoo/odoo#67970

X-original-commit: 42d409f180381316c97abd0c0ef5a062656e6122
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2021-03-16 15:09:51 +00:00
wan 06746c28c5 [FIX] account: sequence in the past after more precise sequence
Allow creating a journal entry in the past after having changed the
sequence number reset on newer sequences.

opw-2445559

closes odoo/odoo#67963

X-original-commit: 26a43f23ec2b2490aec0731e25568703729581f0
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2021-03-16 14:18:43 +00:00
Yannick Tivisse 339b9706a2 [IMP] hr_contract: Use running contract on contract history resume
Use the running contract instead of a draft contract in the future

closes odoo/odoo#67685

Related: odoo/enterprise#17004
Related: odoo/upgrade#2265
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-03-16 10:34:55 +00:00
Yannick Tivisse d0c4bde220 [IMP] hr: Add name on div to allow inheritence 2021-03-16 10:34:55 +00:00
Xavier Morel f1da6d100a [REM] website: long-unused views
Usages of the kanban and kanban_contains templates were removed back
in 2015 (4feb82dd49).

closes odoo/odoo#67634

Related: odoo/upgrade#2264
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2021-03-11 07:06:25 +00:00
Xavier Morel 2685d76bba [FIX] digest: visibility of digest config section
odoo/odoo#48362 updated the systems to not show the "Statistics"
section when it's empty, but left an @invisible, leading to not
showing the section at all, ever (which technically does avoid showing
an empty section).

Remove the `invisible` attribute, since the section is now added by
`digest` it should never be hidden. This doesn't fix existing views
tho.

closes odoo/odoo#67964

X-original-commit: 09d8b027e39d1d2eb15abb8d9fe564292fa96d32
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2021-03-16 14:22:08 +00:00
Mathias Markl f6d8275533 [IMP] base: performance improvement when installing a module
closes odoo/odoo#67959

X-original-commit: c0afa00d7cdbe98e4c67d2987a2b808bedd474ac
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2021-03-16 14:00:32 +00:00
Adrien Widart e9739b6580 [FIX] google_calendar: compare with normalized address
When syncing Odoo with Google Calendar, if one Odoo event has an
attendee with an email address that contains some uppercases, it will
lead to undesirable behavior.

To reproduce the error:
(Need contacts)
1. Create an event
    - In attendees, adds a new partner PA
        - The email must be valid and the local-part must contain at
least one uppercase (e.g. demoUP@example.com)
2. Sync with Google
3. On Google Calendar, update the event (e.g., add a description)
4. Refresh Odoo Calendar

Error: The event is updated, but the attendee has been removed.

The error comes from both Google and Odoo.

Google Calendar is not case sensitive: if a user creates a meeting on
Google Calendar and adds an email address with uppercases, the latter
will be converted with lowercases. (On step 3, on Google Calendar, we
can notice that PA's email address does not contain any uppercase)

On Odoo side, when syncing the event, the module checks the attendees.
To do so, it uses email addresses from Odoo (with uppercases) and Google
(without uppercases):
https://github.com/odoo/odoo/blob/12cb76bdfe7a5affb7580485473be71cfa37658a/addons/google_calendar/models/calendar.py#L105-L114
`email` comes from Google and `attendees_by_emails` from Odoo.
Therefore, it will consider the email as a new attendee and will run
`find_or_create` to get the associated partner. However, this method
uses the normalized email address to find the partner:
https://github.com/odoo/odoo/blob/12cb76bdfe7a5affb7580485473be71cfa37658a/addons/mail/models/res_partner.py#L50-L63
Thus, `find_or_create` returns PA and adds the latter to the attendees
and partners (even if PA already exists in partners and attendees).
After that, the module checks if some attendees must be removed:
https://github.com/odoo/odoo/blob/12cb76bdfe7a5affb7580485473be71cfa37658a/addons/google_calendar/models/calendar.py#L115-L120
Again, `odoo_attendee` comes from Odoo and `email` comes from Google.
Therefore, it will remove PA from attendees and partners.
This explains why:
- PA has disappeared
- No partner has been created for the email address without uppercase

This fix suggests to normalize the Odoo email addresses each they are
compared with the Google ones.

OPW-2464863

closes odoo/odoo#67950

X-original-commit: 01648d37b9d5ad858d3b60dacfb724a18045f007
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Adrien Widart <adwid@users.noreply.github.com>
2021-03-16 13:24:10 +00:00
Ivan Yelizariev 3ccea22116 [FIX] link_tracker: prevent downloading big or non-html files
link tracker tries to get title from HTML, but the url may be not an html page
or too big html to process. It's a waste of bandwidth, but may also lead to a
Server Memory Limit error.

As a solution, make HEAD request and don't proceed to GET request if it's not an
html page or it's too big. Also, limit page downloading to 50KB.

STEPS:

- Have a standard database with link_tracker and mass_mailing.
- Create a new mass mail MM
- Add a link to a large file in MM Mail Body
- Click "SEND"
- Go to Settings / Technical / Automation / Scheduled Actions
- Open the "Process Mass Mailing Queue" or "Email Marketing: Process queue"
- Click "RUN MANUALLY"

---

opw-2457640

closes odoo/odoo#67948

X-original-commit: bdec63cf97e6904604e9f1e0bf3b6f453b6add60
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>
2021-03-16 13:21:14 +00:00
Katherine Zaoral cbc898b0e7 [FIX] l10n_ar: Enable AFIP document types
Enable Notas de Venta Documents, prepare prefix and set type so they can
be used.

Also update csv escape characters for COMPROBANTES COMPRA/CONSIGNACION in
order to proper display the csv en editors and githib.

closes odoo/odoo#67934

X-original-commit: fb62b5e3d99880bce97e1bba0a92dfd5757dab91
Signed-off-by: Josse Colpaert <jco@openerp.com>
2021-03-16 12:55:18 +00:00
Rémy Voet (ryv) 7b7b67bb4f [FIX] stock: fix replenishement with archived RR
If some RR is archived and where the a forecasted demand on the
warehouse location, it Replenishement will crash will due to the
SQL constraint. It happens because the archived RR aren't take in
account in `_get_orderpoint_action` and the method will try to
create a orderpoint with same product + location which
lead to trigger the SQL constraint `product_location_check`.

Also avoid filtered in for loop to improve performance and use the
read_group instead.

task-2439019

closes odoo/odoo#67936

X-original-commit: 6737feef848dc47120cf3d2cca84e033e869c985
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
2021-03-16 12:09:01 +00:00
Rémy Voet (ryv) c294f5236a [FIX] stock: fix _get_matching_bom
The`picking_type_id` of the stock.rule wasn't take in account in
the search of BoM because the `_get_matching_bom` with a empty `self`.
fix it by call on the current rule.

X-original-commit: d43e9cb9ad8d1c0c020209de0e8f6ffdcbc960a1
2021-03-16 12:09:00 +00:00
Oussama MESSAOUDI afce9559ac [FIX] website_forum, *: refit the forum biography popover
*: web

task-2276974

closes odoo/odoo#67902

X-original-commit: 1207b99b73f5906209499cb2935b750faecd756d
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2021-03-15 19:20:48 +00:00
Benjamin Vray 86a1b78f99 [FIX] website, website_sale: fix right corner ribbon
Before this commit, when ribbon was at the right corner of a product
card, this ribbon hid the buttons in list view.

After this commit, in list view, we place the ribbon on the left to
avoid this bug. There was no better solution to fix this in stable.

task-2466120

closes odoo/odoo#67898

X-original-commit: dcddf2125652b03bf4bff385c074fef0b2096f1d
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2021-03-15 18:19:44 +00:00
Noe Antoine 374134a04c [IMP] crm: inline email and phone sync warnings on crm lead
Reduce eye catchiness of warning message when warning the user that
his changes on email and phone will also update customer.

Before, used a ribbon (ribbon_message). It is removed from crm lead model
and also of crm lead form view.

Now, only displays an orange alert sign at the end of the fields when a change
would update the customer profile. Hovering on the alert sign displays
the appropriate message. The warning icon is added on crm lead view for
both lead and opportunity types.

Python compute method of ribbon field is split in two compute methods,
one per boolean field partner_email/phone_update.

Also updates ribbon_message tests accordingly.

TaskId 2456105
COM PR odoo/odoo#66909
UPG PR odoo/upgrade#2258

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-03-15 16:16:59 +00:00
qmo-odoo fb53eb10cb [IMP] utm*: Rename is_website field
This commit renames the field is_website into is_auto_campaign
for clarity purpose.

The is_website field always meant that the campaigns were created automatically
in some instances. Could be created automatically via a link to the website
or even by simply creating a marketing campaign in marketing_automation.

is_auto_campaign is a better name as it does not wrongly imply that only
the website can generate campaigns automatically, while also pointing
out the automatic generation mechanism.

The utm campaigns behaviour rests unchanged.

LINKS:
TaskID: 2414694
PR: #65824
Enterprise PR: #16238

Related: odoo/upgrade#2146
Related: odoo/enterprise#16238
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-03-15 16:11:26 +00:00
xO-Tx 0d488242f8 [ADD] website_sale_blog: add related products/blog posts carousel
The goal of this commit is to add m2m between product and blog posts
to display a list of product promoted by one blog.

And in the future the list of blog that speak about a product on
ecommerce.

task-2267830

Co-authored by jke@openerp.com

closes odoo/odoo#67920

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2021-03-16 09:35:54 +00:00
Michael Mattiello (mcm) d94a1afe69 [FIX] web: quick edit when add a line on m2m
Before this commit, clicking on the "add a line" button on a
many2many list field directly opened the dialog without
switching the form into edit mode.
This is incorrect, the form needs to switch into edit mode otherwise
the selected records are saved and cannot be discarded.

closes odoo/odoo#67919

X-original-commit: 3608e724c6099f0eff5f14cbd844e0d7507d0d1d
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2021-03-16 09:23:51 +00:00
Michael Mattiello (mcm) c56324ea38 [FIX] web: display remove buttons in embedded list
Since the quick edit behaviour has added, embedded lists
can be edited and display the "add a line" buttons  in a
readonly form but not display the remove buttons
This commit fixes that inconsistency.

X-original-commit: 7cc17a345bc9cbe165d061300d91d1ac0e583fc1
2021-03-16 09:23:49 +00:00
Kartik Chavda 903453487d [IMP] calendar: change button string from 'EMAIl' to 'EMAIL'
In calendar module there is one typo in action_mass_mailing
button's string.

So replace the 'EMAIl' to 'EMAIL'.

closes odoo/odoo#67535

Taskid: 2478549
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-03-10 05:46:02 +00:00
Romain Derie bad0926ab1 [FIX] web_editor: don't run code when input is emptied
Before this commit:
  - Edit mode, open image dialog
  - Upload an image to the media dialog
  - Reclick on Upload but don't select an image, close the browser image
    selector
  - This will trigger the input change event, as the input was emptied

This is needed since in later commit, `_addData()` will do some code outside
of the `files` loop, which is useless if there is no files selected.
In thise case, the issue would be that it would open an empty toastr.

task-2345082
Coming from #65828
Closes #68326

closes odoo/odoo#68340

X-original-commit: 94c45412714c1263788b2567ce3c9581453b2cd4
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2021-03-25 12:35:11 +00:00
Romain Derie 46ea05ab03 [FIX] web_editor: prevent mismatch between mimetype and content type
Since the image util method `image_base64()` is converting BMP images to PNG
automatically[1], there would be a mismatch between the attachment content type
and the attachment mimetype.

  - Content type: retrieve with `base64_to_image(data).format` -> return PNG as
                  the image data was converted from BMP to PNG
  - Mimetype: set on `write()` and `create()` with `_check_contents()` which
              call `mimetypes.guess_type(file_name)`.
              BMP image `my_file_image.bmp` would have a mimetype set to BMP

The computed field `image_src` would return `False` since the image.mimetype
would be BMP, making the dialog picker not showing the image but loading
`http://localhost:8069/false` instead.

[1] https://github.com/odoo/odoo/blame/097f29d0f6a5b295c81fd074665dbd261eaf12fb/odoo/tools/image.py#L124

task-2345082
Coming from #65828
Closes #68326

X-original-commit: ef5b108b781df73342bb99342a1116fad86d3b58
2021-03-25 12:35:10 +00:00
Samuel DegueldreandArthur Detroux fb05e0f554 [FIX] web_editor: fix race condition in option selection
Previously, when selecting certain options, especially ones which had
slow updateUI methods, the selected value was sometimes reset to its
previous value. This was caused by a race condition in which, when a
snippet option updated its value, it would wait for options on the
parent snippet editors to update all of their options' UI, but it
incorrectly only waited for *one* of the snippet editors to finish
instead of waiting for all of them.

This commit fixes that by stopping the event propagation and triggering
a new event that will let the direct parent know when all parent editors
are done updating their options' UI before signalling that the UI update
is done.

task-2487578

closes odoo/odoo#68341

X-original-commit: 7623a0c771495cd41bf40af37c0d2b6e4beb7cdc
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: Arthur Detroux <ard@odoo.com>
2021-03-25 12:37:35 +00:00
Samuel Degueldre fd16106199 [FIX] web: fix missing placeholder in translated string
closes odoo/odoo#68335

X-original-commit: 233bbb0550354e4d48cdd83c221fc10ccab12842
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-03-25 11:58:03 +00:00
Aaron Bohy 2c69b323b1 [FIX] web: do not display falsy url field widgets
Before this fix, unset char fields with the url widget in form view
displayed "false", whereas they should simply be empty. This is a
side-effect of commit [1], which aims at reducing the shift between
readonly and edit modes in form views.

[1] https://github.com/odoo/odoo/commit/288b24cbdf54ac0dbee7e012f074fac9a0c68238

closes odoo/odoo#68330

X-original-commit: de1f7ab77d37adbbc68e640ea9877721bfc869d2
Signed-off-by: Michaël Mattiello <mcm-odoo@users.noreply.github.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2021-03-25 11:03:54 +00:00
Mohammed Shekha 2f6dd3d172 [IMP] web: x2many list: update all modifiers after an onchange
Let's assume an x2many list with an onchange. When a sub-record is
modified, an onchange is performed, and it may update other records
in the relation (e.g. the debit/credit case in accounting). This
commit ensures that modifiers are correctly re-evaluated in that
situation, so that they are up-to-date with the new x2many values.

task-2373929

closes odoo/odoo#61911

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2021-03-25 10:33:47 +00:00