Create a service product [DEMO] with service tracking
'Create a task in a new project'
Create a sale order SO1 with User 1 with [DEMO] product
Create a sale order SO2 with User 2 with [DEMO] product
SO1 will create a task in a project, edit this task and
assign as parent task the one created by SO2
The action will be blocked by security rules, because user 1 cannnot
see the sale order data of user 2 but the action should be
allowed.
Fixing the error with a sudo call
opw-2243370
closesodoo/odoo#50585
X-original-commit: 8c7d0266cc6d7bd0569721e92128096e64d9c361
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In some situations it is important to protect the Odoo service from
direct access from the internet, or to protect internal network
resources from the Odoo server itself.
This is heavily dependent on deployment requirements, and for standard
installations on a public cloud system, this may not be necessary.
Yet it seems useful to mention it in the deployment recommendations,
as it may not be obvious to our users.
Our thanks to Ameya Darshan for raising this concern!
closesodoo/odoo#50422
X-original-commit: da0d9ef4a6e20df765a20a6231b2fcc535d0d863
Signed-off-by: Paul Morelle <madprog@users.noreply.github.com>
Side effect of commit 6d7bbd3074e6b3771b582bf544624cef59e1c6a3. In case we are coming from public route /shop/address,
we are in superuser mode and method _get_default_team_id can return a sales team
from another company. We should force the domain to avoid creating inconsistent records.
closesodoo/odoo#50581
X-original-commit: 0396c04ce894df80fb7714edb06e9befebdb672e
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Alex Tuyls <alt-odoo@users.noreply.github.com>
If an action has for instance twice "tree" in view_mode, you get a crash
when displaying the action.
This patch adds a python constraint on the model which will prevent such
change.
closes odoo/odoo#50189
Opw: #2241415
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In the pivot view, groups comming from many read_group are assemble
to create the header hierarchies and the table.
Groups returned by the read_group may be already sorted by the server
using the order set on the model for instance and that order should
be reflected in the header hierarchies (and in the table).
It is important to keep that order since it might not be possible
to recreate it in the interface. Even if possible it might not be a
good idea for performance reasons.
Before this commit:
The groups are added in a JS object, whose keys are the group ids
(when grouping on a many2one at least). Then, to generate the table,
we iterate over the keys of that object, but those keys are sorted
according to the numerical order (not the insertion order),
because keys are kind of numeric.
See https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order.
After this commit:
Instead of a JS object, we use a Map for which the insertion order
is used (official spec).
Task ID: 2243416
closesodoo/odoo#50551
X-original-commit: 1a9a85c8b8d0f47c3c6f3878cd6d9401ddc3ad75
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
An attribute 'disable_counters' on fields of the search panel is
supported in case performance issues would be encountered with counters.
The commit dd7022eccd
allowing to use the search panel in other views than the kanban views
has also introduced the search panel arch validation
and the attribute 'disable_counters' was forgotten, so that it was
impossible to use it in practice.
With the present commit, 'disable_counters' is now recognized
as a valide attribute.
closesodoo/odoo#50542
X-original-commit: 4c321d0bcb83286c473a6e6c2b622274fa764393
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Issue
- Install CRM
- CRM > Reports > Activities
- Add a custom filter > Created on
- Select the date
You can't, the date picker is not shown
Cause
Actually, the date picker is shown but
very quickly and it is closed by a scroll
event thrown by Chart.js.
Solution
Close the date picker only if the user
scrolls manually.
OPW-2245019
closesodoo/odoo#50482
X-original-commit: bda320052ac937f5bc17c7da81d84633d72a8370
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
1. Create an invoice and upload a picture file as the only attachment
2. Try to print "origin bill" for the invoice (From the invoice tree
view select one and click print > origin bill )
An error will raise "PIL.PdfParser.PdfFormatError: trailer end not found".
Fixing by using another BytesIO object as the output.
opw-2244625
closesodoo/odoo#50469
X-original-commit: 378551193d8199cfab13b06a48aa706f420a7823
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
_onchange_product_id() used to always (re)set hr_expense analytic_account_id & analytic_tag_ids to default values.
Or set those to false if no default values are found.
Installing account_analytic_default_hr_expense made odoo/addons/hr_expense/tests/test_expenses.py tests fail
- changed function name (no need to be a _onchange_product_id override)
- removed super() & return
- only set default value to var if var is False
closesodoo/odoo#50456
Task: 2205544
X-original-commit: 1c41c90ba715ba4141fd0410af886fac2a2c245c
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Signed-off-by: jbw-odoo <jbw-odoo@users.noreply.github.com>
Currently, the menu are only translated for installed language when we
create a new website.
When we create a new menu (eg. by installing a module) or install a new
language we will only translate menu without website_id set, so the menu
are not translated.
With this changeset, we try to match translation of menu without
website_id to menu with website_id when translations are updated:
- when a language is installed/updated
- when a module is installed/updated
Without the changeset, the added test would fail with:
- "Menu in english" != "Menu en français"
Load translation add missing translation from template menu
- "Menu in french" != "Menu en français"
Load translation with overwriting update existing menu from template
fixes#43365
opw-2209864
closes#48031closesodoo/odoo#50498
X-original-commit: 998987f8ee148235f4025eb97a424e838ac6fc9f
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
When computing the `arch` from the arch_db, the field gets translated
as a matter of course as `arch_db` is a stored field with a
translation method. This means `arch` is assumed to be in the proper
language in the cache.
However when reading from the filesystem (dev=xml) this is not the
case, and the view XML ends up untranslated.
Fix the issue by applying the translation function from arch_db onto
the stuff we got from the filesystem.
Note: under the assumption that we *do not* want to store translated
archs in arch_db, explicitly set the lang to None when resetting
views.
Task 2059557
closesodoo/odoo#50389
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Some apps, once installed, automatically create a menuitem in website.
What complexify the UI and create useless menu withtout plusvalue.
It is not because you install livechat to make support online, that you want
a link in your menu to show stats e.g.
Now we remove the default menu created, and help user to find it when he create
a link. The autocomplete suggest most of the main App's controllers
task-2189613
closesodoo/odoo#49081
Related: odoo/enterprise#9733
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Cache should be invalidated when updating `arch_db` via `arch`.
closesodoo/odoo#50512
X-original-commit: 1a14ca163ee256eb26661c900227db49426ec3af
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
There is no way to select all the posted invoices; only the posted and
unpaid.
closesodoo/odoo#50509
X-original-commit: abd53fa8b3e7787b4d3c0ab02e29656f85bfe4a3
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Signed-off-by: wan <william-andre@users.noreply.github.com>
When no valid phone number was found on a record, and when using _message_sms
directly, no SMS and no notification was created. You could therefore think
everything was ok while it was actually not.
Instead we now create failed notifications. It allows to be notified of it
and fix numbers through cancel / resend wizards.
Task ID 2244192
closesodoo/odoo#50486
X-original-commit: baecdfaa2d31714a20d1fb8af7799af1805cd939
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
When no valid phone number was found on a record, and when using the composer
in single recipient mode, you had a crash at sending as composer tried to
write on a field called False.
Instead we just take the first available phone field of the record. As they
are all void we can update them safely.
Task ID 2244192
X-original-commit: 2306d7d79d8e64597912f15365cede7473589731
In a calendar with 2 weeks mode (odd and even), before this commit, all
new created periods (placed in one of the two sections) don't have the
week_type field set. This generates a confusion, because a period that
should be applied only in odd weeks, for instance, it was applied also
in the even weeks.
Now, the new periods will have the week_type field set with the
week_type of the section where is it. Also, an error message is raised
if a period is not in one of the two sections.
opw-2239966
closesodoo/odoo#50478
X-original-commit: 33a62118818952872321591e85403b657380128a
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
This commit attempts to add the option to order partner levels by sequence.
In this commit, the following changes have been made :
1- Add a handle widget to the sequence field to reorder partner levels (in view_partner_grade_tree).
2- Update default order field in "res.partner.grade" to order records by sequance.
3- Update partners order in 'website_crm_partner_assign' controller to keep the same order in website.
Task ID 2241632
closesodoo/odoo#49882
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Revision on 7ecae33571
Commit above introduced activity widget on partner kanban, but
unintentionally affected style of all other kanban views that have
details on kanban record.
This commit fixes the issue by applying special CSS rule only on
partner kanban view, so that other kanban views remain unaffected.
Task-Id 2237638
closesodoo/odoo#50474
X-original-commit: b0ef12bc0bcdb29ffc7e61f1a1a185248650283c
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This reverts commit 715ef9fc2684dc875cf82ee312f20575ed42f94d.
Purpose of commit above was to fix an issue in kanban view
CSS introduced by 7ecae33571
This commit, however broke more kanban views. This happened
because the original commit changed a CSS rule with flex, and
commit above attempted to fix the issue by turning problematic
UI elements to their flex equivalence.
This change is too broad and unsafe, so the better decision is
to revert them.
Task-Id 2237638
X-original-commit: 6badf3839147c0b9a475247699227ed304bd402d
The attribute defined isn't the right one, thus on population,
those models are populated with the default _populate_sizes defined in base.
closesodoo/odoo#50464
X-original-commit: ad7436bb9d2b965f926aa2d1f45a89ea5f6dfc9f
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
- Create a consumable product
- Assign a FIFO product category, automated valuation
- Purchase some units
- Go to the Inventory Valuation report
The product appears in the list, while consumable should not.
We only show products linked to stockable products.
opw-2153840
X-original-commit: 8fa2440e8c055ca80bce27e33d5678745712fe53
- In Website > Settings, set 'Show inventory on website and prevent
sales if not enough stock'
- Create a consumable product P, publish on the eCommerce
- As user 1, buy 1 units of P => validate the SO => 1 unit is reserved
- As user 2, add 1 unit of P to the cart. In the cart click on the `+`
to add a unit
The product is removed from the cart.
This happens because `virtual_available` quantity is taken into account,
while it shouldn't be since it is a consumable.
opw-2245075
closesodoo/odoo#50437
X-original-commit: ec6f281f3cab0bb29e29fa60b125f158e91375c5
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit will clean the code by removing the field
'color' from model 'event.event' since the field is
not used/needed anymore.
Task ID 2243918
closesodoo/odoo#50155
Related: odoo/upgrade#1124
Related: odoo/enterprise#10199
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of this commit is to allow customization of view types available when
using the activity menu. By default only kanban, list and form are available
as before.
Calendar, pivot, graph and activity have been added for leads, allowing
better user experience in their use of activities.
Task ID: 2228451
Community PR odoo/odoo#50042
Enterprise PR odoo/enterprise#10145
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
- Move code from kanban view that is common with list view in common files
- Add action to add selected products to cart
- Add/update tests
closesodoo/odoo#47556
Taskid: 2160048
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
When an expense is create from email, if the product is not set, when you want set the product it is erase the unit price.
closesodoo/odoo#50397
X-original-commit: 74736914bb4d39947523f3dcd5e9d9455f4ee768
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Following the new populate functionality (populating the database with generated records),
this PR aims to improve:
* the creation of users (missed batching opportunity)
* the update of partners (optimized write to potentially reduce database requests).
Followup of #48912
Task Id - 2229358
closesodoo/odoo#50452
Forward-port-of: odoo/odoo#50367
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
ref() always trigger a database query to verify record still exists.
In frequently used methods, it's best to avoid ref calls if not needed:
* either the records should always exist
* either the record isn't always needed and the ref can be sometimes
avoided.
X-original-commit: c1e05da7b71c8274aff00d67f8d1bc7e209fcaab
When note is installed, res.users are created one by one because its
create override isn't adapted to work in batched.
This commit ensures the create override is adapted to ensure users are
still created in batch when note is installed.
X-original-commit: 1cf7e1ac5dbf174e756a01f9b75abd09b168e52a
Do not loop through the partners, doing the same stuff n times, and
potentially doing multiple searches when one is enough.
X-original-commit: 35713d2ff46dcfc4a578c41dad6f786919754ca2
Inspired by what is done in the task kanban of the project module,
add examples of kanban stage setups for UTM campaigns, and allow users
to load them.
There have also been some minor changes to the campaigns view:
- The helper message when there are no UTM campaigns has been changed
to a more descriptive message.
- All stages that existed by default (hardcoded in the data XML) have
been removed except default New one. An user with a fresh database will
have no stages in their kanban. The old hardcoded stages have been moved
to the demo data instead, so they will still be added by default if the
user installs demo data.
- The ghost columns that appear in the kanban when no stages exist have
been renamed to match the old stages that were hardcoded.
- When the user opens the view to create a column, the 'See examples'
link will appear below the 'Column title', just like in the project
addon, and clicking it will open some examples specifically made for UTM
campaigns. Clicking on the 'Use This For My Kanban' button will load the
stages of the selected example.
- A min-height property has been given to the example modal view so that
the view does not change size depending on the number of rows in the
ghost columns.
Sub commits are present to allow tweaking the feature more that currently
feasible.
Task ID: 2047369
PR #48299
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Before this commit, after adding a column or loading examples in a
kanban from the quick create column, it stays open. After this commit,
it will stay open if adding a column through it, but it will fold if the
user has loaded a set of columns from an example.
Task ID 2047369
PR #48299
Inspired by what is done in the task kanban of the project module,
add examples of kanban stage setups for UTM campaigns, and allow users
to load them.
There have also been some minor changes to the campaigns view:
- The helper message when there are no UTM campaigns has been changed
to a more descriptive message.
- All stages that existed by default (hardcoded in the data XML) have
been removed except default New one. An user with a fresh database will
have no stages in their kanban. The old hardcoded stages have been moved
to the demo data instead, so they will still be added by default if the
user installs demo data.
- The ghost columns that appear in the kanban when no stages exist have
been renamed to match the old stages that were hardcoded.
- When the user opens the view to create a column, the 'See examples'
link will appear below the 'Column title', just like in the project
addon, and clicking it will open some examples specifically made for UTM
campaigns. Clicking on the 'Use This For My Kanban' button will load the
stages of the selected example.
- A min-height property has been given to the example modal view so that
the view does not change size depending on the number of rows in the
ghost columns.
Task ID: 2047369
PR #48299
Before this commit, the only module that allows for selecting and
applying kanban column examples is the project module, for its tasks
kanban, so the message in the button to apply the example is hardcoded
as "Use This For My Project".
After this commit, the text in this button can be customized to make
this more generic, so a different module could use a different message
like "Use This For My Campaigns". If no text is specified, a generic
"Use This For My Kanban" is used instead.
Usage
```
kanbanExamplesRegistry.add('utm_campaign', {
applyExamplesText: _lt("Use This For My Campaigns"),
```
Task ID: 2047369
PR #48299
Before this commit, when a user creates a private channel without adding himself
as a member of it, it raises an access error. After this commit, user will be
automatically added as a member by default when creating a channel.
It makes sense the creator is a member of its channel. Moreover it avoids
issues on private channels.
Task 2172420
PR odoo/odoo#44454
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>