[IMP] addons: search view cleaning / improvements due to the new search view display. Changes have been done in the main addons: crm, account, project, project_issue, hr_recruitment, purchase, sale.
Main changes :
- removed most of group_by in classic views (as most of them are usefull in a report view)
- removed all group_by in report views (as the new graph view allow to group on every field, no need to declare them)
- added some custom filters in various addons to help the user experience
- removed some useless icons / helps
When going up and wrapping around, the focus was on a hidden separator,
so hitting enter = stacktrace. Now, the focus goes on the last
selectable list item.-
Allow binding an optional `action_id` to filters.
The web client will try to identify the specific
action ID when saving new filters. If no contextual
action exists, the filter is saved globally for
the model.
This will automatically keep filters within their
original menu when there are several menus/actions
leading to a given list of documents.
In some cases the action_id will not match the
filter model, which should be fine (e.g. when opening
a many2one completion popup for model `foo` within
a menu of model `bar`).
It is also still be possible to have a filter apply
to all actions/menus for a given model by manually
deleting the action_id value in the filter
(e.g. via the Manage Filters debug menu).
When updating a filter the action_id value is ignored
so that old global filters will be gradually replaced
by new "local" filters.
Also added an _order to ensure stable ordering of the
filters.
The function get_data_for_reconciliations expects a list at line 473 to loop over.
Without this fix you get TypeError: string indices must be integers, not str
This affects the result when Draft invoices are included,
so that they actually appear even without any `date` value,
as they are often meant for the current year.
Need to find which controller add ?page= instead of &page= because google find some url with '?page=1?page=2' --> page = '1?page=2'. According to google, the referrer is the old website.
Add group of countries res.country.group
Add get_fiscal_position method a method to compute a fiscal position based on company_id, partner_id, delivery_id
The meaning of res.partner.fiscal_position is now a forced a fiscal position.
The default implementation should handle simple cases, like VAT in UE and sales
tax in the US, but the method can be overriden to handle more complex ficals
rules.
Add a generic bus for instant communication based on postgres LISTEN/NOTIFY and HTTP comet.
Both threaded and gevent greenlet mode are supported. Chat should now work on every platform.
im_chat improvements
- proper support for multiple windows
- present, away and offline status
- improved data model for multi user chat session
im_livechat improvements
- standard css js assets are now used
- qweb templates are now used instead of jinnja
Displaying the pagert in view group does not make sense as it's not updated when changing filter and every group (even if more than 80) is displayed in view group
The website module normally tries to render user-friendly
error pages for any error occurring during the processing
of a website-enabled request.
This happens even for werkzeug's HTTPExceptions that have
their own response, because we want the website layout to
be applied on top of the error page.
One special sort of HTTPException should be preserved
without rewriting: the manually-crafted ones generated
with abort(), and usually wrapping a redirect response,
which bears no alteration.
The switch mode event was triggered even if the view was not actually switched
This leaded to inconsistencies, like adding the view in the breadcrumb history, while the switch did not happen
[IMP] l10n_fr_hr_payroll: make sure the date format of Fiche de paie report is in french
report_sxw: make sure we have a fallback on en_US if trying to load an format in unknown language
When you are on a form view, you click on a left/right arrow(on the top-right of the view) to pass to the next records. If you click on the widget to change the kanban_state, the widget will change the state of the previous record and not for the current because the record_id is not reset
[FIX] _handle_exception() logic amongst requests and ir_http objects
Changes in website's ir_http#_handle_exception():
* exception is mandatory, can't be None anymore
* we don't touch non website_enabled requests
* we don't touch explicits plain responses from parent
* logic flow is now easier to read (I hope so)
* check for openerp's AccessError and convert to 403 errors
Change in website's ir_http#_dispatch():
* In case of real 404, instead of returning self._handle_exception(), just let parent do the job (so we call super())
[FIX] account: Small performance fix + cleanup of account_invoice
Remove unused imports and variables
Merge two writes into one
Make sure we use the newly invoice_date and not the one left in the cache of the browse record
Some objects (e.g. account.move.line) have a different signature than the classical 'cr, uid, ids, vals, context=None' and may add extra arguments.
This fix allows to create rules on these objects and still pass the valid arguments.
(opw 609204)
Task #5009
This new autocomplete widget (the one used in the search bar) does not
do remote calls automatically, but on demand. In theory, it should lead
to a better user experience, not having the ui blocked every time long
remote calls are done.
It also has the benefits of bringing us one step closer to not
depending on jquery.ui. Bonus point: the code is quite short (< 200 loc
i believe)
The wizard to generate recurring entries did not respect multicompany rules as the request was done in plain sql.
Add ir.rule and use the orm (opw 607782)
When a purchase requisition is created from a procurement order, a first stock move is created, not associated to any purchase orders
Then, on purchase order creation and confirmation, in the purchase requisition, new stock moves are created, associated to the purchase order.
The existing stock move issued from the procurement order which created the purchase requisition remained untouched, leading to wrong inventory values
To fix this, the destination location of the stock move of the procurement order is written on the source location
A proper fix should be to use a dedicated workflow for puchase requisition, but this can't be done in 7.0, it has to be done in master/trunk
Changes in website's ir_http#_handle_exception():
- exception is mandatory, can't be None anymore
- we don't touch non website_enabled requests
- we don't touch explicits plain responses from parent
- logic flow is now easier to read (I hope so)
Change in website's ir_http#_dispatch():
- In case of real 404, instead of returning self._handle_exception(),
just let parent do the job (so we call super())