avoid to get journal_entry_ids, to avoid pushing those ids in cache and
having them read uselessly when accessing an account.move.line
recordset.
Use search and search_read instead of ORM __get__
closesodoo/odoo#33192
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
=======================================================================
Note on this commit:
This reintroduces what was reverted in 83b52e3a97 with an extra
fix in the call of `_prepare_reconciliation_move_line`. The second
parameter of the method call should be the amount in the company
currency since it used as debit or credit value.
A test is added.
opw-1997794
closesodoo/odoo#33515
Signed-off-by: Nicolas Seinlet (nse) <nse@odoo.com>
Co-authored-by: william-andre <wan@odoo.com>
Co-authored-by: Nicolas Martinelli <nim@odoo.com>
When creating a repair order in mobile view, it is not possible to add
any Parts or Operations since required fields are not set.
We make the corresponding form views consistent with the tree views.
opw-2005905
closesodoo/odoo#34016
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Display extra information on error messages:
- Access error based on ACLs: user, fields (if applies)
- Access error based on record rules: user, ids
- Missing error: model, operation, user, ids
closesodoo/odoo#33943
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Co-authored-by: jev-odoo <jev@odoo.com>
In a still-to-determnie situation, a cyclic dependency with
`associate_member` is observed, preventing the installation of the
module.
We remove the dependency, and trigger a recompute on the parent members.
opw-2005325
closesodoo/odoo#33977
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
- Goto App Attendance > Manage Attendances > Kiosk Mode
- Select Employee (redirect to Kanban view)
- Refresh the browser
The page reloads and Kiosk Mode is left (Menu is visible, Dashboard can
be accessed).
Since the action is only used in 'Kiosk Mode', we can set it as
fullscreen.
opw-2006789
closesodoo/odoo#33969
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
With the demo data:
- Go to Inventory
- On the 'Delivery Order' Kanban card of YourCompany, click on 'Back Orders'
More pickings are displayed than the expected count.
This is because the domain of the filter is not in line with the domain
of `_compute_picking_count`.
closesodoo/odoo#33953
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit makes the sale line field on task editable and clickable
only for salesperson. As task can be read by any employee (depending on
project visibility), a non salesman user can see the 'name_get' of the
sale line, but get an access error when clicking on it.
This fix duplicate the field and only display the correct version
(editable or readonly) according to current user access rights.
Task-1999673
closesodoo/odoo#33320
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
When a project user (without any sales acces rights) want to create a task in
a billable project (linked to a sales order / sales order line), he will face
some access right issues :
1/ the system want to set the default customer on the task, by taking the one
from the sale order line linked to the project in which the task is created. This
raises an error as the task creator has no right to read the project'sale line.
2/ after that, the "sales order" field is computed on the task. This raises the
same error as we need acces through sale line to determine the sales order of the
task.
This commit fixes thoses problem by adding a `sudo` and by adding the "sales order"
field only for sales person.
opw-1999673
In settings, we added the possibility to edit service products per type
(time-based, fixed, or milestone). An action was trigger and a default filter
was applied. This filter was removed with c1f7987f49, making the 3 settings
links displaying all products.
This commit restore the filters. In order to keep the UI silmplification,
those 3 filters are only displayed (in search view) for this specific flow.
So, we keep the general search view simple.
opw-1987352
Steps to reproduce the bug:
- Create a product template A with variant color: black and white.
- Create attribute : size : 16gb and 32 gb
- Create a bom with template A.
- Add a bom line L with product B
- Save the bom ,edit it and select an attribute value for L
Bug:
All attribute values of the database (color: white, color: black, size: 16 gb, size 32 gb)
were displayed.
opw:2006988
closesodoo/odoo#33949
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Steps to reproduce the bug:
- Log as admin user in company C
- Go to Leaves module and click on Managers > Allocations
- Create a leave.allocation with type = Compensatory Days, duration = 7 days
mode = By Company and Company = C
- Approve the allocation
- Create a leave request LR for all the company C and approve it
- Log as demo user (only user access right for Leaves)
- Go to Leaves > My Leaves and click on "Leaves requests"
Bug:
A traceback was raised
opw:2005813
closesodoo/odoo#33899
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
- Create product A:
Reordering rule of 5 units
Set a vendor V
- Create a SO with 1 unit of A
- Create a PO with 1 unit of A for vendor V
- Run the scheduler => the PO contains 6 units
- Run the scheduler => the PO contains 12 units
The PO should not be updated the second time the scheduler is run.
It occurs because the `orderpoint_id` is not set on the PO line, while
the `_quantity_in_progress` method searches for PO lines with the
orderpoint set.
opw-2000962
closesodoo/odoo#33798
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In a web editor, add some text, select the text, add a link and
immediately discard the link modal. Traceback.
The traceback is a execute `setEnd` on `Range`, that error is thrown
because editable DIV doesn't save old range
Odoo wrap code does some text node split in order to attach the link
just on the selected text. If it correctly re-set the underlying
structure, it does not update the $(editable) structure used to restore
ranges.
After this commit, editable div will use newly created range for the element
for ex:
-> content: test
-> selected content "test"
when click on link dialog:
ec: test , eo: 4, sc: test, so: 0
selected content -> start 0, end 4 -> "test" like this
after clicking on discard:
ec: null text element, eo: 4, sc: null text element, so: 0
selected content -> ec and sc both are null, so it will throw an error
while setting cursor position
after applying fix when click on discard:
ec: test, eo: 4, sc: test, so: 0
selected content -> start 0, end 4 -> "test"
task - 1955863
closesodoo/odoo#33692
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Before this commit:
- When you create a compute field, from the model view, dependence field
was not required when creating a compute field.
- When removing the compute code, the dependence field stays marked as
required.
fine-tuning : f01c195288
opw-2003784
closesodoo/odoo#33760
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
During a Google Calendar sync,
exclusive instance of a recurrent event to which you are not the owner and
without an update datetime shouldn't be considered.
See developers.google.com/calendar/v3/reference/events/update
where cancelled status event might have empty fields.
> A cancelled status represents two different states
> depending on the event type:
> Cancelled exceptions of an uncancelled recurring event indicate
> that this instance should no longer be presented to the user.
> Clients should store these events for the lifetime of the parent recurring event.
> Cancelled exceptions are only guaranteed to have values for the id,
> recurringEventId and originalStartTime fields populated. The other fields might be empty.
As you are not the owner, the event shouldn't be deleted from Odoo
as the actual event owner might still attend the meeting.
It should just remove the user who is syncing his calendar from the attendees,
but as the sync currently doesn't support syncing event without an update datetime
from Google, we just choose to ignore the sync of this event.
The attendee will be removed/marked as not attending when the owner of the event
will sync his calendar.
opw-1966309
closesodoo/odoo#34075
Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
- Set the products tracked by lot
- Set 1 route with steps that allow to begin next one after a minimum
amount processed.
- Plan and begin the manufacturing process.
- Process partially step 1, but fully step 2
- Finish step 1
The error 'You can not change the finished work order.' is raised.
This is because we try to set the default final lot on a WO which is
done.
This is only used to suggest the right lot number, so we can safely skip
the step if the WO is done or canceled.
opw-2002044
closesodoo/odoo#34072
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
When sending a message (e.g. in a CRM lead or SO),
a failure_type and failure_reason are displayed, even when the message
is successfully sent.
This is because these fields are not updated when the email_status
is changed to "sent". We reset these fields to '' when the message is sent.
OPW-2003290
closesodoo/odoo#34082
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
What's the deal with SQL queries?
The query in _check_category_reference_uniqueness returns:
category_id | uom_count
-------------+-----------
(0 rows)
but if we removed AND U.active = 't', we would have had:
category_id | uom_count
-------------+-----------
8 | 0
(1 row)
As a result, the check on uom_data['uom_count'] == 0 could simply never be true.
opw 1959679
closesodoo/odoo#32788
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Make a SO for some products with weight and a delivery set.
Put some products in a pack. It returns a wizard to choose the package type.
This wizard also allows to input the shipping weight.
It always defaulted to 0, instead of the sum of the weight of the products.
Due to ff7df19bd3, default_stock_quant_package_id is in context so
_default_shipping_weight would try to use stock_quant_package.shipping_weight,
which is always set to 0 at that point.
Note that furthermore, the active_id might not be a picking (e.g. a SO).
Therefore we always make the computation, with the default_picking_id in context
opw 2006566
closesodoo/odoo#33930
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Create a journal J1 of a given type T with no currency.
Create a journal J2 of type T with a currency Y, default currency of company C.
Invoices of type T are created with journal J1 by default.
However, if the currency Y is explicitly set in the context, it will be created
with journal J2, even in company C. In that case J2 will be selected,
because the currency is explicitly set in context.
Now suppose we have a journal J3 of type T with a currency Y', different from
the currency of company C.
Give a lower sequence index to J3 than to J1.
Create an invoice with no currency in context.
Then J3 will be selected despite not being on the correct currency, because
no currency condition has been put in the domain.
We solve these two bugs by always adding the clause in the domain,
and adding that the currency can not be set in the case of the company currency.
opw 2002748
closesodoo/odoo#33795
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Before this commit, aboutus contactus and homepage would be flag as noupdate.
If not modified, those view would not get modification on module update, which
is not logic.
Now, those view will benefit from any update. It makes even more sense since
multi-website, as those views will never get modified directly (it will COW).
closesodoo/odoo#33919
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Create two pickings, add them to a batch.
Set a quantity less than the order to done on each.
Confirm and set to done. A wizard asks if a backorder should be created.
If confirmed, the first picking is done with a backorder but not the second.
Since the method is in api.multi, we can simply get all pickings.
opw 2004727
closesodoo/odoo#33902
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
- Create 2 products A & B set as:
Service Invoicing Policy: Milestones (manually set quantities on order)
Service Tracking: Create a new project but no task
- Create a SO with A & B, validate
- Set a delivered quantity for both products
- Go to the project overview
Only the delivered quantity of a single SO line is retrieved in the 'To
invoice'.
It occurs because only a single SO line is linked to the project, while
both are expected to be linked to it.
opw-2003097
closesodoo/odoo#33815
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In Odoo 11.0, fb5015d5fc fixed some flows related to prices. By doing that,
the `t-options` dict was set on a variable to avoid code duplication.
But starting from Odoo 12.0, setting a variable on `t-options` attribute seems
to do nothing and is ignored.
This commit fix it by setting the price rather than the options on a variable.
Fixes#33451closesodoo/odoo#33900
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
- Have two crm teams with the same team leader, and without team members
(team1, team2 as instance).
- Create a new lead, add as Salesperson the team leader, and as Sales
team the second previously created team (team2).
- Save the new lead.
Before this commit, when we save the lead, the sales team will change,
to set the default sales team for the chosen Salesperson, in this case
team1.
opw-2005924
closesodoo/odoo#33898
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Steps to reproduce the bug:
- Create a new Bank Account A available in the POS
- Set A as a payment method in the pos.config
- Create a new session and sell a product P for 100€
- Make the payment with A
- Close the session and validate the entries
- Check that a new statement in A has been created with a starting
balance = 0€ and an ending balance = 100€
- Create a new session and close the session
Bug:
A new statement for A had been created with a starting balance = 0€
instead of 100€ (the ending balance of the previous session)
opw:1981984
closesodoo/odoo#33868
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Group by invoice, products: the untaxed total is correct,
while the (taxed) total is the sum of the lines divided by the number of lines.
On account.invoice.line, there is a price_subtotal_signed, which is the
price_subtotal (untaxed) in the company currency.
Unfortunately price_total_signed does not exist for price_total (untaxed).
As a result, we need to use the price_total on the invoice line,
and divide by the currency rate.
Unfortunately we cannot do it in the subquery because of the scope of the rate.
opw 2003185
closesodoo/odoo#33802
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
On a eCommerce page were there was no SEO optimization change:
- Customize > Activate "eCommerce categories"
- Customize > Activate "Colapsible category list"
- Promote > Optimize SEO > Change description > Save
Nothing happens.
Actually, an SQL error is raised because of the `ondelete='restrict'`
set at:
https://github.com/odoo/odoo/blob/897feb553e6ef75af9434cb77436b26abde3a761/odoo/addons/base/models/ir_ui_view.py#L212
In this case, we have the following structure:
```
View 1
|
---> View 2 (Website-specific)
|
---> View 3 (Website-specific)
```
For example:
```
Products
|
---> eCommerce Categories (Website-specific)
|
---> Collapsible Category List (Website-specific)
```
Since the inherited view (View 2) is website-specific, we duplicate it
and try to unlink it. However, this view has children, which raises the
error.
To solve the issue, we re-attach the children of the inherited view to
its copy. In a realistic situation, the children of a website-specific
view should also be website-specific, so there is no need to apply the
'copy or re-attach' logic recursively.
We end up with:
```
View 1 (Website-specific, duplicated)
|
---> View 2 (Website-specific, duplicated)
|
---> View 3 (Website-specific)
```
opw-1997946
closesodoo/odoo#33787
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The bottom of event is shared between all event page and all events.
This is especially misleading when "website menu" with
website_event_track is activated on the event, then we will have several
pages such as "Introduction" / "Location" and depending on if we drop a
widget some pixel too high or two low, it will be only on the current
page or on all events.
With this changeset, when editing there is an information block saying
what part is on all page.
opw-2002163
closes#33857
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Before this commit, the param contact_address was not sent to the service. However, the service need it to correctly send the letter if the format is wrong.
OPW-1981168
closesodoo/odoo#33855
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
Have the group analytic tags ON
Have the order.line o2m list non editable
Make a SO, make a line with a tag
Confirm the SO
Click on the line
in the modal, click on the analytic tag
Before this commit, there was a traceback because the color was never fetched
This was because the o2m list view did not fetch the color_field
After this commit, there is no traceback, and displaying
as well as changing the color works as expected
OPW 2002456
closesodoo/odoo#33846
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Steps to reproduce the bug:
- Create a product P with price=100€
- Configure payment aquier Paypal with fees_int_fixed = 1€ and fees_int_var = 1%
- Set Paypal to be available in the website
- Go to the web shop and add P in the cart
- Choose to pay with Paypal
Bug:
The amout to pay was 102.02€ instead of 102.01€
Before the fix, the fees was computed as followed:
fees = (percentage / 100.0 * amount + fixed) / (1 - percentage / 100.0)
Where fees_dom_fixed = fixed and fees_int_var = percentage
With this computation, the percentage was applied twice.
If for example, we had fixed = 0 then
fees = (percentage / 100.0 * amount) / (1 - percentage / 100.0)
In this case, it's easy to see that the percentage is applied twice.
opw:1981784
closesodoo/odoo#33830
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
- Create a MO for '[FURN_8855] Drawer'
- Consume 1 unit of '[FURN_2100] Drawer Black', but DO NOT consume
anything for '[FURN_5623] Drawer Case Black'.
- Complete the MO, then Unlock it
- Edit the '[FURN_5623] Drawer Case Black' line
It is not possible to add a line.
This is expected from 9e77ce2edc, but we still want to be able
to consume some quantity.
Instead of canceling the move lines without any quantity consumed, we
set it to done.
opw-1986919
closesodoo/odoo#33820
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In the kanban views, cards have a fixed size (here it is overriden as 450px).
All internal elements use col-x Bootstrap classes, with have flex 0 0 x/12.
Note that 0 0 correspond to flex-grow and flex-shrink, so the sizes are fixed.
It follows that any long translation or number will overflow badly.
Hover this overflow is, in terms of usability, less worse hiding the overflow
or even scrollbars.
So nothing is flexy, but too avoid this issue as much as possible,
we give more space to the right side, since the left side only shows a button.
opw 2001951
closesodoo/odoo#33818
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
When the `purchase.order` is added as an embedded tree view on a model
without a `state` field, a crash occurs.
The existing condition doesn't make sense on a PO (while it would make
sense on a PO line), so we simply remove it. Since the condition implied
that the field `invoice_status` was always hidden, we keep it that way.
opw-2005768
closesodoo/odoo#33827
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>