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
This prevents an access right error when saving a sales order after changing
its delivery method. The latter updates sale order lines by an onchange, which
causes the unexpected update on the field.
On a list of product, the attribue list (can be activated via the
customize menu) only contains the attribute pertaining to current
filtered product list.
Also, all the values of a the attribute are showed, even if choosing a
value will result in an empty product list.
It could lead to usability issue in some situations.
e.g
1) the current showed products number 2 with an attribute color,
2) we select "Red" which isn't a value these 2 products are declined in,
3) the current show products is now empty, but we can't un-select the
"Red" color since "Color" is not an attribute of any of those 0
product.
This commit solves this issue by displaying the currently selected
attributes if no product is displayed.
opw-653594
in some cases, it is possible to call the method
channel_join_and_getinfo when the user is already in the channel. This
may (and did) cause issues in some unrelated code. This commit
guarantees that this codepath will avoir creating another entry.
Another way to achieve this result is by adding a constraint on the
model mail.channel.partner, but this is in 9.0, so we must be careful.
Every time the user updates a message, the js code triggered a rpc to
refetch messages in the current channel. This is useless, since the new
messages have been fetched anyway by the bus.
The 'string' attribute for both needaction_partner_ids and needaction fields
was 'Need Action'. This was problematic for example in the custom filters of the
searchview as it looked like the same field was appearing twice.
Update mail.pot as well.
A PlannerDialog does not extend Dialog for historical and graphical
reasons. Thus sometime a logic in Dialog is missed in a PlannerDialog
whilst it is useful.
In this instance, when doing an action from the planner which destroyed
it, the modal backdrop was not removed by bootstrap. Bootstrap does this
when the modal 'hide' function is called.
opw-653734
Issue: if the currency is before the value and we try to add a number at the begin of the value, the number is not saved (because the browser insert the number before the span).
Add a onEnableEditableArea in the rte to change the contenteditable value and the default behavior.