summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields/relational_fields.js
AgeCommit message (Collapse)Author
2019-01-23[MERGE] forward port branch 11.0 up to 984a99611eeChristophe Simonis
2019-01-23[MERGE] forward port branch saas-15 up to 3cba1862d44Christophe Simonis
2018-11-28[MERGE] forward port branch 11.0 up to bb6f6c57f97Christophe Simonis
2018-11-26[FIX] web: propagate can_create into the search popupLucas Perais (lpe)
When creating a SO line and clicking on search more for product_id Before this commit, every user had the button "Create" to create a product.product After this commit, only user in groups that actually can create a product have the button OPW 1910371 closes odoo/odoo#28924
2018-10-16[MERGE] forward port branch 11.0 up to b29b545fe84Christophe Simonis
2018-10-12[FIX] web: don't allow reference widget to be set on char fieldslen-odoo
The reference widget is expecting a models list as selection attribute in the field declaration. It does not exist in the case of the char field. Support for char fields was added to allow for external identifiers, but it only works in readonly. As a consequence, it tracebacks in Edit mode when used in studio. We thusly remove char field from the list of supported fields. opw 1892602 closes odoo/odoo#27708
2018-09-05[MERGE] forward port branch 11.0 up to 213759b03e5Christophe Simonis
2018-09-03[FIX] web: tab selects first many2one entry without triggering spurious createlen-odoo
Suppose you select a customer for a sale order. You type the beginning of his name "think", and a name_search is triggered which finds matching results, with first result "Think Big Systems". There are three ways to select it: click, enter or tab. Now there can be a warning set on this customer ("Bad client, only accept cash", or "good client, offer discount"). In that case, clicking on tab would trigger the onchange displaying the warning, but it would also set floating to true, which means a dialog to create client "think" would appear. This happens if the onchange is delayed, and thus the call to reset the floating state is triggered only after the focusout completed, instead of before. Coauthored with @aab-odoo opw 1866619 opw 1874475
2018-07-05[MERGE] forward port branch saas-11.2 up to 45329c0cf2cChristophe Simonis
2018-07-05[MERGE] forward port branch 11.0 up to 84210074e55Christophe Simonis
2018-07-03[FIX] web: Email attachment issueGoffin Simon
Steps to reproduce the bug: - Go on a SO and click on "Send by email" - Remove the attachment and click on "Add an attachment" - Choose an attachment A and remove it by clicking on the cross - Click on "Add an attachment" and choose the attachment A Bug: The attachment didn't appear in the modal. opw:1862482
2018-05-09[MERGE] forward port branch saas-11.2 up to aae54ecc159Christophe Simonis
2018-05-08[MERGE] forward port branch 11.0 up to f2e105eeca4Christophe Simonis
2018-05-08[FIX] web: use correct href in link for m2oMohammed Shekha
With a better href, many2one in readonly mode can be opened in new tab. Related to task: #32919
2018-05-04[MERGE] forward port branch 11.0 up to 8dade01e2c5Christophe Simonis
2018-05-04[FIX] web: one2many form view with action buttonAaron Bohy
Assume a one2many field inside a form, displaying field A in its list view, and a field B in its (dialog) form view. Moreover, there is an action button in the dialog, which updates the value of B. Before this rev., B wasn't correctly reloaded when the button was clicked, because the BasicModel reloaded the fields on the list view (i.e. field A), whereas it should reload the fields in both views. This fix is twofold. First, we force the viewType to 'form' when the record is reloaded, instead of the default ('list'), so that fields in the form view are correctly reloaded. Second, when we open the form view in the dialog, we add the fields of the list view to the dict of fields of the form view, so that the form is aware of those fields and can ask the model to reload them (still without displaying them). Fixes #24189
2018-04-18[MERGE] forward port branch saas-11.2 up to fed775bc0c2Christophe Simonis
2018-04-18[MERGE] forward port branch 11.0 up to 8c64159b884Christophe Simonis
2018-04-17[FIX] web: focus select in reference widgetMartin Geubelle
In the reference widget, the focus was always on the input (many2one) even though the first select (with the model) was not set. Thanks to @kaerdsar for the original PR. Partially closes #24070
2018-04-16[MERGE] forward port branch saas-11.2 up to 90f8f17fb4fChristophe Simonis
2018-04-16[MERGE] forward port branch 11.0 up to ad825b673b5Christophe Simonis
2018-04-12[FIX] web: one2many: add new record with 'Save & New'Aaron Bohy
Consider the following scenario involving a one2many list (non editable) inside a form view: - click on 'Add an item', a model opens, - fill the fields and click on 'Save & Close', - reopen the freshly created record, - maybe make some changes (this is optional, but makes sense), - click on 'Save & New', - fill the fields and click on 'Save & Close', -> the second created record isn't added to the list. The problem comes from the fact that when the dialog is opened for the second time (in this case by clicking on a record), the 'save' handler registers an 'UPDATE' command. While this is correct for the 'Save & New' click (as we update an existing record), this isn't for the second record which doesn't exist yet, and thus requires an 'ADD' command. This rev. ensures that the two cases are handled in the 'save' handler given to the dialog. OPW 1829723
2018-04-10[IMP] web: keyboard navigation in form viewVincent Schippefilt
The goal of this commit is to allow fast entry of the same model using the keyboard for navigating through the form once, by blocking the user from advancing in the form if there is a required field or once they went through the form once to get them to a primary action (button) This commit includes the following changes 1) Enable moving forward from field to field using the TAB key 2) Entering the one to many and many to many using the TAB key a. When entering it, set the focus on the "add new line" link or button b. When adding a new line, set the focus on the field visible editable field of the new line c. Discard adding a new line with ESC key d. If the user leaves the first field empty and uses TAB, we will cancel the adding of a new line and move to the next field of the form 3) When a field is required and not filled in, do not allow the user to move out of the field using the TAB key (the user is still allowed to use the mouse though), mark the field as invalid instead 4) After going though the form once, using the TAB key on the last field will move the focus to the first primary button of the page 5) When the focus is on a primary button (EDIT/SAVE), the user cannot move the focus forward using the TAB key. Hitting TAB again will display a tooltip telling to hit ENTER to activate the button. The mouse is still available to move the focus. 6) When the user saves, the focus is placed on the first primary button of the form renderer (like VALIDATE for a new invoice) 7) On dialogs, primary buttons should stop the users from moving out of them, and showing a popup if the user tries 8) When closing a dialog, the focus will be moved back to the widget that opened it. This commit does not include the following features 1) Navigation with the keyboard on a selection one to man 2) Navigate between tabs in a form using the keyboard 3) Cancelling the adding of a new line in a many to many using the ESC key do not set the focus correctly 4) Enhancing the focusses fields (like blue underline)
2018-04-06[MERGE] forward port branch 11.0 up to d277adf4d59Christophe Simonis
2018-04-05[FIX] web: no record abandon on discard from default_get/onchangeAlexandre Kühn
Before this commit, when some records were created from an `onchange`, we have the following weird behaviour: Suppose that this record has some required fields that are empty. When we click on this record, then somewhere else, the record disappears from the list. This is because the records contains invalid fields, and it is wrongfully assuming that the record to be discarded comes from "Add an item". A previous commit [1] fixed a bit this issue with `default_get`, but since it relied on a fragile heuristic, we decide to apply the correct fix with this commit. [1] https://github.com/odoo/odoo/commit/b09f0c99be2b13d33986414485556d87da186d65
2018-04-05[IMP] web: Allow user to set custom 'create_text' for x2m fieldsDharmraj Jhala
For x2many relational fields(of type kanban), we shoud be able to set custom label for 'Create / Add' button by adding 'create_text' node option on particual field from xml. Right now, 'create_text' is only handled for many2many fields, preventing users to set custom label for one2many fields. This commit allows users to set Create Button label for both m2m and o2m fields.
2018-03-21[MERGE] forward port branch saas-11.2 up to 500e3f49705Christophe Simonis
2018-03-20[MERGE] forward port branch 11.0 up to 2835d299792Christophe Simonis
2018-03-14[FIX] web: unselect current row before changing pageGéry Debongnie
The issue here is quite simple. If we are editing a multipage one2many field, then we click on the pager, we need to properly unselect the current row. If we do not do that, then we can enter invalid data. For example, assume that there is a readonly field. We click on add, it creates a (virtual) record with no value for that field. When we click on the pager, we select the next page, and bypass all validation.
2018-03-14[FIX] web: prevent issues with pager and x2m and limitGéry Debongnie
When we are in the process of adding a record, we do not want to update the pager count. The reason is that if the user is at the limit (so, 1-40/40, no pager visible), then click on add, there will be a pager shown with 1-40/41. Now, imagine that the record currently being added as a required field, and the user clicks on the pager. In that case, we need to discard the newly added record (bringing the total back to 40), then move to next page, which does not exist anymore. So, to fix this issue, we simply consider that a record being added does not count, from the point of view of the pager.
2018-03-14[REF] *: put `clickable` in widget options for statusbarMartin Geubelle
The widget statusbar was using an attribute `clickable` on the field widget to define if the statusbar was clickable. This attribute is in fact not a field attribute but a widget option so it has been moved accordingly. Note that a retro-compatibility adapation is done in the field widget.
2018-03-09[MERGE] forward port branch saas-11.2 up to 42659dc70c2Christophe Simonis
2018-03-05[IMP] web: Add an Item --> Add a Line in One2manyList (item is weird for ↵Fabien Pinckaers
some objects- )
2018-03-01[MERGE] forward port branch 11.0 up to c2e878e34c8Christophe Simonis
2018-03-01[FIX] web: prevent footer from being rerenderedGéry Debongnie
In some cases, the footer in a form view dialog could be duplicated. The reason was that the form view was rerendered completely, footer included, by the renderer, out of the formcontroller control (it is the formcontroller's job to move the footer buttons to the footer). A possible fix is to work on the form renderer to make it aware that the footer buttons are expected to be only rendered once, but it has the disadvantage to be a fix specific to this issue, and any other form view behaviour with some side effects may have the same issue. This commit tries to prevent the form view from rerendering itself completely in those cases. This also has the disadvantage of possibly not being a complete fix, if some edge cases are missed. However, I have the feeling that we still want to avoid rerendering the full view if possible.
2018-02-01[MERGE] forward port branch saas-11.1 up to 7e469eb77aaChristophe Simonis
2018-02-01[MERGE] forward port branch 11.0 up to f5e7b866860Christophe Simonis
2018-02-01[FIX] web: sequence handlers on modal's one2many listLucas Perais (lpe)
From a form view (say Bill of materials) Edit the form Click on a bom line Click on the external button that makes the product form pop up change the order of suppliers on that product Before this commit, a JS traceback was raised This was because the changing object was not present in the localData that the Model object holds or more accurately, it was not the **right** model object that was targetted and this was due to the propagation of the resequence event After this commit, no error is thrown, and the resequencing works as expected OPW 807196
2018-01-10[MERGE] forward port branch saas-11.1 up to f6ef0c77609Christophe Simonis
2018-01-10[MERGE] forward port branch 11.0 up to ff0abd214c8Christophe Simonis
2018-01-05[FIX] web: sort and onchange in tabbed editable x2mChristophe Matthieu
Two attempts of dealing with sorting (and resequencing) in tabbed (multi-pages) x2many editable lists (see odoo/odoo@c2563db and odoo/odoo@983c7ae) have been previously done, using a static attribute (`keepChangesUnsorted`) on the datapoint. This solution sadly only covers both cases separately, not if they are combined. Morever, onchanges were not correctly managed in neither of these two cases. A new approach is used here, by "freezing" and "unfreezing" the datapoint when needed, which is more flexible. Some modifications have been introduced: - when ordering a x2many, all records are now considered (and not only the records on the current page) ; an additional read is thus done on the sorted field for all records in the x2many relation - `setSort` is now asynchronous as a `read` might be needed
2018-01-03[MERGE] forward port branch saas-11.1 up to 726b91b9fbcChristophe Simonis
2018-01-03[MERGE] forward port branch 11.0 up to fe22a0f9ca9Christophe Simonis
2018-01-03[IMP] web: many2many editable list with X remove icon (#20978)Alexandre Kühn
In many2many lists, the remove record from the widget is a trash bin. It is confusing, as people feel they are deleting it when they are only unlinking it. So in many2many, we propose to change the trash icon by a 'X'. This icon appears in many2many relations and in many2many widgets: even though hr.expense.sheet defines the expense lines as a one2many, it uses a many2many widget, so we use a 'X' instead of the trash bin. To avoid ambiguity, we decided to rename 'delete' to 'remove'.
2018-01-02[FIX] web: Fix column_invisible issue (#21693)Sanjay Jamod
[FIX] web: Fix column_invisible issue This commit fixes an issue with the column_invisible attribute. When we choose product variant for BOM for any particular product, at that time from the BOM Lines column "Apply on Variants" is hidden, but when we unset product variant from BOM Form, at that time the column 'Variants" set to visible. but in this case, it is set to hidden always. PR 21693, OPW 779555
2018-01-02[FIX] web: Fix column_invisible issue (#21693)Sanjay Jamod
[FIX] web: Fix column_invisible issue This commit fixes an issue with the column_invisible attribute. When we choose product variant for BOM for any particular product, at that time from the BOM Lines column "Apply on Variants" is hidden, but when we unset product variant from BOM Form, at that time the column 'Variants" set to visible. but in this case, it is set to hidden always. PR 21693, OPW 779555
2017-12-22[FIX] web: upload file widget keep metadata freshNicolas Lempereur
When modifying files the a widget FieldMany2ManyBinaryMultiFiles would not keep its metadata (currently associating attachment to [url, allowUnlink]) up with current value. So with an attachment added after init: - clicking on it would error (because link is wrong) - deleting it would unlink attachment originating from from onchange The expected behavior is: - being able to download attachments - not unlinking attachment originating from onchange and this is what this commit fixes. opw-787746 closes #21813
2017-12-18[FIX] web: better mode handling, prevent useless work in some casesGéry Debongnie
Before this commit, the way mode was handled was not optimal. The end result was correct (the widget were properly created/displayed in edit/readonly as required), but useless work was done. In particular, if we have list/x2manys with widgets and modifiers, it could happen that widgets were created in edit mode, then destroyed and recreated in readonly mode. This could happen in some important views, for example, any view with a field many2many_tags with a readonly modifiers (pretty much all views handling taxes) In this commit, we add a 'editable' attribute to list renderer. This is necessary, because the list renderer is not actually editable when it is in a x2many in a form view which is in readonly mode. Also, we need to manage the distinction between the fact that a list view is editable, and the fact that some widgets are created in edit and other in readonly mode, depending on modifiers, and on which line is being edited. We also add a benchmark (courtesy of CHM) to be able to measure the performance impact of edit/readonly/onchange in a larger form view. Before this commit, running this form benchmark on my machine gave a number of 0.4 op/sec, and after, it increases to 1.26 op/sec, so a pretty large improvement.
2017-12-12[MERGE] forward port branch 11.0 up to b37cc1f9b78Christophe Simonis
2017-12-12[MERGE] forward port branch saas-16 up to a2ea4ba095cChristophe Simonis