In order to make the kanban view more customizable, we will allow the
administrators to give a custom legend on the event track stages. With
the custom legends, the employees should be able to find their way more
easily especially if the company uses its own internal processes.
The custom description of the track stage will appear in a tooltip when
the user hovers the corresponding kanban column and does not move for a
few seconds. It can help people understand the role of each track stage.
In order to ease track management, tags are now searchable directly from
track view.
task-2504216
COM PR: odoo/odoo#69585
UPG PR: odoo/upgrade#2408
On the website, the exhibitor cards only shows a logo. If the visitors
clicks on a logo, the visitors will be redirected to the website of the
corresponding exhibitor. If no website has been set and the logo of the
exhibitor is rather abstract, the visitors may not be able to recognize
and identify the exhibitor.
To provide more information about the exhibitor, we will add a small
popover that will be opened when the visitor clicks on the logo. The
popover will contain the following information:
- The name of the exhibitor
- The website of the exhibitor
Other information are considered as private and can be added through
customization if this fits specific use cases.
task-2504216
COM PR: odoo/odoo#69585
UPG PR: odoo/upgrade#2408
When the user submits a quiz, the user will not get much feedback. To
improve the user experience, we will now indicate how many points the
users earned per question. With that information, the users could detect
errors and report them to the administrators. We will also add some
minor layout improvements to make things clearer.
When the administrator creates a quiz, the administrator might not want
to set a limit on the number of attempts that a user can have on a quiz.
To allow that, we added an option in the quiz settings called 'Unlimited
Tries'. When the administrator checks that option, a button will appear
below the quiz and will let the users reset the quiz at will.
Sometimes, the administrator might also want to (1) give points for an
answer that is not wrong or (2) give no point for a correct answer. This
is not currently possible as we considered that the correct answer is the
answer that rewards points. To allow that, we will add a new boolean
field on each answer to mark the correct answer.
task-2504216
COM PR: odoo/odoo#69585
UPG PR: odoo/upgrade#2408
This fixes a bug about alignment, which shifted the mega menu with the
narrow size by 50%. This bug was triggered in multiple headers:
- sidebar
- hamburger
- magazine
task-2502208
closesodoo/odoo#75877
X-original-commit: 1f54c7f5cb458b437a54ea0cde9c0df388c1f47d
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
*: website_slides
A function allowing to convert a SVG to a PNG has been added as an
utility function in website.utils and is used for the upload of document
in website_slides. This function add support for a specific case which
was not supported by the previous conversion function used for the
document upload in website_slides: SVG without width and height
attributes on Firefox.
Related to task-2602521
closesodoo/odoo#75866
X-original-commit: b5ad8d66e311afcc30dae0ab62642e61ea74b156
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: qsm-odoo <qsm@odoo.com>
Since de077243 the iter(False) will occur when trying to render a
speedscope output with `use_context=False` since the context given in
parameter of `stack_to_ids` won't be an iterable.
This simple fix avoid this by always giving an empty iterable
in this case.
closesodoo/odoo#75851
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
When combining two pricelists, the unit price might be incorrect
To reproduce the error:
1. In Settings, enable:
- Pricelists (Advanced)
- Discounts
2. Create a product P:
- Sales Price: $100
- Available on website
3. Edit the Public Pricelist:
- Add a price rule:
- Apply On product P
- Min. Quantity: SuperProduct
- Compute Price: Percentage
- Percentage Price: 63%
- Discount Policy: Included in the price
4. Create a second pricelist:
- Add a price rule:
- Apply on product P
- Compute Price: Formula
- Based on: Other Pricelist
- Other Pricelist: Public Pricelist
- Price Discount: 25%
- E-commerce Promotional Code: PROMO
- Discount Policy: Show public price & discount
5. On the website, add P to the cart
6. Edit the cart:
- P's quantity: 500
- Apply PROMO code
Error: The new price is $75 instead of $27.75
`_website_product_id_change` already returns the correct price value, so
the latter shouldn't be computed again (moreover,
`_fix_tax_included_price_company` should use the price with the pricelists
applied instead of the default product price)
OPW-2605804
closesodoo/odoo#75843
X-original-commit: 030e92a3150bbb7d749f1a6f10e261791da6eca6
Signed-off-by: Adrien Widart <adwid@users.noreply.github.com>
Purpose
=======
Purpose of this commit is to add a new group for the mail template designer.
Goal is to make roles clearer: managers edit templates, users use them. This
commit allow some designers / managers to make email template and to let
others users use those email templates.
Specifications
==============
When this feature is enabled in the Settings page, a new group is required to
modify email templates in a composer like wizard or to make dynamic content.
This allows to separate managers editing / composing templates from standard
users that use them.
If the current does not have this group, the email body will be in readonly
mode if he selected an email template. That way we force him to use the email
template that the manager made.
Technical
=========
New Group
---------
Only users in this group will be able to create / write email template or
to write Jinja code in the mail composer (including other fields like subject
in mailing).
By default, all internal users have this group. Mass mailing users also have
this group as writing mailings is about the same management level as writing
templates.
Mail Composer Mixin
-------------------
In comment mode, the template is rendered and then saved on the body field
so non-"Mail Template Editor" users can load email templates.
But in mass mode, the body of the template is saved and then rendered and
many things change the body (HTML sanitizer, web editor move inline CSS
properties, add / remove spaces...). So in this case, we can not know if
the user changed the body or not. That is why we put the body field in
readonly mode so, it is not modified by the web editor.
Jinja code detection
--------------------
To detect dynamic Jinja content, we compile the template, and we browse the
AST. If we do not have a single "Template Data" node, we assume that the
template is dynamic.
When we detect the template as static, we do not render it. That way we
avoid unnecessary rendering.
Code cleaning
-------------
Move Jinja import into tools so that it is outside of mail framework code.
Task-2187263
closesodoo/odoo#75840
Related: odoo/enterprise#20547
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Change the command palette shrotcut from CTRL+K to CTRL+M,
in order to avoid conflict with link creation shortcut in editor.
task-2635043
closesodoo/odoo#75828
Signed-off-by: Bruno Boi <brboi@users.noreply.github.com>
Improve cancel / set outgoing actions on sms model. This notably allows to
synchronize notifications when hitting action buttons on sms form view.
Also add an action to set as error. This will be used when having IAP
feedback on SMS sending.
Improve `send` API, to allow fine control of what is unlinked after sending:
sms in errors and/or sms sent. This allows notably to keep all outgoing sms
notably when IAP feedback will be added.
See sub commits for more details.
Task-2634957
Prepares Task-2535005 (SMS view pimp) and Task-2560666 (IAP feedback)
closesodoo/odoo#75798
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
When calling send on SMS, sent SMS are unlinked. If a ``delete_all`` parameter
is true, failed SMS are also unlinked.
In this commit we allow to control that behavior with two boolean, one for
sent SMS and one for failed SMS. This allows to ask to keep sent SMS and
update their status accordingly.
More control is necessary notably to enable IAP feedback on sent SMS as
an error could happen after considering it as sent. Some flows will have to
be updated to decide whether this status is necessary and if SMS are kept.
This commit prepares ground for that feature by already improving methods
and API.
Task-2634957
Prepares Task-2535005 (SMS view pimp) and Task-2560666 (IAP feedback)
PR odoo/odoo#75798
Only SMS not in error should be considered as sent instead of being
unlinked. This has no effect on current tests but will be used in
future cleaning.
Task-2634957
Prepares Task-2535005 (SMS view pimp) and Task-2560666 (IAP feedback)
PR odoo/odoo#75798
Improve cancel / set outgoing actions on sms model. This notably allows to
synchronize notifications when hitting action buttons on sms form view.
Also add an action to set as error. This will be used when having IAP
feedback on SMS sending.
Task-2634957
Prepares Task-2535005 (SMS view pimp) and Task-2560666 (IAP feedback)
PR odoo/odoo#75798
* = crm_livechat, hr, hr_holidays, im_livechat, mail_bot, purchase, sms,
snailmail, survey, test_discuss_full, test_mail, web_editor, website,
website_livechat
- Create new model `mail.guest` for guests.
- Rewrite some RPCs to target routes rather than model methods so that
guests are able to use them.
- Patch JS and python models to support guests.
- Create a stand-alone page and boot the channel in it.
task-2494829
closesodoo/odoo#75496
Related: odoo/enterprise#20417
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
- Adding the accounts required in UAE with correct codes
- Configuring taxes and tax grid according to legal requirements
- Add vat amount on account.move.line in a separate field
- Modify account.move report, mainly to talk about VAT and not about tax
- Journals added for Tax Adjustments and IFRS
- IFRS accounts can only use IFRS journal
- only one tax group for the accounts of the closing entry (tax_group_5)
closesodoo/odoo#75424
Related: odoo/enterprise#20309
Signed-off-by: Josse Colpaert <jco@openerp.com>
Before this commit, every view had to have its own rules to avoid
breaking the control panel when there was an horizontal scroll.
a) We now always use 'overflow-x: auto' to be able to scroll the content
of the view if there is not enough space available.
However, we doesn't want double vertical scroll; one for the page and
another one for the content. It's why we added visible to the previous rule:
"overflow-x: auto visible".
b) overflow: visible; is the default value. We simply deleted this line.
c) We need to set height: 100%; to allow the pivot view to grow when a
dropdown pops out. Otherwise, it will be cutted.
Steps to reproduce:
* Go to Sale
* Select the 'Pivot' view
* Add 'Customer' to group horizontally
* Scroll to the right => BUG
Task ID: 2232265
closesodoo/odoo#75826
Related: odoo/enterprise#18121
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Check if the attendees are correctly present. We replace
assertEqual by assertIn to be sure that the order of the
attendee doesn't have an impact on the test
task-2287846
COM PR: odoo/odoo#69484
ENT PR: odoo/enterprise#17792
Related: odoo/upgrade#2401
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of the task is, to use our awesome website builder instead of
pad when creating a website page for terms & condition.
Also suggest default T&C to save user time when user enable the feature
So in this commit did the below changes:
* Added new indicational text below "Terms as note" & "Terms as web page"
* After enabling "Term as web page', user should be able to see the
term page url
* For Terms editing:
- User that have 'website' or 'ecommerce' module should edit the page
directly using the website builder with link "edit in website builder" link.
- User that don't have nor website not ecommerce module should update
the text in the pad but in a pop-up window.
* Also added the dynamic default term for company when term type is html.
PS: changed website_sale pre_init_hook to post_init_hook because
invoice_terms_html is compute field which depends on term_type so
when term_type is changed from init_hook it will give the key error
for the invoice_terms_html as it's not loaded to registry.
closesodoo/odoo#68225
Taskid: 2414659
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
This task aims to both explain supported reconciliation cases and improve the reconciliation model form view.
The form improvement is mainly about label wording and make the options more self speaking.
Also, disable bypass of the matching amount we do in case the statement line's label exactly matches the payment reference.
It can be replaced by just making a final model that is applied whatever the amount and will do the partial reconciliation on everything that wasn't matched by others.
That's cleaner, as users can way more predict what models can do and debug their config.
closesodoo/odoo#73043
Task: 2427089
Related: odoo/upgrade#2729
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
When browsing the eCommerce part of the website, customers
should be able to filter shop products based on base sale price.
Desired behavior after PR is merged:
The filter slider can be enabled through the customize menu and it only
filters using the product's base price (for performance reason) and takes
into account currency conversions, not pricelists and discounts. It uses a
custom-built library for the range input with 2 cursors (min. price and max. price).
The slider is hidden when all products shown on the current page
(category, etc.) have the same price (or there is only one product).
A more advanced version of this implementation would enable the filtering to
take more factors into account.
task-2603014
closesodoo/odoo#74575
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Co-authored-by: fja-odoo <fja@odoo.com>
Co-authored-by: Kamen Zhekov <kzh@odoo.com>
Co-authored-by: Romain Derie <rde@odoo.com>
Purpose
=======
This commit improves the UI of the mail group module (backend and portal
view), fix some bugs and clean the code.
Bug 1
=====
If a user click 2 times on a confirmation link, an error is raised.
Bug 2
=====
A bug about the website snippets has been fixed;
- Add the snippet to a group in which you are member
- Change the group of the snippet to a group in which you are not member
- The snippet still show "Unsubscribe"
Bug 3
=====
In the portal view, when messages are filtered by month, messages which
are created in the last day of the month appear also in the next month.
Specification
=============
UI
--
Show the Allow / Ban buttons whatever is the state of the message, so
the user can ban / whitelist a message even if there's no pending email.
When we receive an email, remove the "Mailing List" footer. This was a
big issue because when some users reply many times, the footer was
duplicated on each answer.
Improve the form view of the mail group:
- On non-moderated group, show all messages instead of only pending
message
- Show the guidelines stuff on non-moderated groups
Improve the portal view
- show the attachments under every message (not only on opened message)
- improve the template to confirm the subscription of the user
- improve the portal view for mobile device
- do not show rejected messages, even for admin
- do not show the button "X replies" when the mode is not thread
Technical
---------
Split the route "/groups/subscription" into "/group/subscribe" and
"/group/unsubscribe"
Correctly quote the parent email for the emails sent by web version of
Outlook (with the HTML id "divRplyFwdMsg").
ACLs
----
Now only administrators or responsible / moderators can write / unlink
the group.
Fix an ACL issue on the group member where the responsible of a
non-moderated group could not access the members of the group.
Members with same email
-----------------------
Improve the behavior when multiple members have the same email address
(this situation is possible because there's no unique constraint on the
email field of the <res.partner> model.) We now return the most
appropriate member for the given email address and partner.
When unsubscribing by clicking on the confirmation link that we received
by email, remove all members with the same email address.
Links
=====
Task-2599676
See odoo/odoo/pull/73640
closesodoo/odoo#73640
Related: odoo/upgrade#2774
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Handle text and other components readability when placed over a colored
background. Both the element and the underlying bg must use the same
color, eg [fill="#FFF"].
closesodoo/odoo#75834
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
The `confirm_no_consumption` field was useless
(can be replace by a other condition). Also
it was compute in a slow computation method
which should't not use in batch (not ready for now)
See odoo/upgrade#2792closesodoo/odoo#75827
Signed-off-by: Tiffany Chang <tic@odoo.com>
This commit removes the pdf and zpl reports for product templates and
variants. Instead, labels are printed via a new wizard allowing to
specify the label quantity, format and optional text.
There are a bunch of usual retail label sizes in pdf or zpl code
Task : 2501730
closesodoo/odoo#69690
Related: odoo/enterprise#20246
Related: odoo/upgrade#2542
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
Following commit 118ddcace0.
a few console.log escaped the attention of the reviewer.
This commit removes them.
closesodoo/odoo#75832
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Directly inheriting stock.product_category_form_view_inherit would raise
an error as group "account_property" wouldn't yet exist in the inherited
record.
Fixes 61d937f7d6closesodoo/odoo#75822
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
move l10n_latam_document_type_id_code field definition to latam module
in order to be re used by another latam localizations
closesodoo/odoo#75764
Related: odoo/enterprise#20513
Signed-off-by: Josse Colpaert <jco@openerp.com>
After merging https://github.com/odoo/odoo/pull/75322, orderManagement
context and order-management-screen styles were removed by which
pos_sale was dependent. Because of this, settling quotations in pos_sale
doesn't work. We restore the needed context and styles in this commit.
closesodoo/odoo#75809
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Previously, having a remove directive in a bundle that didn't match any
file of that bundle's type would raise an error, saying that the path
we're attempting to remove could not be located in the current bundle.
This basically breaks the remove directive inside of xml/js-css hybrid
bundles, because getting the assets path in xml-mode will cause all
remove directives that only target css/js files to fail and vice versa.
This commit fixes that by only raising an error when there were files
that match the extensions currently enabled, and those files were not
found in the bundle.
closesodoo/odoo#75790
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
This commit enables the zoom on mobile.
To avoid any issue in website, we first only activate it in the backend.
Note that it's not, strictly speaking, a zoom. It only shows the
original size of the picture.
Steps to reproduce:
* Open Employee
* Select an employee
* Touch on the photos
closesodoo/odoo#75785
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Issue: When reversing an invoice of timesheet and selecting a time
period, there is an user error saying there is nothing to invoice
Steps to reproduce :
1) Create a SO with a timesheetable service
2) Deliver some hours
3) Invoice them
4) Confirm the invoice, then add credit note, confirm
5) Invoice the same hours again (the sales order indeed says 0 hours
invoiced)
-> There is nothing to invoice
Why is that a bug:
When creating the invoice in `sale_make_invoice_advance`, if there is
a period selected, we are going to search with a domain to only count
the quantity that have not been invoiced, this is done by checking that
either the invoice_line_ids are not set, or that they are cancelled
but when reversing an invoice, the state is posted, so we need a better
domain to take that in consideration
opw-2525655
closesodoo/odoo#75760
X-original-commit: 269a5da4f505998a46d834176beda4f000835175
Signed-off-by: LTU-Odoo <IT-Ideas@users.noreply.github.com>
Adds personal stages to tasks.
Users assigned to tasks will be able to have their own pipeline to
handle their tasks independently of the project's pipeline.
The assignee field on Tasks has also been changed to a Many2many to
support multiple assignees on one task.
The same table is used to store those information, essentially a triplet
(task, user, stage), to ensure that:
1) personal stages only apply to tasks to which you are assigned to.
2) synchronizing to make sure that you don't have a personal stage for a
task on which you are not assigned anymore.
Alongside those changes, some minor changes have also been made:
- Modified the task's tree view.
- Renamed the Tasks menu to 'My Tasks'.
- The default view is now the kanban view for the 'My Tasks' action.
- project_id is not required anymore, tasks with no project are
considered 'private', those tasks are only visible to those that are
assigned to it.
- Added tracking of both user_ids and depend_on_ids in the chatter.
Closesodoo/odoo#74087
Task ID: 2398734
ISSUE ADDRESSED
- Open Project > Tasks > Gantt view
- Click the ADD button to open the form dialog
- Fill the form and click on SAVE&NEW button
- Fill again the form and click on SAVE&CLOSE button
- Both tasks are created, but only the first has been planned, because the second one has lost a part of the context (plan dates...)
BEFORE
Opening a form view dialog without passing a _createContext method (see commit c14b17c485 where it was introduced) was still passing an empty object additionalContext argument when save&new was hit.
This was leading to not take into account the full context (see BasicModel._getContext).
AFTER
If no _createContext method is passed to a form view dialog, then no empty object additionalContext is passed to evaluate the context, resulting in the full context being used.
closesodoo/odoo#75807
X-original-commit: 3fe5961988220b2864db005ae9d79474de608fc5
Signed-off-by: Mathieu Duckerts-Antoine <Polymorphe57@users.noreply.github.com>
Signed-off-by: Bruno Boi <brboi@users.noreply.github.com>
When modifying a view, it's useful to go directly to transifex
closesodoo/odoo#75804
X-original-commit: 8a5db8d160fee7aa38a18f8c3f3cc1490b1f551e
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Add a button for the selection of the recommended palette. Clicking
on the generated palette to select it doesn't seem to be directly
understood by the user. This button is here to grab its attention
and avoid the confusion.
task-2602521
closesodoo/odoo#75647
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The personal documents tab on the employee form view is removed in favor
of the chatter + documents app to hold and manage documents.
The fields are kept because the salary configurator needs fields to bind
to be able to still request documents. This might change in the future.
Closesodoo/odoo#75506
Task ID: 2628750
Related: odoo/enterprise#20420
Related: odoo/upgrade#2769
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This was changed in Task-2499504
The problem here is that those fields are related to business logic and
therefore cannot just be used as an Html() field.
Task-2428819
closesodoo/odoo#74364
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Set expense demo products as 'service' instead of 'consumables' so they
are not shown anymore in inventory products.
Task-2428819
Part-of: odoo/odoo#74364
The 'Logistics' and 'Inventory Valuation' blocs should be regrouped into
two columns on the product_category form
Task-2428819
Part-of: odoo/odoo#74364
The product category is not relevant here and needs to be hidden by
default (Can still be selected on the right).
Task-2428819
Part-of: odoo/odoo#74364
The raised error currently displays the internal state (e.g. 'purchase'
instead of 'Purchase Order') and therefore is not translated.
Task-2428819
Part-of: odoo/odoo#74364