Commit Graph
117975 Commits
Author SHA1 Message Date
Jerther 64190abec5 [FIX] web: display full error message
Add missing parenthesis, fixes ebc23b5
2017-08-09 09:53:26 +02:00
Sylvain GARANCHER c29ac80c11 [FIX] product: Avoid browsing on product.product when using product.template
Steps to reproduce the bug:

On an empty database, install the sale module
-Activate product variants : Sales > Settings > Check Products can have
several attributes, defining variants (Example: size, color,...)
-Activate advanced pricelists : Sales > Settings > Check Advanced pricing based
on formulas (discounts, margins, rounding)
-Activate the developer mode
-Go to the product.templates list : Sales > Products
-Go to the debug menu > Edit TreeView and add the price field in the view
-Go to the debug menu > Edit Action and add the value 'uom': 1 in the context field
-Search for a pricelist : Type the name of an existing pricelist, then go to the pricelists
proposal, open the list of proposed pricelists, and select the pricelist

Bug:

The wrong value was sometimes displayed in the price field. To be more exact, the displayed
value for each product.template was the price of the product.product that has the same id.
If a product.template has an id which doesn't exist in the product_product table,
this product disapears from the list.

opw:762663
2017-08-09 09:13:50 +02:00
Sylvain GARANCHER 10f6e145dd [FIX] product: The pricelist variable must be a recordset, not a list
Steps to reproduce the bug:

-On an empty database, install the sale module
-Activate product variants : Sales > Settings > Check Products can have several attributes, defining variants (Example: size, color,...)
-Activate advanced pricelists : Sales > Settings > Check Advanced pricing based on formulas (discounts, margins, rounding)
-Activate the developer mode
-Go to the product.templates list : Sales > Products
-Go to the debug menu > Edit TreeView and add the price field in the view
-Search for a pricelist : Type the name of an existing pricelist, then go to the pricelists proposal,
open the list of proposed pricelists, and select the pricelist

Bug:

A traceback was raised.

opw:762663
2017-08-09 09:13:50 +02:00
Adrien Dieudonne 99e38c04bf [FIX] test_main_flows: don't click behind modal
In the main_flow_tour, we edit a related record of a many2one in a
one2many. A modal is displayed and we make some changes. We
then click on 'Save' in the dialog. The next step is to add a new record
in the one2many, so we click on 'Add an item'. However, we didn't
wait for the modal to be closed before clicking, which is actually not
possible in practice (because of the modal backdrop).

This made the tour fail when run from the browser, since commit
c300e5e, which produces a redraw of the line containing the
many2one that has been edited.

This rev. ensures that we wait for the modal to be closed before
adding a second record.
2017-08-09 09:04:30 +02:00
Christophe Simonis 40a82cdfda [FIX] http: ensure registry is still bound to the request before using it
A user can be logged out during a request, loosing the database (and
thus registry) information.
2017-08-08 19:14:05 +02:00
Nicolas Martinelli 483a4fd8d7 [FIX] hr_expense: do not format total_amount
A `currency_id` field on a `hr.expense.sheet` only makes sense if all
expense lines are in the same currency. It is very likely to not be the
case, so don't format the total amount.

In master, the fild should simply be completely removed.

opw-761098
2017-08-08 18:14:46 +02:00
Thibault Delavallée e1b954f066 [FIX] mail: do not put context as feedback when marking an activity as done
Backport of 9fb86d6fac
2017-08-08 17:58:10 +02:00
Christophe Simonis 8c00b3ef7e [FIX] mail: correct alias access verification
When a replying to an email, the matching alias should first verify access
via the parent record if exists (i.e. check on the project instead of
on the issue itself).
2017-08-08 17:37:17 +02:00
amoyaux 010b4a1000 [FIX] purchase : pickibng should be removed if there is no move line.
Use case to reproduce the bug:
- Create a PO line with 10 product -> validate the picking
- Edit the PO line and add 10 product -> it creates a new picking with a move line
- Edit the PO line and remove the 10 products
-> There still an empty picking that is not linked to the PO.

This happens because the _create_or_update_picking in purchase
only remove the stock move if it is empty but do not check anything
on the picking.

This commit add a check on the picking if there is no move inside,
delete it.
2017-08-08 17:01:42 +02:00
Thibault Delavallée c3c42658c5 [MERGE] (website_)portal: make customer portal independent from website
This merge make the customer portal available independently from website
module. This implies moving some routing features from website to a new
http_routing module. Customer portal is located in a new portal module.

Sale and account customer portal are moved directly into sale and account
module, and in sale_payment and account_payment for the online payment
part. Most of website_payment code is moved to payment as it holds
customer portal features related to payment.

This merge removes website_portal, website_portal_sale and website_account
module.

This closes #17100.
2017-08-08 16:43:09 +02:00
Olivier Dony 17634acb0e [FIX] crm: correct activities filter combination
The new "My Activites" filter introduced by rev. 87e457158e
should not be in the same group of the search view as other activity
filters (Overdue/Today/Upcoming), otherwise they are combined with OR
instead of AND.

This is particularly misleading when coming from the Sales dashboard, as
the "Overdue" button of "My Pipeline" will lead to a list of
opportunities with "My Activities OR Overdue Activities", showing *all*
opps with overdue activities, not just yours.
2017-08-08 16:17:34 +02:00
Goffin Simon a31820d0cb [FIX] account: Only 64 characters for the name of an entry
When creating a customer invoice with description/reference with more than
64 characters, the description was cut to generate the name of the account move
lines. But it's possible to create an entry with more than 64 characters as name
by the interface. The limitation is deprecated.

opw:760316
2017-08-08 15:54:41 +02:00
Thibault Delavallée 79f362d067 [MOV] (website_)payment: move customer portal for payments to payment
Customer portal controller and templates contained in website_payment
module are moved to payment. This module now uses the customer portal
defined in portal module and most of website_payment code is moved
to payment.

website_payment now contain code really related to website, such as
payment acquirers configuration for website.
2017-08-08 15:38:04 +02:00
Thibault Delavallée 9456c7b332 [MOV][ADD] account_payment: move account related payment code to account_payment
This commit adds a new bridge module between account and payment. This
module is used notably to display payment related information on account
customer portal. It currently holds only a template but future commit
will add new features related to invoice payment on customer portal.
2017-08-08 15:38:04 +02:00
Thibault Delavallée 39e0bcc617 [REM] website_account: remove the now void module 2017-08-08 15:36:32 +02:00
Thibault Delavallée 3836aac471 [MOV] account_*: move account customer portal to account
As already done for sale, customer portal for account is moved to account
module directly. Account now depends on portal module and website module
is not necessary anymore to display the account customer portal.
2017-08-08 15:36:32 +02:00
Thibault Delavallée 71587f8284 [REM] website_portal_sale: remove the now void module 2017-08-08 15:36:31 +02:00
Thibault Delavallée 8168b8aa0b [IMP] sale: add settings about B2B/B2C in sale settings
As the customer portal is now directly integrated within the sales app
it makes sense to have this settings directly in sale.
2017-08-08 15:36:31 +02:00
Thibault Delavallée 9381334f6e [MOV] sale_*: move sale customer portal to sale
Customer portal is now a feature coming directly with sale module. As
it uses a simple website renderer customization and advanced website
features are not available and depends on having website module
installed.
2017-08-08 15:36:25 +02:00
Thibault Delavallée 62c3ada851 [MOV] sale_*: move sale-related payment code to sale_payment
website_portal_sale contains code on sale.order and crm.team models
related to payments. This code is moved into the sale_payment module
that is the bridge between sale and payment and therefore is the
location where it belongs. First step toward removing content of
website_portal_sale module.
2017-08-08 15:18:00 +02:00
Thibault Delavallée 729561e6bd [REM] website_portal: remove the now void module 2017-08-08 15:05:22 +02:00
Thibault Delavallée ee4cf1eae3 [MOV] website_portal: move mail portal tests directly to mail
Those belong to mail, not website_portal.
2017-08-08 15:05:11 +02:00
Thibault Delavallée ea27c1b7a3 [MOV] website_portal, portal: move customer portal to portal module
This commit moves the whole customer portal to the portal module.
It now completely uses portal and http_routing features and is not
dependent on website anymore.

An override of web controller is added in portal in order to redirect
portal users to /my instead of /web. That way once having the customer
portal installed all share users are correctly redirected to their
account.

All modules defining customer portal templates and controllers are
updated accordingly.
2017-08-08 14:58:49 +02:00
Thibault Delavallée 86aa1b81bc [IMP] website: use templates defined in portal as base for website layout
website.layout is now based on portal.frontend_layout template. Using
inheritance it adds and replaces various nodes in the portal template
in order to have the same behavior in website as before.
2017-08-08 14:57:30 +02:00
Thibault Delavallée 50d302bc6c [MOV] website, auth_signup: support auth parameters in request directly in auth_signup module
Let us completely support auth_signup_token and auth_login in request
session and parameters in the auth_signup module instead of in various
separate places.
2017-08-08 14:56:29 +02:00
Thibault Delavallée b4b6ae44fd [MOV] website, portal: move pager support from website to portal
As customer portal will be moved to portal module support of pager
has to be moved previously to the various portal moves. This commit
moves the pager code and template to portal.

Compatibility using website-based pager is provided to avoid having
to update all website addons currently. Future commits will make
addons use the portal pager instead of website pager.
2017-08-08 14:53:50 +02:00
Thibault Delavallée 77d9179f7b [MOV] website, http_routing: move translation support in http_routing
Code managing language in URLs and redirection is moved from website
to http_routing. Override of _dispatch in website now consists in adding
website to the request.

url_for and is_multilang_url tools methods are also moved from website
to http_routing.ir_http as those are required for the moved code.

Some renaming is performed on request attributes previously added in
website. Indeed as website keyword may be misleading now a renaming
has been performed to better understand them :

 * request.website_enabled -> request.is_frontend
 * request.website_multilang -> request.is_frontend_multilang
 * request.httprequest.cookies.get('website_lang') -> ('frontend_lang')
 * first_pass variable in _dispatch is replaced by a new attribute of
   request, routing_iteration, that is the number of routing iterations
   currently done
2017-08-08 14:40:08 +02:00
Dhaval Panchal 31e467598c [IMP] account: allow to reorder payment terms 2017-08-08 14:37:11 +02:00
qsm-odoo 24c6e98685 [FIX] web: returns right deferred when loading same xml twice in a row
Since commit 417a664f16:
The `ajax.loadXML` function has been refactored and improved so that
multiple calls to the function with the same URL only loads it once
and so that the deferred which is returned really indicates the status
of loading this particular URL.

Unfortunately, there was a mistake: when loading the same URL twice,
the second call always returned an already resolved deferred if the
first call to `ajax.loadXML` was done with this URL.
2017-08-08 14:31:59 +02:00
Thibault Delavallée 3148925c43 [MOV] website, http_routing: compute language data in http_routing.ir_http instead of website
ir_http override in website manage languages through methods or attributes
directly defined on website model. Those methods are get_languages method
and default_lang_code attribute. In order to be able to have a translation
layer independent of website we have to have access to this data without
depending on website record.

This commit solves this by adding class methods on ir_http override
located in http_routing. Basic implementation comes directly from website
default methods _active_languages and _default_language. Website overrides
those methods in order to be based on website values defined through
language_ids and default_lang_id for available languages and default
language.

Website behavior is therefore untouched whereas http_routing implements
a basic default behavior. This commit updates ir_http code in website
to use those methods and ease next commits which will move parts of that
code.
2017-08-08 14:24:59 +02:00
Thibault Delavallée 014b5c9f7c [MOV] website, http_routing: move (un)slug support to http_routing
Slug and unslug API is now available in http_routing. Indeed there is no
link to any website or any reason to not support slufigied URLs when
website is not installed. A new unslug_url method is added as a tool
coming from an embedded method from website. Doing it allows to have all
slug related methods defined at the same point.

Support of slug and unslug in qweb rendering is also moved directly in
http_routing version of ir_ui_view instead of website inheritance. This
is done in order to keep things coherent.

Some code from website about ModelConverter is also moved. Indeed both
versions of ir_http uses some kind of placeholder to store the uid
when converting urls to python. This commit unifies it by using the
website one directly in base to simplify the override.

This commit also updates all module importing slug. Enterprise modules
will have to be updated, see related commit.
2017-08-08 14:23:58 +02:00
Thibault Delavallée da8d418ff0 [ADD] portal: add module for customer portal and sharing features
This module adds required base code for a fully integrated customer
portal. It contains the base controller class and base templates.
Business addons will add their specific templates and controllers
to extend the customer portal.

This module contains most code coming from odoo v10 website_portal.
Purpose of this module is to allow the display of a customer portal
without having a dependency towards website edition and customization
capabilities.

Some CSS files used in frontend assets are already moved to have a
working portal skeleton. A is_public method on users is also added
as it will be used in various portal code soon.
2017-08-08 14:23:58 +02:00
Thibault Delavallée 471b049811 [ADD] http_routing: add module skeleton for advanced http routing
This module will contain http routing capabilities that are not
necessarily linked to a website. This covers for example code related
to language management in URLs or slugify support.

Advanced http routing are not moved in base in order to keep the core
simple. It is not moved in web because this module should contain only
interface and not http / routing code. http_routing module will therefore
be used to hold those features.

This commit only adds a void module, future commits will gradually add
the various features through dedicated MOV commits.
2017-08-08 14:23:57 +02:00
dip-odoo cfdc76d758 [IMP] base_vat: clearer labels for VIES check 2017-08-08 13:58:39 +02:00
Thibault Delavallée ff47130bc4 [IMP] sale: sudo ir.config_parameter only once in settings 2017-08-08 13:53:00 +02:00
Thibault Delavallée 44af9e7a35 [FIX] account: crash in vat portal management
Correctly check 'vat' key is in the dict of data the user gives to
the controller and not in a browse record.
2017-08-08 13:53:00 +02:00
Richard Mathot 159975ba42 [IMP] l10n_be_hr_payroll: English wording 2017-08-08 12:02:27 +02:00
Dipali Tank 00f90a70ed [IMP] *: holidays -> leaves
The meaning of "holidays" may vary in the UK/US.
2017-08-08 11:53:03 +02:00
David Monjoie ed286c4562 [FIX] web: disable buttons in list view on virtual records
Such buttons are not going to work on records that actually do not
exist yet. The behavior is now the same as in saas-15.

Steps to reproduce the bug:
Steps to reproduce the bug:
- Enable lots in Iventory
- Choose a product which is a component of another (through mrp bom)
- Set this product as tracked by lot
- Set this product inventory quantity to 0
- Create a new manufacturing order for the product for which it is a
  component
- Click on "Check Availability"
- Click on Produce
- Click on the little square with a + in the m2m list view, the
  server will crash in the ensure_one of the function called by
  the button since there is no record to run it on.
2017-08-08 11:18:11 +02:00
David Monjoie e2252c35c1 [FIX] web: handle create in many2many default_get
Previously, we did not handle the case where the result of the m2m
default get was a new record. In this case, we can't just send a
replace all command giving the ids since the new record has no id.

We decided to keep the replace all command even when it is empty
to stay consistent with the o2m implementation, even though saas-15
did not behave like that.

Steps to reproduce the bug:
- Enable lots in Iventory
- Choose a product which is a component of another (through mrp bom)
- Set this product as tracked by lot
- Set this product inventory quantity to 0
- Create a new manufacturing order for the product for which it is a
  component
- Click on "Check Availability"
- Click on Produce
- You'll get an error as the id given to the onchange is a virtual one,
  rather than a create which would not include an id.
2017-08-08 11:18:10 +02:00
Haresh Shyara 4e6d3132ac [IMP] point_of_sale: display session state on PoS dashboard
Avoid that users attempt to start a session on a PoS that is already
open by showing visual badges on PoS dashboards
2017-08-08 11:00:14 +02:00
David Monjoie 587751aa0d [FIX] web: prevent virtual datapoint creation when no default value
Previously, it used to create a virtual datapoint even though there was
no change on this field. If the field was a many2one, this datapoint
triggered a name_get call afterwards, but giving the virtual id of
the datapoint since there is no real record. The solution is to avoid
creating a virtual datapoint when it is not needed at all, thus fixing
the wrong name_get call.

Steps to reproduce the bug:
- Enable lots in Iventory
- Choose a product which is a component of another (through mrp bom)
- Set this product as tracked by lot
- Set this product inventory quantity to 0
- Create a new manufacturing order for the product for which it is a
  component
- Click on "Check Availability"
- Click on Produce
- You'll get an error as the web client tries to fetch the name_get of
  this datapoint even though the record does not exist.
2017-08-08 10:38:16 +02:00
Lucas Perais (lpe) ea2568b19c [FIX] website_portal_sale: image on a portal SO should always be displayed
before this commit, when a portal SO was done with a product that hasn't been "website_published", a placeholder was displayed instead of the image
After this commit, the correct product image is displayed in base64 (always image_small though)

OPW 760880

Closes #18709
2017-08-08 10:35:08 +02:00
qdp-odoo 792a402126 [FIX] account: fix tax_ids computation on aml creation from invoice.
In case of a tax affecting subsequent taxes, the tax_ids field was wrongly set which led to errors in VAT reports. OPW 757072.
2017-08-08 10:29:57 +02:00
Christophe Simonis a6917c22b3 [MERGE] forward port branch 9.0 up to af7eb04fc7 2017-08-07 17:56:45 +02:00
amoyaux cb1d516365 [REF] mrp : remove stock.quant inherit.
The field created by this inherit are no more used
anymore. The logic of produced/consumed has been move
on stock_move_line by this commit 0469d2e712
2017-08-07 16:13:26 +02:00
amoyaux 01429dc29b [FIX] mrp : Unbuild manually and with lot
Since refactoring in saas-17 quant_ids are removed and
the logic is instead locate on stock_move_line. This commit
adapt the method by trying to undo the created move_line
during the MO.

This commit also add a default_uom_id in the view's context in order
to remove a traceback. Since 0469d2e
uom is mandatory on stock_move_line.

It also add a bunch of tests in order to check the behavior of unbuild
with 4 test: without tracking, consumed product tracking, produced product
tracking and everything tracking.

Know limitation of this commit:
-> No warning message when unbuild more than in stock.
-> Wrong result if trying to unbuild twice the same MO
with consumed product tracked with different lot/SN
2017-08-07 16:13:13 +02:00
amoyaux 4ea8af066c [FIX] mrp : error when using a lot on a MO
Trying to set multiple lines with different lot on a MO
will raise an odoo server error with the field product_uom
on model stock.move.line.

This bug is linked to stock refactoring commit 0469d2e712
where the uom become required on move line. In order to get a default
value on create call the uom should be pass in the view's context.
2017-08-07 16:12:41 +02:00
amoyaux 5a78462f90 [IMP] mrp : usability for produce wizard
On the production wizard when you are using a product tracked
by SN/lot and another not tracked as consumed element. You edit
the form view by settings the correct quantity -> Use the produce
wizard. It will display the tracked product (you can see the details
you entered before) -> validate. It will double the quantity done
for the not tracked product.

This commit will change the wizard behavior by only set the quantity
done on untracked product if it is not already set.
2017-08-07 16:11:59 +02:00
Christophe Simonis 2b7179380a [FIX] tools: avoid defining unused variable using python2 only syntax 2017-08-07 15:02:56 +02:00