summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/control_panel
AgeCommit message (Collapse)Author
2021-05-28[FIX] web: allow custom filters by ID intervalIvan Yelizariev
Infinite number of records cannot be exported, so after some limit we will get a timeout error. If you need to export more records than that limit, you should be able to filter records into batches. The easiest way to do it is making a filter by ID: ``` [Y| ID Greater than 100000] [Y| ID less than or equal to 200000] ``` --- opw-2517946 closes odoo/odoo#71345 X-original-commit: 2e0127af0d283d1d9bdb033de356e2ddf0973cce Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>
2021-03-15[FIX] web: allow filtering with decimals on price filter + unit testJulien Mougenot
Issue - Install "Sales" - Switch to "German" language - Go to Sales -> Products -> Products - Try to filter on "Public Price" is equal to "2,3" Not possible to add decimal point at the end (only in middle of number). Cause In case the 'decimal point' in DB params is not a dot '.', the filter input will be considered as 'text' instead of 'number'. In case of the 'number' type; HTML do already a pre and post processing, including managing decimal point (who, for example, is not included in ev.target.value if last char is a '.'). Unfortunalty, the library is not well working with other language and not supported on every browser, therefore, must use own logic. In case of a 'text' type, the value will be send to 'parseFloat' ,then `parseNumber` will replace decimal_point by dot (also one the issues since needed to display decimal_point according user language), and `Number` will remove the decimal_point in case of '123,' -> '123', and therefore we will not be able to write decimals ( apart of adding the decimal point after writing the whole number...) Solution If user input is well parsed, store parsed value in condition.value and set condition.displayedValue to the input value (an so without updating input value). Else, replace input value with previous value (who should be the condition.DisplayedValue). opw-2463441 closes odoo/odoo#67767 Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
2021-02-25[FIX] web: translate "View ..." titleMartin Trigaux
And remove code content
2021-02-15[FIX] web: keep focus on searchbar when Tab pressedMohammed Shekha
before this commit: when searchbar has autocomplete and user press Tab key then focus goes out of searchbar input while it should keep focus on searchbar so that user can do search on other term. after this commit: when searching on searchbar and pressing Tab key will keep focus on searchbar input so that user can search again. task-2393772 closes odoo/odoo#64471 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2021-02-12[FIX] web: boolean field autocompletion with 'No'Mathieu Duckerts-Antoine
Before this commit, select the "No" option of a boolean field in the search bar autocompletion menu would crash. closes odoo/odoo#65896 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-11-05[FIX] web: use latin number date domain in comparison menuNicolas Lempereur
When using eg. arabic locale, the figures inside dates were replaced by arabic figures which are not supported server side (they are almost always sent in latin figures). With this changeset, the we are using english locale to get date in domains. Without the change, added test fails with: Numbers in domain should not use addoneForTest locale Expected:...[date_field, >=, 2020-06-01], [date_field, <=, 2020-06-30] Result:...[date_field, >=, 3131-17-12], [date_field, <=, 3131-17-41] opw-2370392 closes #61354 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-07-31[FIX] web: default operators for search fieldsMathieu Duckerts-Antoine
During the refactoring of the control panel (https://github.com/odoo/odoo/pull/41268) a regression concerning the operator used for the fields set as search_default was introduced: the default operator was fixed to '=' while it would have been necessary to take into consideration the optional 'operator' attribute or the field types. Moreover, the default operator associated to many2one fields when using autocompletion was also mistakenly set to 'ilike' instead of '='. The present commit restores the previous behavior. closes odoo/odoo#55099 X-original-commit: 1f8e93fc590a6c7ef6b93953058f2dcd643ac620 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-27[IMP] web: Drop widget support in search viewJulien Mougenot
Until now the "widget" attribute used in the search view was meant to force the type of a field regardless of its definition. This system was implemented quite a long time ago and is now useful in only one case: searching for "reference" fields (we want them considered as char fields else it is impossible to search on them). This is why this commit completely removes the "widget" attribute support in search views while consistently casting the "reference" fields as "char" fields in the search bar. Task 2061795
2020-07-23[IMP] *: adapt modules to Owl search panelJulien Mougenot
Adaptation of the rest of the environment to the changes regarding the refactored search panel and model. This commit includes the following changes: - Since the control panel model is now part of the search model, the view widget is responsible of its instantiation with the appropriate API; creating an ActionModel holding the required model extensions. - The controller is now importing/exporting the state of the entire search model as well as the current state of the search panel (given throught its props). Changes have been made to adapt to this behaviour. - The multiple components linked to the control panel model have been adapted to reflect the changes brought to it (they will now listen to the "searchModel" instead of the "controlPanelModel"). - The `test_utils_create` methods have also been adapted to properly instantiate a searchModel Part of task 2228968 Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-23[IMP] web: Model: extensions registryJulien Mougenot
Refactoring of the Model class of `model.js` to support multiple extensions. The purpose is to build a model having the appropriate modules for a given situation. For instance, we don't need the control panel model if we don't have a control panel to start with. Some logic of the control panel model (which was until now the "main" search model) has been given to another model extension named "Search Model Extension" which will synchronize the informations of all models providing search data (domain, context, etc.). The model instantiated in the actions/views is now an instance of the "Action Model" (which directly extends the Model) and is meant to replace the view model in the long term. It might however need some improvements to hold such a role (partial interface rendering, etc.). Part of task 2228968 Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-14[FIX] web: Properly handle default favorite filtersJulien Mougenot
Before this commit, the default active favorite filter was determined by its ID given by the control panel. These IDs start at index 0, meaning that if a condition checks for the value of such an ID, it could be false even though the ID and its filter exists. Now the indexation starts at 1 to avoid such problems. closes odoo/odoo#54435 X-original-commit: cfb7bbea1b428a062ee08ca045509d189b1fd1d4 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-06[FIX] web: do no try to render filters referencing access restricted fieldsXavier ALT
In case a field is limited to specific groups on the model, those fields are discarded from `fields_view_get()` but can still be referenced by some filters on the search view causing a traceback (see #53797) Model: ```python class MyModel(models.Model): my_field = fields.Char(groups='base.group_system') ``` Search views: ```xml <search string="My Model"> <filter name="group_myfield" context="{'group_by': 'my_field'}"/> </search> ``` This commit ensure those filter are correctly discarded. OPW-2284621 closes odoo/odoo#54112 X-original-commit: b3452a1863c36290b13e16161e2703d9a3737f0e Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-03[FIX] web: Support widgets in search viewJulien Mougenot
Since the refactor of the control panel, support of "widgets" attributes in the search view archs has been inadvertently dropped. Now, they are once again supported. Task 2061795 closes odoo/odoo#54066 X-original-commit: f33b0bc7a93e60bd0ed00b40d7459225ec0b749a Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-06-30[FIX] web: Allow default favorite filter over search defaultJulien Mougenot
Before this commit, when a search_default on a many2one field tried to update its label after a name_get, the value was set on its initial associated query element which could have been erased by a default favorite. Now, the model determines whether there is a default favorite before processing default filters, preventing any unnecessary RPC. closes odoo/odoo#53840 X-original-commit: ff834d0ba6f9b7eadc23c28dbbf892eba2058583 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-06-25[FIX] web: in search view, use modifiers to determine if filter is invisibleXavier ALT
In search view, the "invisible" attribute can use complex expression, and so we must rely on the "modifiers" attribute set by the ir.ui.view post-processing to determine if a filter should be invisible or not. For example, considering the context {'hide_myfilter': False}, the following view: ```xml <search> ... <filter name="myfilter" string="My Filter" invisible="context.get('hide_myfilter')"/> ... </search> ``` Will be returned as such by the server: ```xml <search> ... <filter name="myfilter" string="My Filter" invisible="context.get('hide_myfilter')" modifiers="{&quot;invisible&quot;: false}"/> ... </search> ``` After this commit, the filter "myfilter" will correctly be shown. OPW-2243639 closes odoo/odoo#53690 X-original-commit: 00969326e24dadd9b3f6e026789a1e575dd1c8dc Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Julien Mougenot (jum) <jum@odoo.com> Signed-off-by: Xavier ALT <xavieralt@users.noreply.github.com>
2020-06-12[IMP] *: update notifications to optional titleJulien Mougenot
closes odoo/odoo#52826 Related: odoo/enterprise#11084 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-06-09[REF] web: update control panel docJulien Mougenot
Class documentation for the control panel component has been updated to reflect the changes on the comparison menu and the advanced search. closes odoo/odoo#52662 Related: odoo/enterprise#11022 Signed-off-by: Mathieu Duckerts-Antoine <Polymorphe57@users.noreply.github.com>
2020-06-04[IMP] web: Comparison menuMathieu Duckerts-Antoine
This commit replaces the "time range menu" in the control panel by a new component: the "comparison menu". Its purpose is roughly the same: compare a period of data in a reporting view with the previous period or the previous year. Its implementation is a bit simpler: it will only appear if at least one date filter is selected in the search view, and will suggest to compare each selected date option with the previous period or the previous year. Task ID: 2245719 Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com>
2020-06-04[REF] web: force dropdown menu icon through getterJulien Mougenot
Before this ref, the dropdown menu got his icon directly from his props. This means that any inheriting class had either to define its icon with the 'default_props' key or to have its parent giving it in the props. Now, the icon is retrieved from the props via a getter (same as title and items) and can be overridden to force a fixed icon on the class.
2020-05-11[FIX] web: do not use groupbys in views not groupableMohammed Shekha
Before this commit: A problem occurs with kanban views that are not groupable (i.e. for which searchMenuTypes does not contain 'groupBy'): if the action has a default groupby (set in Studio for instance) then it is still applied and causes crashes. That happens in the documents kanban view for instance. More generally, if a view is not groupable, some information on groupbys can appear in the interface (in a facet) while not used/useful for the view. After this commit: - if a kanban view is not groupable, a default groupby will never be applied. - if a view is not groupable, we ensures that - the search query generated in the control panel has groupBy = [], - groupbys cannot be represented in a facet. closes odoo/odoo#51041 X-original-commit: 91c80291e90127792623476d8997fd2a67569170 Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-05-04[IMP] web,*: search menus always visiblepka-odoo
Part of task 2234547 Co-authored-by: Mohammed Shekha <msh@odoo.com> Co-authored-by: Aaron Bohy <aab@odoo.com>
2020-05-04[IMP] web: FavoriteMenu: move 'Save Current Search'pka-odoo
Move it above the separator. Part of task 2234547 Co-authored-by: Mohammed Shekha <msh@odoo.com> Co-authored-by: Aaron Bohy <aab@odoo.com>
2020-04-29[FIX] web: search many2one fields with correct valueJulien Mougenot
Before this commit, searching a many2one field in the search bar would create a domain with a parsed version of the input string. However the parser of m2o fields returns a number (ID) and would consistently return 'NaN'. Now, raw values are taken as is when searching with many2one fields. Task 2239254 closes odoo/odoo#50410 X-original-commit: bac74010daae868da474de9439bc7027d9206e38 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-04-20[FIX] web: set selection fields' default value in custom filtersJulien Mougenot
Before this commit, the 'selection' fields were treated like 'char' fields in the "Add Custom Filter" menu of the control panel's filter menu. This meant that their value was defaulted to "". Now, the default value of a selection field is its first selection value. closes odoo/odoo#49772 X-original-commit: 62b62570725bc8eb3d3fa77fd1e8efd7a4fb5d2b Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-04-16[REF] web,mail: use patchMixin and patch instead of utils.patchMichael Mattiello (mcm)
This commit replaces the use of utils.patch by the new class patcher and makes the renderers that are converted to owl patchable. closes odoo/odoo#47700 Related: odoo/enterprise#9551 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2020-04-06[FIX] web: empty search bar value on autocomplete closeJulien Mougenot
Before this commit, the value of the search bar remained when the auto-completion dropdown was closed (via click out or "Escape"). This was inconsistent with the behaviour of the search bar which is supposed to show the auto-completion values related to the search input. Now, the value is cleared when the dropdown closes. Task 2227590 closes odoo/odoo#49066 X-original-commit: 1c3e6ef0a5946ce415c9a210546b207011a51b3d Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-03-20[FIX] web: do not activate falsy search defaultsMathieu Duckerts-Antoine
Before this commit, if an action context would contain a key/value pair like search_default_foo : 0 the filter foo would be activated, while it should be not considered as default. The present commit fixes that situation. closes odoo/odoo#47958 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-03-13[REF] web: Control panel OwlJulien Mougenot
Refactoring of the control panel with the Owl framework. The MVC structure of the control panel has been changed to a 'component <-> model' relationship. As such: - Removed the old control panel: view/model/controller/renderer - Created a new Owl Component (ControlPanel) - Created a new class: the Model (an Owl Store did not fit here) and a newly designed ControlPanelModel extending it Refactored all inner subcomponents, including: - Pager - ActionMenus (peviously SideBar) - Filter menu > Custom filter item - Group by menu > Custom group by item > Removal of groupby_menu_mixin (and refactored graph controller in sibling commit) - Time range menu - Favorite menu > Custom favorite item > Moved the favorite menu registry to the favorite_menu file - Search bar > Removed and splitted auto-completion dropdown logic between the new SearchBar Component (descriptions) and to the new ControlPanelModel (domains). The templates (all in web/base.xml) have been adapted to the new standards. Most of the DOM structure remains unchanged with some occasional improvements (replace hiding with not rendering, removed pointless wrapper divs, etc.). Part of task 2196029 Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>