In check_writing report, amount is the content of the field amount_to_text that
we can not guarantee has been filled (done in onchange so could be avoided, also
for other languages, etc.)
Instead of potentially failing, double check amount is filled.
cf https://www.odoo.com/groups/59/14976615
In the `product.template` model,
when searching products within a category that doesn't exist,
all products were returned, while none should be returned.
For instance,
In Sales > Products,
In the search input, search with internal category:
"A category that doesn't exist",
all products were returned.
opw-649548
The variants on a product in the ecommerce can appear:
- naturally, not a list, colored square for color, ...
- in a list of radio button.
To have the second kind, we need to enable the "List View of Variants"
customize option.
One part of the code was not the same which cause an issue when saving
the image of the variant, it was saved on the product.template instead.
This commit add an "update_product_image" function which is now called
in both scenario.
first half of:
opw-654279
forward port note: in 9.0 website/image -> web/image
These onchanges were needless since it was already done by the
BufferedDataSet when we use alter_ids to add/remove ids/virtual ids from
the recordset.
The onchanges this commit remove were introduced with 6b907bb4d in
juliet 2012 whilst the onchange in the BufferedDataSet when using
dataset alter_ids was with dd747c096 in october 2012.
closes#8273fixes#7595
opw-644706
Partial backport of master (-> v9) commit 059230512.
for the issue when removing an invoice line from an account.invoice,
three onchange where triggered:
- ListView account.invoice.line unlink the line id from its dataset,
[[first onchange]]
-> the line id is removed from the dataset which trigger an onchange
after this is done (and the onchange is finished), the following
onchange happen:
-- remove each record of the Collection of the ListView
-> this remove the id of these record from the ListView List dataset
[[second onchange]]
-> this trigger an onchange albeit the dataset is not changed
(since it was already removed before the first onchange)
-> this trigger an onchange on the one2many_list of the ListView
which has the same dataset as the ListView
[[third onchange]]
-> so an onchange is called yet again.
this commit removes the second onchange in this case where we remove ids
already removed from the dataset.
closes#8273fixes#7595
opw-644706
Setting a value for the `date` field on a partner of
an employee leaded to a crash in the employees
kanban view.
This last login field on the employee kanban
had as goal to display the last connection hour
of each employee, if the last
login happened within the current day.
Since 7.0, the last login date field on `res.users`
has been renamed from `date` to `login_date`,
and became a date instead of a datetime.
Nevertheless, the `last_login` related field
on `hr.employee` remained on the field `date`,
which is set on the `res.partner` model,
but is not used as a connection date field. The
related should have been updated to use
`res.users`.`login_date`, probably, but it
wasn't the case.
From saas-6, the `date` field is no longer available
on the `res.partner` form.
We can therefore safely assume that this feature
is no longer used nor needed, as:
- It should display the last hour of connection within a day
- but it uses the wrong date field
- and it uses a field type for which the hour is not stored (date).
- even by updating the related to use `login_date`,
it would still be a field where the hour is not stored.
opw-654313
'color' is now a kind of magic field for the many2many tags widget, it
should not be used for something else.
This was half-fixed in 9.0 with f847701 and this commit solves it
properly.
opw-653124
<% are automatically escaped as soon as the wysiwyg tool
is used to edit the template.
The wysiwyg tool is not compatible with Jinja, and
it isn't expected to be.
To avoid to have this problem everytime when
editing the portal email templates, we use
a Jinja syntax compatible with the wysiwyg,
as a workaround.
opw-654223
Stock user should be able to create products. Indeed when targetting small
businesses, restricting the right to create products limitates the use of
the inventory app. It is possible to further restrict access to the product
model using record rules for big companies that have a lot of users and
managers, and where creating product should be limited.
Several fields are not supposed to be seen by portal users
on the quotation form.
This revision removes the fields that portal users are
not supposed to see on their quotations, or the one
for which they do not have the right access for.
opw-654007
When sending the quotation email,
if the portal is enabled, as well as the signup of external users,
the action `action_mail_redirect` was used to redirect
the user at the right place, on the right form.
This action no longer exists in Odoo 9.0. This has been
replaced by the controller `/mail/view`.
opw-654007
When a user signs up, when the according option is
enabled in the General Settings
`Allow external users to sign up`
Use the request lang (the partner browser lang) to
sign up only if this language is installed
in the database.
opw-654007
In the following situation :
we click on an element inside a row (not the last row) which will:
-> open an alert, confirm or prompt dialog
-> remove the row containing the element
IE Edge would enter in a odd state where the focus is not given back to
the page, and clicking doesn't work anymore.
This fix solves this by detecting this situation and then focusing on an
input field which make IE Edge stop being crazy.
opw-653282
jsfiddle showing the issue: http://jsfiddle.net/ts8bsLLg/4/
jsfiddle showing a solution: http://jsfiddle.net/ts8bsLLg/6/
bug report on microsoft:
https://connect.microsoft.com/IE/feedbackdetail/view/1988284
note: applied in 9.0 community, 9.0 enterprise
Goal : Don't display the internal reference from one of the product template
as it was currently the case, because it was a related field to a one2many.
Here, we use the same behavior as for weight,volume or standard price fields.
If only 1 variant, i.e. no variant used, take the default_code from the template
If more than 1 variant, do not display anything.
When importing a module, if an error was raised
during the import, the traceback wasn't displayed
anywhere, making harder the debugging.
While it make sense to not display the entire traceback
to the user, in the web client, this is useful to
diplay the traceback in the logs, for debugging purposes.
opw-653882
Searching on `log_ids` field is slow when there is a lot of users.
Count the number of active/pending users directly in sql.
Only show the last 10 pending users. Add a link to the full list view.
This partially reverts commit e5d5737dde.
Changes in the database structure is not allowed in stable release.
Therefore, only the display of this configuration should be moved.
The incoterms features (and group) are available upon the
installation of the `sale_stock` module.
The configuration to enable this feature should therefore
be in the Sales configuration only when this module is installed.
Otherwise, it just has no effect.
opw-653970
The current code when applying negative operator on an expression used
recursion which in extreme case is not best friend with python.
e.g: on instance with a lot of wharehouse, some simple action could lead
to a domain with lot of elements which could easiliy go over the python
maximum recursion limit.
This commit fixes this by replacing recursion with iteration.
We have a stack of negation flags and loop on each token of the domain
as follow :
- when we iterate on a leaf, it consumes the top negation flag,
- after a '!' operator, the top token negation is inversed,
- after an '&' or '|' operator, the top negation flag is duplicated on
the top of the stack.
closes#9433
opw-653802
For these function fields, bypassing the ORM, using a SQL query,
improves the execution time by 100 for a set of 80 timesheets
in a database with
- 250K `hr.analytic.timesheet`
&
- 250K `hr.attendance`.
These function fields depends on a one2many field which use
the SQL view `hr_timesheet_sheet_sheet_day`.
When performing `sheet.period_ids`, two SQL requests are performed,
- the first just to know the ids in the sql view matching this sheet
- the second to read the fields `total_attendance` & `total_timesheet`
and the request is performed on the entire set of lines of this view
(~250K lines in the observed use case)
while, when replaced by this SQL request, only one request is performed,
on a restricted set of lines, speeding up significantly the computation
of these computed fields for smaller sets of sheets.
opw-653447
Including :
- sales and purchaes flows did not match the actual sales and purchase
applications due to last changes in v9. Those have been udpated.
- typos, wording, use of tense
- links: from 8.0 to 9.0, internal links
- and more stuff
Update pot file for stock is included in this commit, as this is a stable version.
If no seller is found, do not update unit price and taxes. Indeed, if the
user changes the quantity, it will reset the unit price and the taxes,
which is confusing.
opw-653094