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.
Change the external_layout_header, with the use of
span tag and display inline-block property instead
of div tag, because without using it, the address
under-line occupied the whole col-xs-6 block, for
small address also. By using display inline-block
the length of address underline will same as length
of address. And col-xs-6 will increase the address
space for log address lines.
After commit 6739e10, we have two widgets to be able to choose
two dates according to the operator (e.g. between).
So, the second widget is not always available.
'toString' generates the string to put in the facet and should
convert the second date only if the second widget exists.
Before this commit, it was not possible to make search filters with
only one date because we try to get value of widget that does not exist.
An issue occurs in the following use case:
- Create an automated action
- Choose a Related Document Model
- Select records to filter (click on "Select Records")
- Do not save, but cancel instead
- Create an automated action once again
The filter domain keeps the same value than previously, forcing the user
to refresh the page to get rid of it.
opw-683214
Commit 9b69184ff. removed field 'state' of model 'project.project', and
converts domains using it to use field 'active' instead. However, the domain
of the many2one field in the task form view hasn't been correctly converted
(['state', 'not in' , ['closed', 'cancelled']] should be ['active', '=', True]).
The db_name parameter passed in command-line (-d) or in configuration file,
supports a list of database names separated by commas, in order to
preload them. The WorkerCron processes will also respect this list and only
connect to the specified database(s).
As of Odoo 9 the server also automatically initializes a new database
if the one passed via `db_name` does not exist or is not initialized.
This code did not properly handle multiple comma-separated value,
and created an unitialized database named `a,b` when db_name was set
to `a,b`.
Fixes#13079Closes#13094
At the bottom of each blog post there is a link to the next blog post
of the blog. If the current blog post is the last, the next blog post
which appears is the first one, which is ok. However, if there is only
one blog post in the blog, when viewing it, the next blog post which
was proposed was the current one (now nothing is proposed as next blog
post anymore).