A string attribute value can be translated,
and therefore the inherit broken if the term is indeed
translated.
This was the case for this term "Tracked link" in the Dutch
language, the "Tracked link" term of the inherited view has
been translated, and the inherit was therefore broken as
it couldn't find the given node in the base view due to the
fact this term was translated.
opw-683128
When the schema of a view change (e.g. drop of column), the "CREATE OR REPLACE"
will not be enough and dropping the view is required.
Fixes#12754Closes#12756
Odoo S.A. invoices only 'non-share' (internal) users; the default
filter on the user list view does the same thing. It makes little
sense for the user counter to count all share users.
Return key events don't get redispatched and even if they did, it
wouldn't work because 'fake' keypress events don't trigger native HTML
event handlers.
This should be safe because Return cannot start a valid barcode.
We hide the quants_grp if the stock.move is in the draft state. In this
case normally the value of the string_availability_info will be empty
anyway, because the _get_string_qty_information function skips moves in
the draft state.
This is especially useful on small displays, because on there the string
attribute of the field won't be shown, so you just end up with a
Reserved heading with nothing underneath it.
If two addons path have a common part in the folder name (e.g. `/home/alice/dev`
and `/home/alice/devodoo`), the `get_module_from_path` method may match the
wrong folder.
A file `/home/alice/devodoo/bob/models.py` would wrongly match `/home/alice/dev`
path (due to the lack of separator) and the returned module would be `odoo`
(`"odoo/bob/models.py".split('/')[0]`).
In such scenario, the translations of files (code, static folder, report) would
not be included in the exported translation file.
Force the module path to ends with a folder separator to avoid wrong matching.
Closes#12757
When launching a server with two similar addons path, e.g.:
- /home/alice/dev
- /home/alice/devodoo
launching the server in dev mode may crash due to the poor matching using
`path.startswith(...)` method which may make `/home/alice/devodoo/bob/main.xml`
match in addons folder `/home/alice/dev` and with a non-exitant local path
`odoo/bob/main.xml`.
Instead of relying on the name, use the `os.path.commonprefix()` method to match
on real paths and avoid partial matching.
commonprefix will only work if the folder name ends with the appropriate
separator (which is not guarantee for a user provided addons-path) so force a
trailing `/` using os.path.join(..., '')`.
Closes#12359
Steps:
-Go into Slides (into Website Admin main menu)
-Find the Slide "Odoo Explained"
-Change the channel to "Employee Channel"
-Disconnect or open a private session
-Go to the menu "Presentations" on website
-Click on "Public channel"
Bug:
Error 403
Fix:
When changing the channel_id of a slide, the custom_slide_id of all
the channels using this slide as "Slide to Promote" has to change
in False to avoid access rights errors.
opw:682063
Steps to reproduce:
1. Activate the following options
** Settings > Warehouse > Products > Manage different units of measure for products
** Settings > Accounting > Accounting & Finance > Analytic accouting
2. Desactivate the following option
** Settings > Accounting > Analytic accouting > Sale > Use multiple analytic accounts on sales
3. Create a Sale order
** Add 2 qty of the product iMac
** Add in quote the delivery method "Normal Delivery Charges" and set 2 qty
** Set an analytic account under Contract/Analytic
** Set the field Create Invoice to "On delivery Order"
4. Deliver only 1 quantity of the iMac and then create the invoice
5. Deliver the last quantity of the iMac and then create the invoice
Behavior before the fix:
The first invoice contains 2 qty of the Transport
The second invoice contains 1 qty of the Transport, has no analytic account set, has no UOM set
Behavior after the fix:
The first invoice contains 2 qty of the Transport
The second invoice contains 0 qty of the Transport because it has already been invoiced
Closed#12644
opw:682284
When a procurement needs to create purchase order lines due to
reordering rules and if an empty PO exists for the vendor of the
product, the creation of the PO line will crash since there is
no scheduled date on the PO.
opw-675706
A mechanism already exists to select the appropriate currency and was
introduced in commit 1b04b1d. However, it requires a purchase journal in
the currency of the PO to work.
Note that this commit is likely to not work correctly since the method
`_onchange_journal_id` is triggered after `_default_currency`.
Therefore, even if the currency is correctly set in `_default_currency`,
it is changed to the journal currency right after.
This reverts commit 7f1d7c1cce.
Before the commit, the dt was forced to 160px of width by bootstrap.
Now we allow this size to be bigger, to avoid glitch in UI.
When you was inserted a long keyword, the 'delete' button was in the
overflow hidden part and so was undeletable.
We set min-width by default to 160px to keep the same behaviour by default.
And see 2 columns, but if a keyword it too long, we display it, and 'break'
the column style.
This commit closes#12703
So @sig-odoo is not the only one to revert his own fixes :-)
Anyway, we want to be able to get statistics about archived applications
as well.
This reverts commit 7e0e27ea79.
After upgrading the `hr_attendance` module,
it was no longer possible to use the
`Attendance Error Report` link in the `More`
menu of employees.
This is because there were two binding actions
added in the code under the samename
(`Attendance Error Report`):
- `hr_attendance_error_values`
- `action_report_hrattendanceerror`
The first launch a wizard which will print the report
after filling the required data,
The second tries to directly print the report, but it
fails because required data (from the wizard) is missing.
Before update, it's the first binding action that was displayed.
After update, it was the second, which failed.
We solve this issue by changing the way the report is
created through the data, by not using a `<report/>` tag,
this one creating automatically the action binding.
Instead, we use a classic `<record/>` tag, which
doesn't create automatically the action binding.
opw-682720
Steps to reproduce:
-Set your company in USD
-Create a SaleOrder with a pricelist in EUR
-Create an expense in USD, with the analytic account of the SO
-Confirm the expense and post journal entries.
Bug:
The unit price of the new SO line was wrong: it was stil in USD as in
the expense.
Expected behavior:
The price unit must be converted in EUR
opw:682378
When the lead step is activated (`group_use_lead` is true), 2 dinstinct
tree views can be selected to display the opportunities.
Indeed, when the action "Your Pipeline" is selected, the tree view
`crm_case_tree_view_oppor` is displayed thanks to the method
`action_your_pipeline`. However, when the page is reloaded or the tree
view is saved in the custom dashboard, the tree view
`crm_case_tree_view_leads` is selected instead.
The fix is to specify explicitly in the action which view should be
chosen, accordingly to what is done in method `action_your_pipeline`.
opw-681488
opw-681734
In case of a move where source location = destination location, the result of
SUM(quantity) would be 0 and ending up with a division by zero.
Closes#12247Closes#12423
The view yields one line per stock move, with a price/unit on each line.
It doesn't make sense to sum price/units, the avg will be only meaningful when
grouping per product but it's correct in the default state.
Closes#11309
In v8, we had a BoM price report in xsl format which was removed in v9.
As it is still needed, we added a report in the new qweb format, but this
time it is on the BoM instead of the product variant.
It also makes sense to have a similar report for v10 as the cost structure report
on the mo is for the real cost and not the standard cost.
Removed assertion statement that was making a useless browse on account.move. This single patch is enough to divide by 4 the time of preprocessing a bank statement when opening its reconciliation widget.
That removed assertion is now a supposed prerequisite when calling the function and should be tested first (on batch of records).
When using the abbreviated month in the language
date format (`%b`),
e.g. `%d %b %Y`
in some languages, the parsing of the date
from this format to the database format (YYYY-mm-dd)
failed because of a dot `.` added from time to time
to the end of the abbreviated name
e.g., in French, `5 juil. 2016`
This is a bug of `moment.js` < 2.13.0,
handling badly this dot.
This is solved from `moment.js` 2.13.0,
thanks to the below revision
moment/moment@41fdb58572moment/moment#3078
Unfortunately, we cannot update this library to its latest
release in stable release of Odoo (e.g. 9.0),
as this is seen as an unstable change
(if some API changes occured in the given library)
Instead, if the parsing of the date fails with the
strict mode (meaning the date must respect the format
exactly), we perform a second pass without the strict mode,
so this dot will be ignored,
and the date can be correctly parsed.
The issue can be reproduced by loading the French language,
and setting `%d %b %Y` as date format, and then performing
an advanced search on a date field. The value of the date
in the advanced search will be empty without this revision
(for the months having more than 4 chars,
other than `mars`, `mai`, `juin`, `aout`).
Fixes#11854
opw-682534
It is possible (in very rare cases) on rereservation that the new reservation will trigger other stock moves
than the first reservation. In order to be sure to send the correct stock moves involved to done, it is better
to do the rereservation before the splitting of the moves on the total picking.
Also rereserve is optimized as it should only reserve for what is given by the pack operations,
as the backorder will be reserved later on anyways.
We don't mount /boot in fstab to prevent systemd-udev looking for
corresponding kernel modules in /lib/modules. We need to do this
because the modified kernel-qemu image we use for emulation is usually
not 100% the same version as in the Raspbian image. Therefore
systemd-udev won't be able to find the 'correct' kernel modules in
/lib/modules.
This causes issues when the raspberrypi-kernel package is updated
however. apt will update /lib/modules and will write the new
kernel{7,}.img files to /boot. Before this patch /boot was just a
directory on /dev/sda2, not the 'real' /boot which is on /dev/sda1. So
you'd end up with old, not updated kernel images but new, updated
kernel modules in /lib/modules.
This mounts /boot after the system booted. /boot gets mapped to
/dev/sda1 by /etc/udev/rules.d/90-qemu.rules.
Fixes#12650
opw-682320