We can now select a new localization module in place of the existing one, if no accounting has been done yet.
This allows to set a default CoA for Germany and China, by choosing arbitrary one of the existing localization package at the installation since they can directly switch if needed.
Was PR #16605.
- [x] remove 'available' field:
- [x] availability is computed only based on country/state/zip rules
- [x] also in ecommerce
- [x] remove 'price' computed field
- [x] remove context hack for computing price
- [x] price is not computed on save anymore, but with a get/set price button
- [x] errors/warnings are now displayed in a special message box
- [x] carriers return values are now more versatile
- [x] delivery_grid is now a generic shipper
- [x] fixed price is not a particular case of a grid anymore but a simple product price
- [x] as a consequence of previous 2 points, a lot of duplicated code has been removed
- [x] we can now save SOs even when a webservice has failed to return a price
- [x] no more hacks on name_get/context
- [x] "free over" an amount is now a generic feature
Having price and availability as computed fields of a delivery.carrier
may sound handy.
Actually, it comes with is batch of lame hacks, poor performances and
terrifying heisenbugs.
We will try to make something better. It has to start with a breaking.
The check register report is the same as the general ledger except it only displays
account in type cash. On report, a "totals" line appears when only one journal is selected
but it's value is computed based on the whole accounts without filtering. Then, we need a
way to compute this totals only based on specific accounts
task: https://www.odoo.com/web#id=28656&view_type=form&model=project.task&action=333&active_id=967&menu_id=4720
The commit 5854bb7d12 introduces a new option
to drag element without dropping them.
But it's not allowed to start a new drag and drop until the first one is
completely done.
So when the element is removed from the dom (the test is finished), we complete
the drag and drop in order to let next tests perform drag and drop.
-added tour for invoicing
-allow to set easily the number of the first invoice/bill/refund of a journal, from the invoice screen
-small usability fixes and refactoring
Before this commit, it was impossible to load the x2many fields subviews when
they were not defined inline.
Now it is possible to call the method "_loadSubviews" to do so.
Used mainly in studio, to be able to display the x2many fields without inline
views.
The rainbow_man effect has 'rainbow_man' type, not 'rainbow'. This is
what happens when someone decides to change the spec after testing has
occurred...
This commit introduces the 'rainbowification' feature to the web client
(and to some affected addons). This feature is essentially a way to
display a nice friendly message when some business event happens. For
example, a encouraging message is displayed when the user clear her/his
inbox, or when a salesman closes a deal.
The mechanism currently only displays a 'rainbowman', but could be
extended later to add other kind of animation.
There are a few different ways to display a 'rainbowman':
- any JS code can simply trigger_up an event ('show_effect') with some
options: for example
this.trigger_up('show_effect', {
type: 'rainbow_man',
fadeout: 'no',
message: $done,
click_close: false,
});
- an action returned by the server can have an 'effect' key, with some
options
- the do_execute_action method accepts a 'effect' option. This is
useful when one wants to specify a rainbow on an action button in a
form view
Joint work with: dbh <dbh@odoo.com>, ged <ged@odoo.com>
When another user than administrator opens the mail sending wizard there
is an access right issue. Indeed as sale mail links now contain auth_signup
parameter an access to allow_uninvited config parameter is done. However
this has to be done using sudo because classic users have no access to
config parameters. Fix related to e79eb01a67 .
This module does not seem needed anymore currently for accounting. We will probably reuse part of it for the incomming POS-certification module, though.
Purpose
=======
Create one report where we can see all sales (sales from sales, eCommerce, POS) grouped by channels
Specification
=============
New Report Sales > Reports , the name should be "All Channels Sales Orders"
This report contains the following fields :
name
date
product_id
partner_id
company_id
user_id
price_total
pricelist_id
categ_id = product_categ_id
invoiced = amount to invoice
analytic_account_id
team_name
country_id
We thought about doing a kind of sale_order_common report, but we cannot re-use sale.report because of some field (qty_delivered, ...) that we cannot compute on pos orders.
Before this commit, all x2many fields values were sent to the server in the
onchange call. If a x2many field was not present in the view, then it
was sent as an empty list [], which is totally wrong.
A few builds fail when run in 'primetime', because the js test suite
takes more than 120 seconds (on the slow runbots). With this commit, we
increase our timer to 180s to make sure that this does not happen again.
Main page of the customer portal now contains simply a list of document
models the user can access, under a 'Your Documents' section. It is
a bit easier to read and a bit less ugly than a list of underlined
headers.
There was an extra ', which makes the options dictionary totally
invalid. Because of this, it is impossible to open the 'Purchase'
application (it causes a traceback)
There was an extra ', which makes the options dictionary totally
invalid. Because of this, it is impossible to open the 'Purchase'
application (it causes a traceback)
When several fields are modified and trigger the same recomputations, the same
SQL queries were made to determine the records to recompute, because each field
was processed independently. In order to avoid duplicated SQL queries, process
the triggers of the modified fields altogether.
This reduces the number of queries by 15% to 25%, depending on the number of
computed fields.
Replace `model.search([('id', 'in', ids)])` by `model.browse(ids)`, which is
safe because `ids` come from reading a many2one field. The performance impact
is negligible.