A long-standing issue with data files is that lxml (libxml2) has
trouble reporting useful errors, often going no further than "the file
is not valid" (libxml2 apparently has issues reporting useful errors
within non-trivial <choice>, which Odoo's data file schema makes
extensive use of) e.g. if a data file has some stray text in an
unexpected place (in this case, after a `</field>` tag in a
`<record>`), libxml2 will report:
ERROR:RELAXNGV:RELAXNG_ERR_EXTRACONTENT: Element odoo has extra content: data
Jing (the reference implementation) provides significantly better
error reporting:
error: text not allowed here; expected the element end-tag or element "field"
It's in java which is inconvenient and expensive for baseline
validation (and as a hard dependency), but there's now a "jingtrang"
package which bundles the relevant jars & invocation on
pypi (https://pypi.org/project/jingtrang/), making for a convenient
optional dependency for better development experience.
closesodoo/odoo#33666
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Before this commit:
Print button was hidden in traceability report from commit: 9378552a89
After this commit:
Print button is visible.
Removed a css rule which caused horizontal scroll in pdf report.
Also removed unnecessary and redundant styles.
Task-1974338
Closes#33289
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
While generating the traceability report for the first time,
if the assets are not in cache, the report will be having simple markup with
no styles applied. To workaround this issue, we manually commit the writes
in the `ir.attachment` table. It is done thanks to a key in the context.
Task-1974338
Task 1843603
* src_model is redundant with binding_model_id
* multi -> binding_view_types (if empty => all views) (maybe should be
empty by default yo?)
* in convert, type => rec.get(type) but no @type possible on <act_window>...
* removed deprecated auto_refresh & auto_search (not used anywhere (?))
closesodoo/odoo#24738
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Purpose: link workcenters that can do the same job together.
Planning a workorder will be done by choosing, among the similar
workcenters, the one that will finish the production the soonest.
This commit adds a new many2many field on the mrp.workcenter
model. Planning the workorders will:
1. Loop on the operation's workcenter and all the alternative ones.
2. Compute the first available work slot for each of those workcenters.
3. Choose the soonest finished slot
Furthermore, planning workorder is done thanks to the resource module.
Each workorder is saved on its own workcenter calendar by a resource.calendar.leaves
The two date fields are thus computed from the leave date.
Task : 1892819
closesodoo/odoo#33018
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
The field user_id on resource.resource is optional but the access rules
on resource.calendar.leaves request that field set. Which means a user
can only see his own leaves but not the ones of a machine's calendar for.
instance
This commit relax those rules to give access to the user's leaves and the
one not assigned to a specific user
Task : 1892819
Before this commit,
Defining action using <a type="action"> outside of normal views(like qweb view)
css style does not apply to it because missing the href tag. by defining href
tag on a link will first open home screen then perform do_action thus it will do
flickering.
After this commit,
Prevent event default behaviour so it will stop flickering and restore css style
for action by defining href tag on it.
closesodoo/odoo#33703
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Task 1843603
* src_model is redundant with binding_model_id
* multi -> binding_view_types (if empty => all views) (maybe should be
empty by default yo?)
* in convert, type => rec.get(type) but no @type possible on <act_window>...
* removed deprecated auto_refresh & auto_search (not used anywhere (?))
closesodoo/odoo#24738
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Purpose: link workcenters that can do the same job together.
Planning a workorder will be done by choosing, among the similar
workcenters, the one that will finish the production the soonest.
This commit adds a new many2many field on the mrp.workcenter
model. Planning the workorders will:
1. Loop on the operation's workcenter and all the alternative ones.
2. Compute the first available work slot for each of those workcenters.
3. Choose the soonest finished slot
Furthermore, planning workorder is done thanks to the resource module.
Each workorder is saved on its own workcenter calendar by a resource.calendar.leaves
The two date fields are thus computed from the leave date.
Task : 1892819
closesodoo/odoo#33018
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
The field user_id on resource.resource is optional but the access rules
on resource.calendar.leaves request that field set. Which means a user
can only see his own leaves but not the ones of a machine's calendar for.
instance
This commit relax those rules to give access to the user's leaves and the
one not assigned to a specific user
Task : 1892819
After this commit, lead portal layout alignment looks the same as another portal
layouts like an opportunity.
task-1946124
closes#33610
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
we have changed the product name from Sale Description to
Description For Customers considering the same logic used in
other product namings and to make it more readable.
task-1987076
closesodoo/odoo#33554
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
When user will modify something in settings, there will be a message
shown that will tell the user that he/she has unsaved changes.
task-1917637
closesodoo/odoo#31900
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Co-authored-by: Mohammed Shekha <msh@openerp.com>
Since a5b6f31, an attribute allowed_company_ids is set on request when
calling the module button_immediate_install method.
This method is called during the test TestAllL10n which does not have a
bound request and makes it fail.
With this commit, the attribute is set only if request is bound.
By the way, a small improvement is added in the test.
Before this commit, when the test was failing because of the
button_immediate_install, it was immediately stopped.
The same problem was arising during the test method, it was stopped at
the first failure.
As this test is run as a nightly test, one have to wait the next day to
discover the next problem.
With this commit, the exceptions are catched during the l10n_ modules
installation and a simple error line is written in the logs. That way,
the runbot will still detect the error.
Also, the main test method that installs all the chart of accounts
splits those install into subtests. This prevent the method to stop at
first failure.
closesodoo/odoo#33654
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Move the SO part in a new module
Add the functionality to PO
Task 1945220
closesodoo/odoo#33282
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Before this commit when user want to add multiple record at that time
they only allow to add one record at a time.
After this commit user can add multiple record from search more wizard.
Added function _getSearchCreatePopupOptions so that it can be overridden
in FieldMany2ManyTags, options for FieldMany2ManyTags will differ, like
FieldMany2ManyTags SearchCreateDailog should have multi record selection,
Many2ManyTags' SelectCreateDialog should display record other than selected
This commit is related to task id: 1945912
closesodoo/odoo#32453
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Co-authored-by: Mohammed Shekha <msh@openerp.com>
Commit 5ef46664a2 share code between produce
wizard and workorder. Field final_lot_id is now commonly used but not very
well named. This commit rename it into finished_lot_id as it represent the
lot number of the finished product.
Task : 1998064
closesodoo/odoo#32761
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
When the sales count on the product form doesn't take into account the
sales done in point of sale.
So we've extend the list of done states to take the ones from point of
sale.
TASK-ID: 1985493
closesodoo/odoo#33422
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
* We want to limit the obtrusiveness of the mechanism & at the same
time show the warning immediately, so send the warning through a
private channel between the superuser and the admin user rather than
the regular mail.thread's message_post which would likely send the
warning though email.
* Ignore issue when the request comes from a "private" IP (likely a
local dev box where it doesn't matter).
* Only check for "admin" on the admin user: passwords created manually
are already length-checked (required) and strength-checked (visual
indicator).
Task 31122
Supersedes #22428closesodoo/odoo#33254
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Impacted modules: hr_timesheet, project, sale_timesheet and sale_timesheet_purchase
Currently, the link between the Analytic Account and the Project is non existant if
Timesheets is not installed, and we track any cost linked to the AA set on the Project,
but we only track the revenues linked to Timesheets.
The purpose of this merge is to allow simple project (no timesheet installed or
activated) to track their costs and revenues. This is done through the analytic account; indeed, all
purchase order, sales order, invoices and vendor bills can generate analytic entries. It could
then be interessting for user to see the costs and revenues for a project.
We decided to redirect user from the project dashboard to the "costs/revenues" action of the analytic
account itself, or (if timesheet is allowed on project) to the overview.
This commit also integrates purchase orders on the project overview.
Implementation:
This PR aims to improve the link between Project and Analytic Accounting, by several actions:
* Move all the analytic account business to project
* Add an Other Revenues field in Project Overview, which represent the positive analytic entries
from the AA set on the Project AND that are not linked
to a Timesheet
* Add two smart buttons on Project Overview to Purchase Orders and Vendor Bill of the project's AA
* Add the results (Sales Orders and Timesheets) linked to the project's AA in the respective smart
buttons of Project Overview
* Add a "Profitability" link on the Kanban card of the Project bringing to the Costs & Revenues of
the AA set on the Project to allow profitability tracking when there are no Timesheets.
To do so, it was required to move back the analytic dependency from hr_timesheet to project, like
before 3dd3e26483 (but without the inheritS).
Limitation:
This will only make sense for project having a "one-to-one" relation with analytic account. If 2 projects
are linked to the same AA, we have no way to deduce from which project the cost entry is linked.
Task-1975022
closesodoo/odoo#33237
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
Have two pos config opened, with at least one connected to a POS box with a printer
Do some sales on both
Click on the printer icon in the pos UI to print today's sales
Before this commit, the ticket that was printed contained sales for
both point of sales
After this commit, it only contains sales of the point of sale from which
the print request has been sent
OPW 1958885
Before this commmit everyone could print the sale datails for all day
for the current PoS Config from the UI.
After this commit cashiers can only print the current session,
disregarding the date.
TASK-ID: 1978713
closesodoo/odoo#33036
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
In order to improve the tracking of costs and revenues on projects,
this commit adds a "Profitability" link on the Kanban card of the
Project which appears for analytic accounting users when the
"Timesheets" / "Overview" link does not appear.
This link brings to the tree view of the lines from the analytic
account linked to the project.
Task-1975022
Add two smart buttons in project overview : purchase orders and vendor
bills, linking purchases and bills pointing to the project's analytic
account.
Task-1975022
When we remove the inheritS between project and analytic account, we move the
analytic_accound_id field in timesheet because it was the only use case for
a project to be linked to an analytic account.
This commit prepares new cost origin for a project (other that timesheet).
Register costs on project will required an analytic account to keep analytic
costs tracking. The analytic account management is now moved to project, like
it was in 10.0, but without the inheritS.
Task-1911581
In the SearchPanel there was a separation between selecting and
unfolding a category with children.
With this commit, when the user click to select a parent category the
children are also folded/unfolded.
This reduce the number of actions needed to reach a sub-category.
Task ID: 1917277
closesodoo/odoo#32660
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
SearchPanel widget in kanban views has been introduced in commit
https://github.com/odoo/odoo/pull/30517/commits/25c9355c02485e85914430188f3281246fc54cda.
But this feature was disabled for mobile.
This commit removes unneeded differentiation between desktop and mobile
for the SearchPanel.
It also adapt related tests to reflect this change.
Task ID: 1917277
The action buttons in the document viewer were badly aligned on small
screens, and specifically when moving to multiple lines to fit on the
viewport.
This commit adjusts the positionning and margins between those buttons
to stay consistent on every screens size (smallest to biggest).
Task ID: 1917277
Widget class indirectly inherits from ParentedMixin (through
PropertiesMixin).
The Widget's children are destroyed in both the ParentedMixin and the
Widget's own destroy() method.
This commit prevents from trying to destroy already destroyed children
and specifically from looping again on those children (resulting into a
minor performance improvement).
closesodoo/odoo#32174
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
This commit fix non-compliant JS code syntax.
Currently Odoo JavaScript code base supports ECMAScript <= 5 only
Using ECMAScript 6 (2015) feature break compatibility with
Internet Explorer and Android KitKat (4.4)
Ref: https://eslint.org/docs/rules/object-shorthandclosesodoo/odoo#33605
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
As most of the tests are using demo data, a check is performed to verify
that they are loaded.
A best practice is to write tests that does not depend on demo data but
with this check, it's not possible to launch them without demo data.
With this commit, the check is removed, allowing to launch test even
without demo data loaded.
closesodoo/odoo#33531
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
The pdf_viewer widget fails to load file and hence shows error.
This is due to the wrong controller called(wrong URI passed),
while loading a file using pdfjs.
For files other than images, /web/content controller should
be called since since odoo/odoo#31811.
This is similar to the enterprise fix 793c76298a2b301a2
task-1932190
closesodoo/odoo#33354
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>