An issue occurs in the following use case:
- Enable "Bring goods to output location before shipping (Pick + Ship)"
- Create a SO with 2 lines. 2 Deliveries are created, Pack and Ship.
- Go to "Procurement Exceptions", and cancel one of the 2 lines
- Go to the OUTgoing shipping, "Force Availability", and "Validate"
An error occurs: "Cannot unreserve a done move". The system tries to
unreserve a move which is actually cancelled.
Actually, it should not be necessary to unreserve this move, since no
quants were actually reserved in a first place. The fix ensures that, in
this situation, we don't try to unreserve a move with no quant reserved.
This should be safe to do it in all cases, but better be safe by adding
the condition `if 'no_state_change' in context` to impact only this
specific use case.
opw-685650
Containing
* migrate remaining code
* migrate server actions
* remove dead code
* fix some issues related to old api / new api migration
* update openerp imports and clean them a bit
* rename openerp nodes to odoo in xml files
Inspired from e2d16ea04a
When cancelling a voucher from a customer payment receipt,
the voucher lines linked to the deleted account move lines
have to be updated by clicking on button "unreconcile".
opw:683258
Since it is not possible to create a timesheet entry on a task without a project_id,
the timesheets page on the task form view will be hidden on such tasks.
This prevents the user from trying to create a timesheet entry on such a task and
receive a not so transparent message like: mandatory field is not set: [object with reference: account_id - account.id]
The `consolidation_label` attribute is replaced by `string`. This way,
the label is taken into account by the translation tools.
This is the modification of the documentation regarding the Enterprise
improvement.
opw-683601
Before rendering the radio button, the radio button must be unchecked
to ensure to take the last value checked.
Step to reproduce:
-From main menu, click on 'Contacts'
-Click on 'Create'
-Select 'Company' value on company_type field
-Save or not the contact
-Return in the main contact view (click on breadcrumbs)
-Click on 'Create'
Bug:
The default value on company_type field is 'Company'
but the fields that should be hidden are visible (example : parent_id field)
After the fix:
The value of company_type field is 'individual'
opw:684847
Before commit a8ee18e172, the paragraph alignment dropdown menu was
too large for its content, so it was ugly. After that commit, it became
too small for its content, which is even more ugly.
This fix sets the width of this specific dropdown so that its content
fills exactly in (as with original summernote).
You never saw this debug point. You never heard about the fact that someone
could have placed a debug point somewhere in the code. It is not what you think.
Nobody would do that. If one day you got this feeling it's probably Martin Trigaux
the responsible.
In the 'get_html' method, the report is using a custom model to render its html,
we should use its own 'render_html' method to generate the report. During the
module migration, we replaced
'report_model.render_html(cr, uid, ids, data=data, context=context)'
by
'report_model.render_html(data=data)'
The new API signature of 'get_html' is
@api.model
def get_html(self, docids, report_name, data=None):
That way, 'render_html' doesn't receive docids anymore when called. We should do instead
if report_model is not None:
return report_model.browse(docids).render_html(data=data)
As render_html is an api.multi method, this is all wrong too, because we'll send a
browse record with the custom report model to the render_html method, to use the
ids with 'self.ids' that are absolutely not corresponding to the report model but to
to the record model we want to print (an invoice for example).
In old API style we were sending a list of ids, but it's not correct to keep the same
behavior by sending a browse record with only the ids relevant. We have also to
change render_html method decorator to @api.model with a new signature
@api.model
def render_html(self, docids, data=None):
And replace the call to render_html by
if report_model is not None:
return report_model.render_html(docids, data=data)
In the case the report is printed from a wizard, this is sufficient because the ids
are taken from the active_ids in context, or in data.
In the case the report is printed from a simple action, we should replace the occurence
of 'self.ids' (which doesn't mean anything) to 'docids'
This fix doesn't solve the printing issues for the custom accounting reports, because
the method get_pdf has been reimplemented in the module account_reports.