Commit Graph
85 Commits
Author SHA1 Message Date
Christophe Simonis 91c9284951 [MERGE] forward port of branch saas-10 up to 5aa0bae 2016-05-13 16:33:51 +02:00
Nicolas Martinelli 50b94ef079 [FIX] web: search input of date
When the user searches for date (or a datetime) in the search bar, the
suggested date can become completely wrong. For example, in the French
localization where the date format is DD/MM/YYYY, the system will search
for the date MM/DD/YYYY. This is even worse when the date is not fully
written: DD/MM could be converted to MM/DD/0000, which doesn't make any
sense. This is related to the moment issue
https://github.com/moment/moment/issues/1407.

The fix is to make sure that the input date has a correct format thanks
to `parse_value`. The latter converts the date into a fixed format.

Fixes #11876
opw-676604
2016-05-10 11:19:22 +02:00
Aaron Bohy 977db823c7 [REF] web: stop duplicating web
Avoid duplicating web addon in enterprise by extracting a common basis.
Enterprise features stay in enterprise, but use that common basis.

Mainly:
 - JS refactoring and linting
 - Conversion of .sass into .less split into multiple files
 - Templates cleaning and DOM simplification
 - Re-generation of web.pot, and update of .po files
2016-04-21 15:21:39 +02:00
Aaron Bohy 6c57935443 [IMP] openerp,web: cache of actions, fields(_views) and filters
Introduction of 'data_manager' service which handles meta-data related to
actions and views (fields_views, fields and filters). Ideally, all RPCs to
get that kind of information should go through data_manager, as it holds an
internal cache.
2016-03-18 10:44:52 +01:00
Aaron Bohy 002660a9b0 [IMP] openerp, web(_*): batch views RPCs
Load the fields_view of all views of the action together. If a searchview is
required, also load its fields_view and its filters.

Use lazy-loading for fields as they are required for the Pivot and Graph
views only, and may be used by Filters and GroupBy menus of the Search view
if the users clicks on 'Add a custom Filter/Group'.

The fields are thus also loaded directly if the first view of the action is
Pivot or Graph, and otherwise, they are lazy-loaded when/if the user opens
a Pivot or Graph view, or if he wants to add a custom Filter/Group.

Some refactoring of views API as well:
- Views must now be instantiated with their fields_view
- Move code requiring fields_view from start() to init(), or willStart() for
  heavy processing.
- Remove view_type attribute from views as it was used to call
  fields_view_get.
- Remove view_id parameter to views' init as it is no longer used.
- Move duplicate code from various views' init to the View widget.
- Remove view_loading() function from views as they now follow the classical
  lifecycle of widgets (init -> willStart -> start -> destroy).
- Searchview now extends View like all other views.
- Remove useless function guard_active() as it was used for the form_view's
  action buttons to wrap handlers to ensure that they are executed only if
  the form_view is the current active view. This is not useful anymore as
  from v9, views and their control panel are appended in the DOM
  simultaneously, so one can't click on a button of a view which is not the
  current active view.
2016-03-18 10:44:52 +01:00
Aaron Bohy 27df65c878 [IMP] board,google_spreadsheet,web,web_calendar: Favorites menu
Adapt the Favorites menu so that addons appending stuff in it are compliant with
the enterprise edition.

Mainly, creation of dashboard.less from of dashboard.sass so that we can use mixins
defined in the web addon.

Some changes as well in the dashboard view to make it compliant with the enterprise
edition.

Use correct naming convention: classnames with underscores, less mixins with hyphens.
2015-07-15 13:32:56 +02:00
Christophe Simonis fe2b5f35a4 [MERGE] forward port of branch saas-6 up to bf1e999 2015-05-28 14:27:38 +02:00
Christophe Simonis 9c5a1d8231 [MERGE] forward port of branch 8.0 up to cf4d14c 2015-04-27 17:33:44 +02:00
Denis Ledoux 84e10ad03b [FIX] web: translation of default M2O values in search bar
When a many2one field of a searchview was selected
by default, through a default_*_id within the context,
the many2one value name wasn't translated.

e.g. with Spanish loaded (and l10n_multilang installed),
translate a project.project name in Spanish.
Then, while being in Spanish, in the project.project kanban,
click on the Tasks link of a project (tareas),
then, notice the value of the project name in the
search bar.

opw-632818
2015-04-22 17:53:35 +02:00
Géry Debongnie ebc39b8788 [FIX] update tests to new module system
Various tests (mostly tours) were broken with the large changes in the
way the js code works.
2015-03-18 09:23:37 +01:00
Géry Debongnie b960f8ad52 [REF] web: update test suite to new module system
The test suite needs to be adapted to the modules.  Also, the update
of qunit changes the API, so the tests needs to be changed as well.
2015-03-18 09:01:50 +01:00
Géry Debongnie 77413fc764 [FIX] update tests and change search logic (webclient)
previous commit broke some tests.  The issue is that the search view
now avoid making requests if there is no action id.  But this is an
assumption that tests use, so some slight adjustments have to be made.

Also, this is the moment to give properly the action id to the favorite
menu.  Instead of bypassing its parent, it now receives the action id
from the search view.
2014-11-20 14:58:10 +01:00
Géry Debongnie f25608c6fc [FIX] remove search.invisible tests
The search view architecture allowed an 'invisible' attribute in fields.  These fields were ignored for the autocompletion and did not appear in the interface.  The goal was to allow default parameters to create facets, without displaying the field in the interface.  Since that functionality is not used and the new search view does not support it right now, the tests can be removed.
2014-10-21 09:33:51 +02:00
Géry Debongnie d9f95e855e [FIX] update tests in search view 2014-10-21 09:33:51 +02:00
Géry Debongnie 2e43d4be29 [FIX] update the search tests
The search tests are totally outdated since the search view rewrite. This commit update them to the new search view.
2014-10-21 09:33:51 +02:00
Géry Debongnie 2d81f2cfdd [FIX] update autocomplete test
Autocompletion of many2one fields only accepts domains in the form of
arrays, not as strings.
2014-09-18 11:52:38 +02:00
Christophe Simonis 135962184d [FIX] web: make search by id possible.
+ correct tests
2014-08-06 17:27:27 +02:00
Olivier Dony 9132b1d306 [IMP] ir.filters: new filters are local to the menu/action by default
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.
2014-07-01 03:29:05 +02:00
Géry Debongnie 88bb66e784 [FIX] fix tests in autocompletion 2014-06-30 16:13:02 +02:00
Géry Debongnie 0a4a7f3d20 [IMP] new autocomplete widget
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)
2014-06-25 13:26:41 +02:00
Géry Debongnie bb8b659ce3 [FIX] adjust the tests after changes to the searchview
* oe_searchview_custom has been split in oe_searchview_custom and
oe_searchview_filter: a test need to take that into account
* in adjust_top, the parent might not have a $ method.
2014-05-26 16:43:04 +02:00
Géry Debongnie a24020e004 [FIX] update the searchview tests
to accomodate the fact that the searchview has been changed.
Two changes need to be accounted:
(1) the drawer html structure has changed (oe_selected class is
replaced by badge, some li tags are replaced by spans, ...) and
(2) the CustomFilters has been split into CustomReports and
SaveFilter, so there is an extra filter in the drawer inputs.

Also, the searchview need a parent to react to the switch_mode event,
so the tests add a fake parent to the view in make_search_view
2014-05-22 09:59:32 +02:00
Olivier Dony e80a179d02 [FIX] search widgets: m2o autocompletion had been disabled when @operator or @filter_domain were set, but it was actually useful
Was disabled at rev 3878 revid:xmo@openerp.com-20131107111231-nkrllqv0afqdmix6

bzr revid: odo@openerp.com-20140326170818-sc5hqnmq89ayufso
2014-03-26 18:08:18 +01:00
Gery Debongnie c0c686cd15 [FIX] changes test definition to have the correct number of assertions (addon web)
bzr revid: ged@openerp.com-20140113080856-7h6cnlh675vgi8s2
2014-01-13 09:08:56 +01:00
Gery Debongnie 716d888aaf [IMP] separates a facet test into smaller tests to have better information (addon web)
bzr revid: ged@openerp.com-20140110150836-xgk11tcimhmgpl9z
2014-01-10 16:08:36 +01:00
Xavier Morel fb911b1d43 [FIX] don't provide autocompletion to m2o fields when a custom operator or filter_domain is provided
bzr revid: xmo@openerp.com-20131107111231-nkrllqv0afqdmix6
2013-11-07 12:12:31 +01:00
Denis Ledoux 3279b24128 [MERGE] Forward-port of latest saas-1 bugfixes, up to rev. 3748 rev-id: dle@openerp.com-20131023103308-18pj2gqq3imrcir7
bzr revid: dle@openerp.com-20131023110926-tc2n3oqg0l2ga138
2013-10-23 13:09:26 +02:00
Denis Ledoux 4e0530f16c [FIX]web: test testing the customer filter save was wrong, was using wrong method text() instead of val() to set the filter name
bzr revid: dle@openerp.com-20131022165318-2imkhgb6iecalbbi
2013-10-22 18:53:18 +02:00
Xavier Morel adfe3e7ec9 [FIX] reinstate basic grouping test, replace strictEqual call on widgets by ok(===)
There seems to be a problem with QUnit's serialization routines when
applied to complex widgets (the view here) while running inside
PhantomJS. It does not seem to be cycles in datastructures (that is
handled) but looks related to complex objects linked from multiple
"children" (skipping any object already serialized makes the issue
disappear).

The bug leads to unbounded memory growth, and on runbot to the process
being summarily terminated (likely by the OOM killer) not even
resulting in an OOM error (which is displayed locally). The issue can
not be observed within browsers. This may be a difference in GC
strategy.

The serialization is applied by the driver on high-level comparison
methods (e.g. strictEqual) so the caller can display the structures if
desired.

Replace the strictEqual(a, b) call by ok(a === b) to avoid any risk of
such serialization.

bzr revid: xmo@openerp.com-20130801091326-u2q9e163zls4k8ad
2013-08-01 11:13:26 +02:00
niv-openerp 46869ba52d [FIX] desactivated test creating random false positive
bzr revid: nicolas.vanhoren@openerp.com-20130731133504-vt2fx11jziyad47e
2013-07-31 15:35:04 +02:00
niv-openerp 4ec2906626 [FIX] attempt to solve false-positive in js tests on the runbot
bzr revid: nicolas.vanhoren@openerp.com-20130731131933-ur5vdahgnbjsj16o
2013-07-31 15:19:33 +02:00
niv-openerp a02da32a08 Changed some testing code creating side effects and making other tests crash
bzr revid: nicolas.vanhoren@openerp.com-20130726143647-rz01o0cnwm2a1gyo
2013-07-26 16:36:47 +02:00
niv-openerp 17ba69eb52 Applied jshint on test files and corrected errors
bzr revid: nicolas.vanhoren@openerp.com-20130725112416-j6wbm254yx05i890
2013-07-25 13:24:16 +02:00
Olivier Dony 35d61bbd8b [FIX] web search: correct previous fix to properly handle searching for 0 on number fields
Also removed useless HTML escaping and added basic tests.

bzr revid: odo@openerp.com-20130328153502-v71q2m60wh37ganq
2013-03-28 16:35:02 +01:00
Xavier Morel 1899141b38 [FIX] groupby groups fetching of their ancestor searchview
Implementation of invisibles in search view altered handling of search
inputs: their parent may not be the searchview anymore (usually is a
instance.web.search.Group). GroupbyGroup assumed parent was view and
was actually unused until
xmo@openerp.com-20130307124222-1ypzfopbktxmad4z, which exposed the
incorrect underlying assumption.

Make GroupbyGroup access its view when it wants its view, not its
parent.

bzr revid: xmo@openerp.com-20130312092824-z7sh4h3ityo4g00v
2013-03-12 10:28:24 +01:00
Xavier Morel 65e7ad2aa4 [FIX] oops, previous revision now mandates valid contexts in filter group tests
bzr revid: xmo@openerp.com-20130307141102-86tb7axyh3x4rgk9
2013-03-07 15:11:02 +01:00
Xavier Morel b921444d6f [FIX] implement forgotten @invisible handling on search view fields
bzr revid: xmo@openerp.com-20130304152047-8xaczg9qdx6ug2p1
2013-03-04 16:20:47 +01:00
Xavier Morel d46c61d784 [FIX] don't store user context properties into custom filter @context
This leads to any subsequent view overwriting the current user's lang
or timezone with the one active when the filter was created,
generating dismay and discontent (e.g. part of the user interface
switching from spanish to english or english to german, depending on
the respective settings of the current user and the filter creator —
at time of filter creation).

bzr revid: xmo@openerp.com-20130304101414-mm6ai1dkltd7ard5
2013-03-04 11:14:14 +01:00
Xavier Morel 6803c0048f [IMP] add view's context to m2o completion name_search
bzr revid: xmo@openerp.com-20130225165236-386r8438h4vz6fav
2013-02-25 17:52:36 +01:00
Xavier Morel ece114024f [ADD] @domains handling to searchview m2o field during completion
bzr revid: xmo@openerp.com-20130225164255-y3qkcjozr7rbtz1v
2013-02-25 17:42:55 +01:00
Xavier Morel 9f45e8970c [ADD] more tests for m2o default values handling
bzr revid: xmo@openerp.com-20130225152324-785ewucir0pv4rmw
2013-02-25 16:23:24 +01:00
Xavier Morel 9852c6ff1e [FIX] missing support for invisible fields and groups in new search view
lp bug: https://launchpad.net/bugs/1122183 fixed

bzr revid: xmo@openerp.com-20130214074302-rwm2hcmv9mpvp9dv
2013-02-14 08:43:02 +01:00
Xavier Morel dfb7493034 [FIX] add support for invisibility to fields (don't complete an invisible field)
bzr revid: xmo@openerp.com-20130213090108-h38emnwscgb5v1pu
2013-02-13 10:01:08 +01:00
Xavier Morel f690a9310c [IMP] prefix searchview tests for easy filtering
bzr revid: xmo@openerp.com-20130213072557-er5xl9xcj17mhuqe
2013-02-13 08:25:57 +01:00
Xavier Morel 69171aa805 [CHG] allow deselecting a custom filter by clicking on it again in the drawer
as asked in project.task:4837:

> Cannot uncheck a custom filter by clicking on it (it's possible on
> classic filters)

bzr revid: xmo@openerp.com-20130131112617-8vul65bb4lbfbfvk
2013-01-31 12:26:17 +01:00
Xavier Morel 3c5d38918b [FIX] filter preceded by an invisible filter in the same group
On click on a filter in the drawer, FilterGroup would just match the
offset of the filter in the group's DOM with an index in the internal
#filters array. 

This worked until invisible fields, and then again only for filters
*preceded* by an invisible sibling in the same group: invisible
filters are not rendered in the DOM, so the indexes would get out of
sync.

Fix by using explicit indexes stored in a filter's @data-index and
using that to get the filter object/node.

An alternative fix (but hackier I think): instead of not rendering
invisible filters, render them with display: none. Remains an option
in the future if needed...

lp bug: https://launchpad.net/bugs/1157125 fixed

bzr revid: xmo@openerp.com-20130321155123-211iht7c6zme712e
2013-03-21 16:51:23 +01:00
Xavier Morel 3b2e26af18 [FIX] incorrect array joins
Array#join() is equivalent to Array.join(', '), not Array.join('') as in Python.

For some reason the tests didn't break, but...

bzr revid: xmo@openerp.com-20130321155105-dwgprqldk39r3xk2
2013-03-21 16:51:05 +01:00
Fabien Meghazi bf6bdf017b [IMP] Changed tests according to new client side fields view get
bzr revid: fme@openerp.com-20121205160656-0mg1hnv35vk27adh
2012-12-05 17:06:56 +01:00
Xavier Morel fe3d493cc8 [FIX] searches with filters using "empty" domain/context values (but not attributes)
e.g. @domain="[]" would be seen as non-empty by the search view, and
if multiple domains the search view would generate a nonliteral
``['|', '[]', '[]]`` which would just yield ``['|']`` after evaluation
and concatenation, which is an invalid domain and would blow up the
server.

Specifically filter out the values ``[]`` and ``{}`` from filters

bzr revid: xmo@openerp.com-20121129112413-yrgncnesqs093jwf
2012-11-29 12:24:13 +01:00
Xavier Morel c7772fdd82 [FIX] server-sourced fields_get has no indirection to the model's fields
previous searchview-controller wrapper method did. Remove leftover indirection deref

bzr revid: xmo@openerp.com-20121129103841-6qcl4sctekqmrt2q
2012-11-29 11:38:41 +01:00