summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields/basic_fields_tests.js
AgeCommit message (Collapse)Author
2017-12-06[MERGE] forward port branch saas-16 up to b8540eefe3bChristophe Simonis
2017-12-05[FIX] web: BinaryFile not download when new recordLucas Perais (lpe)
Let's have: - on res.company a binary file field named x_file - on res.users a related binary field to company_id.x_file, and make it readonly - On the res.users form view, display the new field Before this commit in create mode, upon clicking on download the file, the server crashed, because the record id was empty. Then, the JS crashed in turn because of the unhandled 404 from the server. Since the id of a new record will always be unset, we choose to disable the download option in this very specific case OPW 777042
2017-11-28[MERGE] forward port branch saas-16 up to 3f66814a0d0Christophe Simonis
2017-11-22[FIX] web: readonly monetary field onchange currencyAlexandre Kühn
Before this fix: A readonly monetary field was not updating its currency symbol when selecting another currency. Scenario: 1. Activate multi-currency with $ (default) and € 2. In hr_expense, go to My Expenses to Submit 3. Create a new expense 4. Select 'EUR' as currency => Unit Price is correctly updated with €, but not Total. With this fix: Total displays the correct currency in edit mode. Explanation: Monetary fields in readonly are relying on _formatValue() to display their value. _formatValue() uses this.formatOptions.currency, which stores the currency at loading of the field. We must update its value whenever there is a change of currency. opw-783378
2017-11-21[FIX] web: fieldDependency should be in fields tooLucas Perais (lpe)
Commit f45edfbe6d03b15977392dda9561cd7a3e16ce34 fixed a bug on image fields but was a partial fix. The problem is that while adding field dependencies to fieldsInfo, it did not add them in the fields of the view, making the view crash. After this commit, views and subviews contain fieldDependency as both info and actual fields of the view OPW 780021, 781620, 779649 [FIX] web: tests on many2many subviews closes #20891
2017-11-20[FIX] web: empty field char should be set to falseGéry Debongnie
With the new views, empty char fields were sent to the server as '' (empty string) instead of false. This is not the correct behaviour, and actually cause some problems. For example, if you have a char field with a unicity constraint, then you cannot set it to '', since there is only one record that can take that value.
2017-11-13[FIX] web: JournalDashboardGraph widget crashAaron Bohy
The JournalDashboardGraph requires nv, which is lazyloaded. Before this rev., a crash occurred when this widget was instantiated and destroyed before the loading of the lib was complete (because a function of the lib was called in destroy()). For instance, press F5 (to ensure that nv isn't already loaded), activate some throttling in the network tab, go to Accounting and as soon as the dashboard shows up, click on another menu. opw 781628
2017-10-27[MERGE] forward port branch saas-16 up to 8fdac4b6b2fChristophe Simonis
2017-10-27[FIX] web: mock server should add a __last_update fieldGéry Debongnie
A recent fix in web changed the field FieldImage to make sure it also loads a __last_update field. This is fine, except that a test in enterprise (web_clearbit_tests) was using a field image, and failed because it could not find the __last_update field in the demo data. With this commit, we make sure that the mock server is always aware of the __last_update field.
2017-10-25[FIX] web: image widget is dependent on its record's last_updateLucas Perais (lpe)
As a way to optimize loading, images are not necessarily fetched in db. They have, in their url a "unique" parameter, which is the last_update date on **the record** and controls on the python-side whether it should get the image from a cache or from the db. Before this commit, this __last_update field wasn't present in the view, so it wasn't fetched, and writes on a model's image worked but did not refresh. The image displayed was the old one. After this commit, when the image field widget is present, we force the loading of the __last_update field of the record. Upon update, the image displayed is the new one. OPW 777552 closes #20457
2017-10-20[MERGE] forward port branch saas-16 up to dc2a6c6cd2aChristophe Simonis
2017-10-20[FIX] web: deal with `date` widget on datetimeMartin Geubelle
This use case was not correctly managed as the function evaluating if the value has changed compares datetime and date. This triggered an issue if the widget `date` was set on the field `date_order` on a purchase order for example ; it was not possible to create a record as the datapoint was set `dirty`. This rev. ensures that a `field_changed` is not triggered if the day is the same on a date widget. This rev. also adds support of `datetime` fields on date widget, which appears to be a valid use case. Fixes https://github.com/odoo/odoo/issues/20311
2017-10-20[FIX] web: correctly render the field imageMartin Geubelle
Before this commit, the image was directly built without using the corresponding template, which set some properties on the image (class, width, etc.).
2017-10-18[FIX] web: domain field should never be considered unsetqsm-odoo
Indeed, false was already considered as "[]" in edit mode.
2017-10-16[FIX] web: tab navigation with phone widgets in form viewKhoi Nguyen
This commit ensures that tab navigation works properly when editing a form view that contains input fields with phone widgets. Previously, pressing TAB would skip those fields.
2017-10-16[FIX] web: tab navigation with phone widgets in form viewKhoi Nguyen
This commit ensures that tab navigation works properly when editing a form view that contains input fields with phone widgets. Previously, pressing TAB would skip those fields.
2017-09-28[MERGE] forward port branch saas-16 up to 89df681b458Christophe Simonis
2017-09-27[FIX] web: tests: invalid XML in the archAaron Bohy
not detected by the runbot... but so the test isn't executed.
2017-09-26[FIX] web: fix o_row mechanism with phone fieldDavid Monjoie
The o_row class mechanism is supposed to be used to put another element next to a field, like a button for example. However, in the case of phone and email field, the o_text_overflow hack gets in the way. The problem that o_text_overflow is trying to solve is when you have a long email, the table used to display the form view fields tends to use very long cells (td) so it can display the whole email address. This behavior completely breaks the form view, even though the email address is clearly set to wrap in css. The o_text_overflow class is a hack that forces the table to think that the email is small, then defaulting to the width 50% css rules. If the email is too long, it is correctly wrapped inside the cell, without breaking the form view layout. However, when we need to add a button next to those fields, this hack gets in the way of the o_row class css rules, completely wrecking it. We looked for a fix with qsm-odoo for hours but were unable to find one that did not require a complete rewrite of the form view css rules. In the end, we decided to remove the hack from the phone field and keep it on the email field, as we think it is less common to have a very long phone number than to have a very long email.
2017-09-26[FIX] web, google_drive: fixed display of field linkLucas Perais (lpe)
Before this commit, a field handled with a widget url was given its value (href) as its text, fully displaying the url. Moreover, the display was odd and did not match that of buttons After this commit, if the field contains a text attribute, we use is as the text of the link. The link also correctly displays and looks like a button (in a form view) Of course, a test for this new field widget feature is implemented closes #19587
2017-09-20[FIX] web,base: document template widget in settingsDeep Patel
Go to General Settings, click on 'Change Document Template', and in the opened dialog, click on a template. Before this rev., it automatically closed the dialog, which was not really convenient. This rev. introduces a new field widget (image_selection) for this use case, and ensures that the dialog doesn't close when a template is selected. Test written by @mba-odoo
2017-09-19[MERGE] forward port branch saas-17 up to 2a343d7c9c4Christophe Simonis
2017-09-19[MERGE] forward port branch saas-16 up to c3a48da767bChristophe Simonis
2017-09-19[FIX] web: FieldDomain: don't open record from selectionPratima Gupta
The FieldDomain allows to open a list in a dialog to display the records matching the current domain. In this dialog, clicking on a record should do nothing (this was the behavior before the new views). Before this rev., it actually tried to open the record and it produced a crash.
2017-09-14[IMP] web, *: add kanban column progress barsqsm-odoo
* crm, project Add a new feature which allows to put a progressbar in the kanban columns. The progressbar shows with the same color the amount of records whose value of a given field are the same in the column. It also indicate the sum of another given field or simply the total number of records. It also allows to subgroup the column content. To define a progressbar, add this as a direct child of the kanban arch: <progressbar field="<name of the field to use for subgroups>" colors="{<one possible value for the above field>: <success, warning or danger>, ...}" sum="<name of the field to sum or nothing to use total number of records>"/> Also: - Properly update record model data's parentID when moving a record - ...
2017-09-07[IMP] web: improved date field usabilitySanjay Jamod
- datepicker doesn't default to current date by default - date string in the input is now selected when clicking the field - adapted the existing tests to the new changes
2017-09-06[FIX] crm: module crm_voip doesn't exist anymorefwi-odoo
Since the refactoring of VOIP, there is no more a module crm_voip but only voip.
2017-08-31[MERGE] forward port branch saas-17 up to fe77df3ba48Christophe Simonis
2017-08-30[MERGE] forward port branch saas-16 up to 600d0159387Christophe Simonis
2017-08-29[FIX] web: WidgetDomain: don't crash on false domainAaron Bohy
Before this rev., when the value of a field with widget='domain' was false, the search_count RPC made to display the number of records matching the domain crashed, and the widget displayed that the domain was invalid. This rev. adds a fallback on [] when the domain is false.
2017-08-29[FIX] web: always display handle widgetKhoi Nguyen
Before this commit, a list containing a handle widget would only display the handles associated with non-zero integer values. This is due to the fact that unset fields are hidden in Odoo, while a field is by default considered 'defined' if its value is truthy. We override the isSet method for the handle widget to always return true. This tells the handle widget that the associated integer value is always defined, thereby ensuring that the handle will always be shown.
2017-08-28[MERGE] forward port branch saas-16 up to 4ac347735d4Christophe Simonis
2017-08-25[FIX] web: tests: correctly destroy viewAaron Bohy
2017-08-24[MERGE] forward port branch saas-17 up to 877e7098719Christophe Simonis
2017-08-23[MERGE] forward port branch saas-16 up to aec6248bb37Christophe Simonis
2017-08-18[FIX] web: missing test case for fix 0966f75bAaron Bohy
2017-08-17[FIX] web: always use browser timezoneAdrien Dieudonne
With the new views, we stopped using the browser timezone to display the dates in Odoo, and we used the timezone defined on the User profile instead. When loading the webclient, the timezone offset was put into the session and used to display all dates. This wasn't a good idea. The given offset was computed for the current time, meaning that it may be incorrect for specific dates (e.g. with the daylight saving, the UTC offset of today is not the same as 6 months ago). Moreover (but less likely), as the offset was stored in the session, it wasn't recalculated afterwards. So if the offset actually changed during the session (e.g. from or to daylight saving time), the displayed dates were incorrect until the user reloaded the page. With this rev., we don't retrieve the offset from the server anymore and we use the browser timezone again (like before the new views). However, we keep the computation of the offset (on the fly) in the session, so that it can be mocked in the test environment.
2017-08-17[FIX] web: don't apply timezone offset for date fieldsAdrien Dieudonne
Before this rev., all date fields values were off by one day as soon as the user timezone was negative. With the new views, all dates manipulated by the JS are moment instances in UTC, and when being displayed, they are correctly formatted in the user locale by applying the timezone offset. However, this should obviously not be done for date fields as when no time is specified when creating a moment instance, it defaults to 00:00:00, so applying a negative offset always leads to the day before. Remark: It happens that datetime fields are displayed as a date (e.g. purchase order line form view). In that case, the offset is applied on the displayed date.
2017-08-14[FIX] web: fix copy (Ctrl-C) of text field content in FirefoxKhoi Nguyen
Before this commit, it was not possible to copy the contents of a multiline text field in read-only mode in Firefox without losing all line breaks in the process. This is due to a bug affecting div tags (see https://bugzilla.mozilla.org/show_bug.cgi?id=1390115) in Firefox. This commit ensures that the text in a text field is surrounded by a span (as opposed to div) tag. Note that spans were used in saas-15, so we are in fact simply undoing the change to divs introduced by the new views.
2017-08-09[IMP] account: Add a new boolean_favorite widgetJigar Patel
Purpose ======= Projects and soon sales teams have a manual "favorite" button that calls a toggle_favorite method It should actually be a widget on a boolean field Specifications ============== Develop a favorite widget for kanban view that allows to toggle a boolean field Probably update boolean field to allow inverse method on it Functionally nothing changed.
2017-07-28[MERGE] forward port branch saas-16 up to b76109173a8Christophe Simonis
2017-07-27[FIX] web: InputField: don't re-render if dirtyAdrien Dieudonne
Let's assume that we have a form view with a one2many field displayed as a list containing two fields A and B (an input field, e.g. a char field). An onchange on the one2many is triggered as soon as A changes. This triggers a reset of the one2many which thus redraws the corresponding line by resetting its widgets. A problem occured when the user updated A, and directly (before the onchange returned) updated the input field B, as in this case the new value in B was erased when the onchanged returned, as the widget was reset with its former value (or with the value returned by the onchange, if any). Note that the model was aware of the change on B, so the model and the UI were actually desynchronized. This was quite hard to reproduce in practice, by hand, but it occured in the tour testing 'the flow', in the form view of account.bank_statement, with fields partner_id and amount of the line_ids one2many. With this rev., we don't re-render the input fields if there are pending changes that haven't been acknowledged by the model.
2017-07-07[ADD] web: Add new widget to toogle a boolean with a sliderAnkit Sathvara
Purpose ======= Currently, it's not possible to activate a boolean on a non-editable list view without adding 2 buttons linked to a python method. These buttons aren't aligned and the result is not pretty. This commit adds a new widget that allows to toggle a boolean record by record by clicking on the slider.
2017-06-29[FIX] web: prevent dirty state after testGéry Debongnie
The test changed in this commit had a big issue: it did not properly destroy the second form view that it created. Because of that, it was still alive and could interact with other tests, such as the barcode tests. This is what happened: 1. var form was assigned to a form view 2. form was destroyed 3. in a try catch, form was reassigned to the result of createView, but the evaluation of createView crashed (after creating a form view), so the assignation was not done, and the var form was still pointing to the first form view 4. form.destroy is called, which did nothing for the second form view. There is no easy way to get the reference to the form view created by createView without changing some other code, so we simply remove the second part of the test, which was not particularly important.
2017-06-28[FIX] web: FieldText: keep editing the textarea after enterMartin Geubelle
In the editable list, when pressing enter, the cursor goes to the next line and the current row is saved. This should not be the case for a textarea (i.e. in the FieldText widget). In this particular case, we just want to continue editing the textarea.
2017-06-27[FIX] web: MonetaryField: rerender with currencyAaron Bohy
The MonetaryField can be rendered with or without a currency. The currency can change during the lifecyle of the widget (e.g. currency field in the view, whose value is set by an onchange). More precisely, the widget can be instantiated without currency, then a change on another field can trigger an onchange which sets the currency, and our monetary widget is re-rendered with a currency. Before this rev., this wasn't supported in edit mode because the $el's root node was different if there were a currency or not (it was an input if there were no currency, and a div containing an input and a span otherwise). This root node being rendered only once (at the creation of the widget), the widget wasn't re-rendered correctly if the currency was suddenly set or unset. This fix makes the widget behave uniformly whether or not there is a currency, so now it is always a div containing an input (and optionally a span if there is a currency).
2017-06-23[FIX] web: update filename correctly in binary fieldsDavid Monjoie
The update_field event is not used anymore so it needs to trigger a field_changed instead.
2017-06-22[FIX] web: set 0 as default value for numeric fieldsMartin Geubelle
When creating a new record, the numeric field default value should be 0 in order to avoid manually setting mandatory fields to 0. This behaviour has been removed with the new views but one wants to restore it. The `mockRead` function has also been adapted in this commit because the server returns 0 for unset numeric fields.
2017-06-16[FIX] web: FieldWidgets: use correct format/parse functionsAaron Bohy
Field widgets must format and parse values according to the widget type, not to the field type. For example, if a monetary field is inserted in a form view with widget="float", the field's value must be formatted with the float formatter, not the montetary one. This wasn't the case before this rev.
2017-06-09[FIX] web: adapt tests to 3741603495532e218b66f3cfa0272e4536f1cf2cqsm-odoo
The datepicker is now forced to be in the <body/>, so the tests had to search it in there.