summaryrefslogtreecommitdiff
path: root/addons/base_import/static/src
AgeCommit message (Collapse)Author
2021-05-17[FIX] *: update documentation links Following the recent reorganisation of ↵Victor Feyens
the documentation in 12.0+, the majority of the documents have been moved and their old links are no longer valid. Some redirection rules will soon be deployed, but those rules might be dropped in some years and we want the links to still work, which is why we still replace the links to the new ones. FW-Port of odoo/odoo#70675 (13.0) closes odoo/odoo#70728 X-original-commit: 85c24961ab9ff5c1c79eb7415c97c46d9a77cca3 Related: odoo/enterprise#18283 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-10-19[FIX] *: update document linksSwapnesh Shah
Before this commit, links to the documentation were referenced the previous version, 13.0, instead of the current one, 14.0. Eventhough there is a redirection done by NGINX of a "versionless" URL to the latest one (e.g. /documentation/user/general/auth/google.html -> /documentation/user/14.0/general/auth/google.html as of today), the goal is to keep links owrking for users that will still be using the 14.0 in three years (and should not endup on the 17.0 doc). closes odoo/odoo#59554 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-26[FIX] base_import: remove uppercase under FavoritesHardik Prajapati
this commit removes unnecessary uppercase used under the favorites menu task - 2325684 closes odoo/odoo#56545 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
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-07[FIX] base_import: fix re-importing same filejvm-odoo
Issue Chrome - Sales > Product - Select a file - Change something in the file - Re-select it Nothing changed Cause Chrome doesn't trigger change on input if the file is the same Solution Clear the input value after the parse_preview so we can load a new file even if the preview failed. OPW-2288191 closes odoo/odoo#54175 X-original-commit: f7d2bdf65901e3ee78e1055cab7cf8d60f798621 Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.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-02[FIX] base_import: ensure reloaded file is validJulien Castiaux
The *Reload File* import functionality stands on an undefined behavior or the HTML File API. The API is not clear about what should done in case the underlying file change on the filesystem after it has been imported in the browser. It turns out the actual behavior vary among browsers and even among OSes. The *Reload File* button only works as intended when importing files via Chrome on Linux. In other cases, the browser may refuse to send the file or may send it in a corrupted HTTP request. Such malformed request is rejected in the best cases by the backend web application but there is chance it hangs. Security-wise, this problem is not much likely to happen as it requires an authenticated user with importation privileges to perform the operation. When it comes to the severity, it is possible to exhaust the available workers by forcing every one of them to hang. As there is a security impact, we decided to disable the *Reload File* functionality. Steps to reproduce ------------------ 1) Import a CSV or XLSX document in any model. 2) Wait for the data visualization to come back to the browser. 3) Change the file on disk to a) remove a few lines b) add a few more lines. 4) Click the Reload button. Wrong `size` attribute on Firefox. ---------------------------------- Impact: Firefox The advertised `Content-Length` HTTP header in the POST request is a) *greater* than the actual body length. The backend web application hangs on a `socket.recv` like function waiting for those missing bytes. b) *smaller* than the actual body length. The request is truncated and futher processing is impossible. The malformed request should have been detected and reported by the http web application as requested by the HTTP/1.1 spec [1]: > When a Content-Length is given in a message where a message-body is allowed, its field value MUST exactly match the number of OCTETs in the message-body. HTTP/1.1 user agents MUST notify the user when an invalid length is received and detected. Mitigating the issue is possible using nginx as reverse-proxy. The connection is closed after one minute if data are missing. Invalid `ERR_UPLOAD_FILE_CHANGED` --------------------------------- Impact: Chrome on Windows Chrome prevent sending the XHR due to a `ERR_UPLOAD_FILE_CHANGED` error, this error should only happens when the underlying file content have been changed the second before the request. On Windows, the error is triggered as soon as the file have been changed, not considering the modification time. [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html Section 4.4 opw-2252440 closes odoo/odoo#52276 X-original-commit: 30be09cdb7d5b80fb1e0221f58024586bd72ac61 Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com> Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
2020-05-04[IMP] base_import,*: move Import button to Favorite menupka-odoo
*account,crm_iap_lead,hr_expense Part of task 2234547 Co-authored-by: Mohammed Shekha <msh@odoo.com> Co-authored-by: Aaron Bohy <aab@odoo.com>
2020-01-16[IMP] base_import: improve preview table UISapan Zaveri
Task 1919628 closes odoo/odoo#30430 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-11-26[IMP] base_import: support multiple xlsx sheetsJulien Castiaux
Excel can store data in multiple tables, each is called a sheet. Odoo was only importing the first sheet making the process to import a file containing multiple sheets cumbersome. It is now possible to select the sheet in the import options. By default the first sheet is selected. closes odoo/odoo#40728 Task: 2043768 Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-10-03[FIX] v13 urlsmreficent
Was still pointing to old links closes odoo/odoo#37859 Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
2019-09-13[ADD] base_import: batching (& some other features)Xavier Morel
various UI changes ------------------ * renamed "test import" button to "test" * move relation fields thing to debug mode * remove "Defer parent/child computation" option as it was deprecated / removed from the backend in 80f1ac3599ee630e7556ff4fcf3eb192931eccd8, turns out this checkbox existed inactive for longer than it's been of any use (added in 68cb2ade09206b0abb3f7c8dccb5d35a6499f802 on 2017-11-29, made non-operating on 2018-01-24, that's so sad) batching -------- * add support for batching imports (skip & limit parameters) * modify client to use batched imports & properly adapt responses so it still looks like a single import for the client (more or less) e.g. update row numbers in error messages, etc... * properly handle partial imports though * disable usual loading throbber to have a single progress notification displayed continuously throughout all the batches: the normal throbber only shows after 3s of waiting for an RPC response, so it would keep flashing in and out (appear 3s into a batch's import then disappear at the end only to reappear 3s into the next batch's loading) NOTE: the limit is row-wise. If a record straddles the limit (because of nested O2M records), the record is imported in full and the "next row" is whatever row follows the record. This means a limit of 10 can lead to an import of 17 lines, and as the progress indicator is in records# the increments can jump around. Task 2059448
2019-08-28[FIX] base_import: layout issuesAaron Bohy
This rev. makes the 'Formatting Options' area responsive. Closes #34257 Task 2007558 closes odoo/odoo#36159 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-08-23[FIX] import: Avoid empty error messagejbm-odoo
2019-08-20[IMP] base_import: Improve import general UX (back2basics)Yannick Tivisse
Purpose ======= Improve error management UX on import. TaskID: 2049992 closes odoo/odoo#35804 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-06-05[IMP] *: use new helper config.isDebug()Romain Derie
Before this commit, both config and session were aliases to odoo.debug. Now, config.isDebug() should be call, with possibility to pass a parameter to check if we are in a specific debug mode such as 'tests' or 'assets'. task-1934445 Coming with https://github.com/odoo/enterprise/pull/4281 Closes https://github.com/odoo/odoo/pull/33213
2019-04-02[IMP] web: list: import attrsAaron Bohy
The 'import' attrs is valid according to the rng definition of the list view. It is used in a few views in Odoo. However, it didn't actually work (in most cases, it worked by chance because it is set to "0" in addition to create="0", and create="0" already disables the import feature). With this ref, the 'import' attrs is taken into account and we can now disable the import feature even if the create one is enabled. Moreover, it is now documented.
2019-03-06[REF] base_import: 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-13[IMP] web, *: remove explicit references to `session_id`Martin Geubelle
Since rev. odoo/odoo@f4d541e the `session_id` cookie uses the `httponly` flag so it cannot be accessed through client side script. But before this rev. the `session_id` was still provided by the server to the webclient (in session_info, mostly) and was stored and accessible. This made XSS injection more dangerous than they should be as it was very easy to steal the `session_id`. As the browser automatically set the `session_id` on every request to the server, the webclient shouldn't need any explicit reference.
2018-12-11[FIX] base_import: adapt import client actionGéry Debongnie
With the recent control panel refactoring, abstract actions had to be adapted. The base import action is actually quite complicated, it relies on introspection and is fragile. With this commit, I attempt to make it work again. The main issue is that now, the root of the abstractaction is a div, which contains the root of the content template, so most of the code was assuming that the $el of the import action was the form tag, and not a parent. Note that there are no meaningful tests for import actions, because testing iframes are tricky. closes odoo/odoo#29421
2018-12-07[REF] *: adapt all client actionsAaron Bohy
to ControlPanel/Search view refactoring. The ControlPanel being now inside the DOM of client actions, those existing widgets needed to be adapted (in the way they define if and how they want a ControlPanel, and in the way the manipulate their DOM as it slightly changed). Tests needed to be adapted as well. Part of task 1893568 Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: Martin Geubelle <mge@odoo.com>
2018-10-09[FIX] v12 urlsmreficent
Was still pointing to old links closes odoo/odoo#27443
2018-10-03[FIX] base_import: show error message in some situation where it was missingXavier Morel
On an AccessError, the relevant message is passed as the first arg. But the import error handler would only check for the second arg (if any) then fallback on error.message, which is missing entirely when the issue is raised as an except_orm subclass.
2018-09-03[FIX] base_import: 'Create if does not exist' optionJPR
2018-08-16[FIX] base_import: fix formatting options structureDavid Monjoie
It used to work by chance with Bootstrap 3, but since we are now using Bootstrap 4, the fake good appearance collapsed, revealing the awful structure it used to have.
2018-08-16[ADD] base_import: debug option to create M2O/M2M recordsMohammed Shekha
Adds a checkbox to import columns (in debug mode) allowing a user to create records M2O and M2M records not found (via name_search). Task ID: 1850633 * uses a context key to avoid altering basically all the import callstack * attempted to lift the creation in the `_str_to_*` functions and create m2m via commands, but that doesn't really work out
2018-08-13[IMP] base_import: error message on transport/HTTP failureXavier Morel
Attempt to clarify/improve error message (and avoid traceback) when import fails due to some intermediate system e.g. memory error or gateway timeout. Task 38254 Closes #20627 This change is loosely related to 35d452cffbb1554c70f0acba85dfc4ef472f544c and PR #24854 in the sense that that was an attempt to better handle transport/gateway issues during file download.
2018-08-09[FIX] base_import: import options layoutXavier Morel
Broke during bootstrap 4 migration.
2018-08-09[IMP] base_import: date-parsing patternsXavier Morel
* expand auto-detected date and time patterns (e.g. %b, %I, ...) * try to make date-pattern-detection clearer * add a select2 dropdown for date patterns (with a bunch of preselected patterns) rather than just an input * also try to improve other column-matching bits (e.g. less reliance on exceptions, attempts to avoid redundant work)
2018-08-07[IMP] base_import: attempt to automatically guess the separatorXavier Morel
It would probably be even better to iterate the file content and get the non-quoted non-alphanumeric characters as separator candidates (instead of a hard-coded list) however Python does not seem to have a decoding iterator (taking bytes and yielding an iterator of codepoints or even grapheme clusters) — incidentally uniseg seems to require up-front decoding as well — so that's not really convenient as we may be dealing with large-ish files and not want to load it entirely in memory. An alternative would be to use TextIOWrapper and iterate the file by buffers of a few ks, and classify that based on either codepoints or grapheme clusters.
2018-08-07[IMP] base_import: reintroduce encoding selector & override guessXavier Morel
* if an encoding is explicitly specified, use it and don't guess * otherwise guess and return the guessed encoding so it can be displayed in the configuration UI * fix less-than-stellar configuration & behaviour of select2 inputs to properly reflect underlying values as they get modified, to correctly handle future configuration guesses
2018-08-06[FIX] base_import: avoid using the same color for background and fontXavier Morel
That turns out to make the text completely invisible, which is not very convenient for warning and error messages which we may want the user to read.
2018-08-06[IMP] base_import: swap load and reload buttonsXavier Morel
Task 1870663
2018-08-02[FIX] base_import: BS4, visible error text on import failqsm-odoo
In BS3, the combination "text-danger" and "bg-danger" worked as the red color for texts was not the same as the red color for backgrounds. With BS4, they are the same so it does not make sense. Fortunately, we introduced a mixin customization which automatically selects the correct color according to the background. So removing the "text-danger" part is enough to make sure the text will be visible over "bg-danger" background.
2018-07-27[REF] *: BS4, adapt col-related classesqsm-odoo
col-lg-* -> col-xl-* col-md-* -> col-lg-* col-sm-* -> col-md-* col-xs-* -> col-* col-lg-offset-* -> offset-xl-* col-md-offset-* -> offset-lg-* col-sm-offset-* -> offset-md-* col-xs-offset-* -> offset-* col-lg-pull-* -> order-xl-1 col-md-pull-* -> order-lg-1 col-sm-pull-* -> order-md-1 col-xs-pull-* -> order-1 col-lg-push-* -> order-xl-2 col-md-push-* -> order-lg-2 col-sm-push-* -> order-md-2 col-xs-push-* -> order-2
2018-07-27[REF] *: BS4, rename border-radius related variablesqsm-odoo
$border-radius-base -> $border-radius $border-radius-large -> $border-radius-lg $border-radius-small -> $border-radius-sm
2018-07-27[REF] *: BS4, adapt font-size and padding variablesqsm-odoo
BS variables were renamed or changed and all (most) variables now use 'rem' units instead of 'px' unit.
2018-07-27[REF] *: BS4, rename btn-default to btn-secondaryqsm-odoo
BS4 "btn-default" class was replaced with "btn-secondary", which makes more sense.
2018-07-27[REF] *: BS4, remove the use of btn-smqsm-odoo
Odoo made the bad choice of using the 'btn-sm' class for every button instead of configuring the padding for default 'btn' to be smaller. In BS4, the style of btn-sm is actually more complex, lowering the font-size too. Also, btn-xs was removed so we would not have the possibility to display smaller button than our default ones. This commit removes btn-sm wherever it was used. Unfortunately, this might remove it at some places where it made sense but this can be restored in a second time.
2018-07-27[REF] *: BS4, adapt display classesqsm-odoo
The system completely changed. I also had to adapt classes to new screen breakpoints. hidden/hide -> d-none show -> d-block hidden-xs -> d-none d-md-(block/inline/...) hidden-sm -> d-md-none d-lg-(block/inline/...) hidden-md -> d-lg-none d-xl-(block/inline/...) hidden-lg -> d-xl-none visible-xs-* -> d-* d-md-none visible-sm-* -> d-none d-md-* d-lg-none visible-md-* -> d-none d-lg-* d-xl-none visible-lg-* -> d-none d-xl-* hidden-print -> d-print-none visible-print-* -> d-none d-print-* ... and all possible combination of those had to be handled too.
2018-07-27[REF] *: BS4, adapt media queriesqsm-odoo
media queries that target a specific screen size handled by bootstrap have now a more convenient way to be defined: ``` @​media (min-width: $screen-sm-min) { ... } -> @​include media-breakpoint-up(sm) { ... } ``` ``` @​media (max-width: $screen-sm-max) { ... } -> @​include media-breakpoint-down(sm) { ... } ``` ``` @​media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { ... } -> @​include media-breakpoint-only(sm) { ... } ``` ``` @​media (min-width: $screen-sm-min) and (max-width: $screen-md-max) { ... } -> @​include media-breakpoint-between(sm, md) { ... } ``` Also, bootstrap has changed the values for its default screen sizes: ------------------ | BS3 | BS4 | ------------------ 0 | XS | XS | -> Portrait Mobile 576 | / | SM | -> Landscape Mobile 768 | SM | MD | -> Portrait Tablet 992 | MD | LG | -> Landscape Tablet / Small Desktop 1200 | LG | XL | -> Desktop ------------------ While it is possible to configure BS variables to behave as BS3, we took the decision to keep the BS4 variables untouched. BS4 system seems indeed better and having the purest bootstrap possible is better for Odoo to be used as a framework.
2018-07-25[IMP] base_import, web: add view switcher and h 'Import' button in mobileHiral Bhavsar
As there are a few chance that someone will import something on a mobile view. So, we hide the button 'Import' in a mobile view. For mobile view, we added a view switcher button and it'll display a list of views buttons. Also set active view's icon as its icon. Related to Task: 1857696 Co-authored-by: Mohammed Shekha <msh@openerp.com>
2018-07-17[IMP] import/export UIsJigar Patel
Task 40692 Various changes to import/export (mainly) UIs: * default to excel & "full" (non-import-compatible) export * auto-detect encoding of CSV using chardet * remember column -> field mapping after having imported a file (useful for repeated imports where auto-matching failed) * better handle localised booleans & column names * automatically select source list view's fields when exporting * better integrate import templates feature and add a number of templates
2018-06-22[IMP] Improve compatibility with screen readers (accessibility) (#24574)kujiu
Today, Odoo is really tricky to use without seeing the screen, it must be improved to be usable. This PR forbid to use labels without a "for" attribute, add some title, rule and aria attributes in HTML. With that, Odoo will be fully usable with a screen reader. * [IMP] Labels must have a for attribute. Improve accessibility. * [IMP] Better error message when trying to read a missing cached value * [FIX] Add some aria-label and title attributes for screen readers. * [FIX] Template name is not included in the error message in case of SyntaxError in QWeb * [FIX] Improve the Tour failed at step error message to be more explicit. * [IMP] Add aria-labels * [FIX] Add missing aria-label on failing test * [IMP] aria-hidden means hidden. Fix all bad aria-hidden and hide aria-hidden for all. * [IMP] Color names on kanban views and many2many tags * [IMP] Add some checks on views for accessibility. * [IMP] Add `alt` attribute on `img` tags. * [IMP] Add aria-label and title on non-described icons * [IMP] Add button role to widgets with btn class * [IMP] Translate aria and formatted attributes. * [IMP] Remove wrong aria-labelledby * [IMP] Add menu role on dropdowns * [IMP] Buttons must be focusable * [IMP] Add aria attributes on progress bars * [IMP] Improve accessibility of basic widgets * [IMP] Change main layout to more semantic tags * [IMP] Add menuitem role when missing * [IMP] Remove wrong role='presentation' * [IMP] Improve accessibility of tab panels * [IMP] Add aria-invalid on invalid fields * [IMP] Add aria-sort on ordered columns * [IMP] Add role on alerts * [IMP] Use dialog role, header, main and footer tags for modals * [IMP] Add labels on o_status * [IMP] Improve accessibility of kanban view with feeds and articles * [IMP] Add alerts in case of new messages * [IMP] Add widget, navigation or img role to aria-labelled items
2018-04-25[IMP] base(_import),web: mute Add/Create button in x2mDipali Tank
... by setting it 'btn-default', because users hesitate between that button, and those in the control panel. Task 32950 Co-authored-by: dbh <dbh@odoo.com> Co-authored-by: aab-odoo <aab@odoo.com>
2018-04-18[REF] *: get rid of introduced @​extendqsm-odoo
During first scss convertion, classes called as mixins were changed to an @​extend instruction which was the best approximation given the fact there is no equivalent in sass to do that. The problem is that the instruction is slowing the scss computation a lot and might also break the style in unexpected ways because of the complex unwanted selectors the instruction induces. This commit removes the need of extends. This is done case per case. Sometimes this involves adding classes in xml, sometimes to change the style a little, ... The button rendering refactoring which was made at the start of the LESS to SASS merge was also done in prevision of this. After this commit, sass computation is like 5-6 times faster than less computation while it was like 10 times *slower* before this commit.
2018-04-18[REF] *: convert less content to scss contentqsm-odoo
Convert content so that the assets compile on app installation. The style is still broken after this as the variables/mixins/... are not defined in the right order (as it did not matter in LESS but does in SCSS). This commit basically changes: - Variables: @​var_hello -> $var-hello - Mixins: .mixin_world() {} -> @​mixin mixin-world {} - Classes used as mixin: .my_class() -> @​extend .my_class - Here there were no other solution than to convert the use of a mixin call by the use of an extend as a first approximation - LESS functions -> SCSS functions (e.g. fade -> rgba) - Move first variable definition before the variable is used - Still need to make sure last variable definition is at the right place
2018-04-18[REF] *: rename all LESS files to SCSSqsm-odoo
This is a simple renaming without adaptation.
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