summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic
AgeCommit message (Collapse)Author
2019-08-23[FIX] web: grouped list with <groupby> node and onchangeAaron Bohy
Let's assume an editable grouped list view with a <groupby> node containing subfields, and an onchange. Edit a row to trigger the onchange. Before this rev., it crashed because the onchange specs was incorrect: it followed the relation of the many2one and thus included its subfields (whereas it should only follow the relation for x2many fields). For example, go to Accounting > Accounting > Sales and edit the label of a move line. Task 2044187 closes odoo/odoo#36001 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-08-19[MERGE] forward port branch 12.0 up to 32039b2ab44Christophe Simonis
2019-08-12[FIX] partner_autocomplete, web: autocomplete error when suggested company ↵Jorge Pinna Puissant
has a country - Change the company's country to Finland; - Go to Contacts and click on Create; - Tick the Company box above the Name field; - Start typing into the Name field; - Click on a company with a VAT number under its name. Before this commit, a Traceback appears. This occurs because the response of the request with the suggested company has the fields 'company_name' and 'company_code' and these fields are not in res_partner. Now, the suggested company is parsed to correctly field the country field. opw-2049636 closes odoo/odoo#35631 Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-08-06[MERGE] forward port branch saas-12.2 up to 9e74730a26bChristophe Simonis
2019-08-06[MERGE] forward port branch 12.0 up to ff9ddfdacc9Christophe Simonis
2019-08-06[MERGE] forward port branch saas-11.3 up to 97d81f1220bChristophe Simonis
2019-08-02[MERGE] forward port branch 11.0 up to 593f631e5ebChristophe Simonis
2019-07-31[FIX] web: init makeRecord fields with correct valuesLucas Perais (lpe)
In the calendar view In the partner filter in the calendar side bar type something, and backspace rapidly to remove everything Before this commit, there was a error because the framework tried to write something in the corresponding field This was because the o2m field was not initialized with the correct values After this commit, there is no error OPW 2043975 closes odoo/odoo#35330 Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2019-07-18[FIX] web: execute action from new record and go backAaron Bohy
Let's assume a form view with a readonly many2one field with a default value. When creating a new record, the user can click on the many2one value, which should open the related record in a form view (stacked in the breadcrumbs). Before this rev., this didn't work: we actually came back to the previous view/action in the breadcrumbs, when trying to open the related record. closes odoo/odoo#33172 Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
2019-07-16[MERGE] Forward port of 12.0 to saas-12.2 up to 1bd434da34731b546Martin Trigaux
closes odoo/odoo#34901 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-11[FIX] web: batch read of m2m in o2m after onchangeAaron Bohy
Let's assume a one2many field (editable list) in a form view with a many2many (e.g. many2many_tags), and an onchange on the one2many such that, when a row is added to the relation, the server returns update commands for (a subset of) the records being already in the relation. For thoses updated records, the many2many field needs to be read (the onchange only returns the ids in the relation). Before this rev., the many2many field was read independently for each record in the one2many. This could cause a performance issue on large relations. For instance, this was the case on account.invoice records with a lot of lines. This commit must be forwardported up to 12.2, not further. Issue 2027356 closes odoo/odoo#34771 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-07-11[FIX] web: batch read of m2m in o2m after onchangeAaron Bohy
Let's assume a one2many field (editable list) in a form view with a many2many (e.g. many2many_tags), and an onchange on the one2many such that, when a row is added to the relation, the server returns update commands for (a subset of) the records being already in the relation. For thoses updated records, the many2many field needs to be read (the onchange only returns the ids in the relation). Before this rev., the many2many field was read independently for each record in the one2many. This could cause a performance issue on large relations. For instance, this was the case on account.invoice records with a lot of lines. Issue 2027356 closes odoo/odoo#34785 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-07-03[FIX] web: form: combine field and renderer classnamesAaron Bohy
The rendering of field widgets is asynchronous (as it returns a native Promise). However, the '_renderFieldWidget' method of basic renderers is sync, and returns a fake div that will be replaced by the widget'$el afterwards. The form renderer sometimes needs to add classNames on the rendered nodes (e.g. each child of an outer group as class 'o_group_col_x'). To handle this, once the field widget is ready, we copied all attributes of the fake node to the widget's node. Unfortunately, we were erasing the attr value (e.g. className) by the new one. As a consequence, the className defined in the widget were lost. This could be observed for the 'note' field in 'sale.order'. As this was only necessary for classNames, this rev. only retrieves the class attribute of the fake node, and adds it to the classNames of the widget's $el. closes odoo/odoo#34528 Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
2019-05-06[MERGE] forward port branch saas-12.2 up to 78b3b650b0dChristophe Simonis
2019-04-08[FIX] web: correctly update modifiers in editable list with buttonsMartin Geubelle
Since rev. odoo/odoo@015958d it is possible to add buttons in list group headers. These buttons are defined in <groupby> nodes, pointing to m2o fields. Modifiers specified on these buttons thus use fields on the m2o comodel. There was a traceback in editable list view, when grouping by a m2o that defines a groupby button with modifiers as the modifiers are not registered with the same datapoint. When updating the modifiers, one must ensure that the modifier are related to the updated record. closes odoo/odoo#32456 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-04-02[IMP] web: fetch records alongside read_groupAaron Bohy
This rev. adds params to the 'web_read_group' method, allowing to search_read records inside each groups in a single RPC, instead of doing a 'web_read_group' RPC followed by n 'search_read' RPCs, where n is the number of opened groups. Part of task 1915702
2019-04-02[IMP] web,board: enable pagination in grouped listsAaron Bohy
With this rev., when there are a lot of groups in a grouped list view, groups are displayed under several pages, whereas they were all displayed in the same page before. This is especially interesting with the new 'expand' attribute, to ensure that we don't read records for a large number of groups. By default, the groups limit is set to 80 (like records), and to 10 is the 'expand' attribute is set to true. This limit can be overriden with the 'groups_limit' attribute. Part of task 1915702
2019-04-02[IMP] web: list: add expand attrsAaron Bohy
When this attribute is set to true on the <tree> root node, in a grouped list view, first level groups are automatically opened. Part of task 1915702
2019-04-02[IMP] web: list: editable grouped list viewsRavi Gadhia
This rev. enables the editable feature in grouped list views. Part of task 1915702 Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Martin Geubelle <mge@odoo.com>
2019-03-13[MERGE] forward port branch 11.0 up to c23d1186e7bChristophe Simonis
2019-03-08[FIX] web: record datapoint context without group_by or orderedByLucas Perais (lpe)
Have a list view, apply a group_by and a filter with a sort parameter Click on one record to access the form view Have a x2m within it Before this commit, the x2m records were loaded with a context containing the keys orderedBy and group_by It seems harmless at first, but even conceptually those keys should not be here - they apply on a list of records, and not to individual ones - they may contain field names not existing in the x2m model Hence, when accessing another list view through an action button, the list will try to be orderedBy or group_by with the given context Which is plain wrong in the first place and may cause crashes After this commit, the context of a record datapoint (representing a single record) is stripped from the keys Read the opw for a concrete use case OPW 1943583 closes odoo/odoo#31706 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-04-24[FIX] web: grouped Kanban: traceback on click during reloadPriyanka Kakadiya
Have a grouped Kanban view with an x2many field. Interact with the searchview, and then click anywhere. The fetch of the x2many relational data is batched for the whole view a single RPC for all groups) since e10fd346. If the click occurs before all search_read are done (i.e. before the fetch of relational data is started), there is a crash. This is due to a call to get({raw: true}) to obtain the current model's state, which is currently being reloaded and in an intermediate state. Ideally, this shouldn't happen, but with the sync API of get, we can't change that easily. So at most, we can ensure that it doesn't crash. Moreover, sensitive functions requesting the state for the data can do that in the mutex to ensure that the state isn't currently being reloaded. Related to Issue: 1937149 closes odoo/odoo#32587 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com> Co-authored-by: Mohammed Shekha <msh@openerp.com> Co-authored-by: Aaron Bohy <aab@odoo.com>
2019-03-14[MERGE] forward port branch saas-12.1 up to ff1bca32f3aChristophe Simonis
2019-03-14[MERGE] forward port branch 12.0 up to a26496b6e79Christophe Simonis
2019-03-14[MERGE] forward port branch saas-11.3 up to f5ab04ce509Christophe Simonis
2019-04-01[FIX] web: correctly update this.widgetsMathieu Duckerts-Antoine
Old subwidgets of a widget inhereriting from BasicRender were not correctly destroyed. This was the cause of various problems when cycling over this.widgets.
2019-03-28[IMP] sale_product_configurator: improve p. configuratorAurélien Warnon
Task #1891970 Original p. configurator commit d3530eb Purpose ======= - The p. configurator now comes with a widget that is "o2m" like in the SO lines view. The widget is only used on the added "product_template_id" field on the SO line. This widget controls the opening of the configuration window and removes the need of a "Configure a product" button. The "SectionAndNoteListRenderer" is now cleaned from p. configurator specific code. The widget is also responsible for handling the configuration provided by the p. configurator form and applying it on the SO line with a 'field_changed' event that updates all the necessary fields. - Added support for 'MULTI' and 'DELETE_ALL' operations on X2Many fields in basic_model.js - 'MULTI' allows to batch multiple operations at once - 'DELETE_ALL' behaves like 'DELETE' with all the current data of the field Spec ======= - remove "configure a product" from sale order lines When the product configurator is active, replace the product_product_id by a product_template_id in the sale order line. When we select a template without variants, it sets the variant automatically, but when we select a product template having variants, it opens the configurator dialog. - add a widget to modify the product configuration in the sale order line (next to product template field) - UX improvements: - Invert image and configuration in the main screen - If the product doesn't have an image, hide it instead of showing the placeholder (only for first screen?) - new independent option in sales settings to activate product configurator. (same in e-commerce) - demo data: Change demo data to set Customizable Desk & Conference Chair as make to order - If only one attribute value that is Custom, don't display radio, selection or even color box
2019-03-20[REF] web: correctly reuse read_group old datapointMartin Geubelle
Rev. odoo/odoo@5c6a7c9 made a change to reuse an old group datapoint when performing a read_group, instead of restoring *some* properties of the old group (so basically a `_.omit` instead of a `_.pick`). This is a bad idea as some properties were bound to the new datapoint (`evaluateModifiers` for example) so it doesn't make any sense to update the old datapoint with theses properties. closes odoo/odoo#31956 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-03-22[FIX] *: pass context in kwargs in rpc callsRaphael Collet
2019-03-25[MERGE] forward port branch saas-12.2 up to 230ad8c381eChristophe Simonis
closes odoo/odoo#32088 Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-03-06[REF] web: adapt code after jQuery updateVincent Schippefilt
Part of task 1896658 Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Christophe Matthieu <chm@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com> Co-authored-by: Martin Geubelle <mge@odoo.com> Co-authored-by: svs-odoo <svs@odoo.com> Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
2019-02-18[IMP] web: reload currencies when activating onesvs-odoo
Active currencies are given in session_info, in the page source. When the user activated a new currency, he had to reload the page to make the browser aware of that new currency (without reloading, there was no currency symbol displayed next to the amounts). This rev. forces a reload of the currencies each time a currency is edited. Task #1838654 closes odoo/odoo#31192
2019-02-13[IMP] web: add kanban searchPanelAaron Bohy
This rev. defines a searchPanel widget used in Kanban views to refine search according to specific dimensions. This wigdet is displayed as a sidebar to the left of the kanban view. Part of task 1892462 Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: Raphael Collet <rco@odoo.com>
2019-02-11[MERGE] forward port branch saas-12.1 up to 93d736e905eChristophe Simonis
2019-02-07[MERGE] forward port branch 12.0 up to a46138cb019Christophe Simonis
2019-02-06[FIX] web: only call name_get when necessaryAaron Bohy
For many2one fields, 'default_get' only returns the id, whereas 'onchange' (like 'read') returns an array with id and display_name. Before this rev., when creating a new record, we always called 'name_get' for all many2ones, whether or not their value was obtained by 'default_get' or 'onchange', i.e. even if their display_name was already known. It may just look like unnecessary RPCs, but those RPCs could actually cause a crash when the user has access to the main model (and thus can access the display_name of the many2one thanks to related sudo), but doesn't have access to the many2one comodel. closes odoo/odoo#30892
2019-02-06[FIX] web: hang when saving then discardingVincent Schippefilt
When editing a record, if it cannot be saved (b.e. due to required fields) and the user clicks on save, then on discard Before this fix, the window did nothing (seems like it is unresponsive) After this fix, the user is able to discard the form. task-id: 1937142 closes odoo/odoo#30871
2019-02-06[FIX] web: pass x2many context to subrecordsAaron Bohy
Before this rev., the context specified on an x2many fields (in the arch) wasn't fully propagated to the subrecords. This means that it couldn't be used, e.g., in the template of the sub kanban view (see parent commit). PR: #30881
2019-01-31[MERGE] forward port branch 12.0 up to cb8fefa8999Christophe Simonis
2019-01-28[FIX] web: reset the dynamic domain when discarding changesNans Lefebvre
Create record A on form view, on which a dynamic domain is added by an onchange. Switch to kanban view. Quick create a record B. Click edit. This sends you to the complete form view to edit the record. The dynamic domain of A is still applied. When discarding the changes, the _domains attribute was not reset. Example of a model on which this flow can be reproduced is helpdesk.ticket, with _onchange_partner_project providing the new _domain. test courtesy of @aab-odoo opw 1920874 closes odoo/odoo#30308
2019-01-08[MERGE] forward port branch 11.0 up to c07b7200b26Christophe Simonis
2019-01-04[FIX] web: X2Many read propagates field contextNicolas Lempereur
Most operations on X2Many widget possibly propagates a field context (name_create, name_search, ...) but the original read or read on an onchange does not. With this changeset, the field context is also used in these instances. The assertions added in the added test failed with: expected: ["world"], result: [undefined] expected: ["world","world"], result: [undefined,undefined] fixes #29203 opw-1914466 closes #29866
2019-01-02[MERGE] forward port branch 11.0 up to d82c0d133edChristophe Simonis
2019-01-14[FIX] web: form: call discardChanges while savingAaron Bohy
Before this rev., there was a race condition when the user did some changes on a form view (triggering an onchange), saved and clicked on the breadcrumbs to leave the form view (before the onchange returned). As a consequence, the dialog telling the user that there are pending changes was displayed. This mostly occured on the main_flow_tour since the removal of an unnecessary check, and could be reproduced manually on a slow network. Basically, the check if there were pending changes was done too early (before the view was actually saved).
2019-01-08[MERGE] forward port branch saas-11.3 up to 2d824a5b7adChristophe Simonis
2019-01-04[MERGE] forward port branch saas-11.3 up to 27a084eb814Christophe Simonis
2018-12-19[FIX] web: read records up to list limitlen-odoo
Fine-tuning of commit e7fab234201e357da52c3576ad2e8fc9ceee9359 In a one2many with more than one page with a limit of k records, add a line l. It increments the list limit to k+1. Remove a line above (of index <= k). It will try to load a line l' to replace it, that it will find on page 2. However when deciding if it should read missing fields on that record, it will scan at most u records, skipping virtual ids. Here u is the min between the current number of lines and the list limit without the temporary increase due to the added record. Since there are at least two pages, u = k. However since l is in the list at index k, then l' won't be read, and since it was on page 2 its data hasn't been loaded. Therefore the js would traceback when trying to evaluate it. opw 1913361 closes odoo/odoo#29338
2018-12-18[FIX] web: x2m in x2m with different fields in different viewsMartin Geubelle
Use case: a x2m (ex: attribute values) displayed in a x2m (ex: attributes on product) using different fields in different views (ex: tags in product form view and list in product attribute form view). When opening the x2m record (in a wizard) then going back on the form view, the tags are empty because the `display_name` value has been lost when fetching x2m for the second time. In this case, the list `fieldsInfo` needs to be updated with the existing (default for tags) one so all the fields will be correctly loaded. Task 1916891 closes odoo/odoo#29598
2019-01-18[MERGE] forward port branch 12.0 up to f854e01a983Christophe Simonis
2019-01-09[MERGE] forward port branch 12.0 up to 3e4138deaa2Christophe Simonis
closes odoo/odoo#30045