summaryrefslogtreecommitdiff
path: root/addons/web/static/src
AgeCommit message (Collapse)Author
2020-10-28[FIX] web: DropdownMenu autoclose behavior should match BootstrapRomain Estievenart
Before this commit, with an opened DropdownMenu component, when the user clicks on a Bootstrap's dropdown the DropdownMenu doesn't close. This issue is due to a conflict between the global click listener registered to close the DropdownMenu and the listener registered by the Bootstrap dropdown: the last one prevents the event from bubbling up to the `window` element and be handled by the first one. This commit fixes it by enabling the `capture` flag on the DropdownMenu global click listener, giving it the opportunity to handling it properly and close the DropdownMenu. Note: this commit also fixes an issue when a dialog is opened from a DropdownMenu (like the favorite's delete action) and prevents it from closing in the background (e.g. when the dialog is still opened). opw-1879566 closes odoo/odoo#60909 X-original-commit: e4f87710e16357f24f388159a7b1e82eccda598a Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
2020-10-22[FIX] web: keep new widget el in ComponentAdapterMichael Mattiello (mcm)
Before this commit, when sub widget replaced its el, the ComponentAdapter parent kept the previous el. This caused some issues as in the ActivityRecordAdapter which lost its event listeners when re-rendered. This commit forces the ComponentAdapter to keep the new sub widget el after being patched. task id: 2360021 closes odoo/odoo#60517 X-original-commit: 393b5fd4cfba254ad054a526996e82922f9057e2 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Michaël Mattiello <mcm-odoo@users.noreply.github.com>
2020-10-16[FIX] web, doc: remaining_days widgetNicolas Martinelli
The `remaining_days` widget is intended to be used for informative purpose, hence it should not be editable. opw-2362276
2020-10-19[FIX] web: raise Warning triggers a tracebackJulien Castiaux
Create a Server Action with the following code: `raise Warning("")`, when the SA is executed it opens the crash manager with a traceback instead of the user error modal. The `odooExceptionTitleMap` data structure lists all Odoo exceptions that descend from UserError, this structure is used within the `rpc_error` function to filter pure Python exceptions from custom Odoo ones. opw-2365689 closes odoo/odoo#60248 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2020-10-19[FIX] web: correct count of dayMartin Trigaux
Introduced at 2f67881d4517b78 Taken an event with start_date: 2020-10-01 stop_date: 2020-10-02 allday: True The date was displayed as "01/10 - 03/10 (2 days)" instead of "01/10 - 02/10 (2 days)" closes odoo/odoo#60062 X-original-commit: 68774135ad827ff4d9fc678ce8e839a717459623 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-10-15[FIX] web: calendar widget has undefined attrsnie
Backport of #59876 closes odoo/odoo#60124 X-original-commit: 5d4ae907934b90dda4ac9fb3b5080e632b677219 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com> Signed-off-by: backspac <backspac@users.noreply.github.com>
2020-10-15[MERGE] l10n_be_hr_payroll: Validate the CP200 different payslipsfw-bot
Purpose ======= In Belgium, the job market is divided into "sectors": chemicals, metals, banks, department stores, pharmacies ... This breakdown is made on the basis of the activities of the company. In order to be able to ensure the functioning of the sectors, each sector has its own consultation body, called the "joint commission". A joint committee is a consultation body in which representatives of employers and unions set, after negotiation, the minimum wage conditions as well as the working conditions in legal texts, called “collective labor agreements”. These are applicable to all employees in a specific sector. These are agreements that employers and workers in a given sector must make and respect. These agreements may be different from one sector to another. Each sector has its label and number. The CP 200 is the auxiliary joint committee of employees (CPAE). About a quarter of private sector companies and employees in Belgium are found in CP 200. This makes it the largest and most diverse CP in the country! TaskID: 2352568 Specification ============= Most of the different use cases that we can face in belgian payroll for CP200 have been tested and validated by a fiscal expert. Briefly, it covers the following use cases: - Unpaid time off - Legal time off - Credit time - Classical - With paid time off - With unpaid time off - With sick time off - Starting in the middle of a month - Full time (O hours / week) - Half-days in working hours - Classical - With full-day time off - With half-day time off - Low salaries - Back-to-work - Sick time off - Relapse - Guaranteed salary - Long sick off (+1 month) - Student contracts - Posted Employess - Without ONSS - Wihtout withholding taxes - Public Holiday - Classical (during the working hours) - Compensation (during the week end) - After the end of the contract - Note: Variable compensation is not handled yet, but it's planned - Brief Holiday (In french: "Petit Chômage") - 1 day - 1 week - Note: Variable compensation is not handled yet, but it's planned - 1 day for unpredictable reason - End of contract in the middle of the month - Half-days time off - New design of the payslip to improve readability The detailed list of the fixes/improvements is the following: - 1/ hr_work_entry_contract: Define 1 leave work entry per presence Purpose: Some sick time off have to be defined into different work entry types, according to the type of sick leaves. Example: after 30 calendar days of sick leaves, the employee is not paid by the same organism and therefore, the time off should be reported into different work entry types. Specification: Instead of creating a big work entry per time off, create as many work entries as there should have been presence work entries. - 2/ hr_work_entries: Prevent users deleting work entries Prefer to archive them instead. - 3/ hr_work_entry: Display work entry type on calendar views - 4/ web: Add styling classes for report Purpose: Those classes are useful for the payslip printed pdf reports, but some of them are useless for any kind of report, and thus the classes have been defined in the web addons. Task-2341886 - 5/ resources: Take company attendances/global leaves on creation Purpose: When creating a new calendar (38 hours/week) on a Belgian company, the new calendar is prefilled on a 40 hours/week basis, even if the company calendar is correctly defined. Specification: Copy the global time off + the attendances on the company calendar on company modification - 6/ hr_holidays: Allow to refuse overlapping time offs Purpose: It's normally not possible to create 2 time off that overlaps on the same period. But, if for a given reason it happens on a production database, it should be possible to refuse those time off. Otherwise, the user is stuck with this wrong configuration. - 7/ hr_holidays: Prevent creating time off of 0 hours Purpose: It makes no sense + it could cause conflicts when generating the work entries - 8/ resource: Add method to retrieve the longest work day Purpose: Add a method on the calendar to retrieve the maximum number of hours an employee is supposed to work. Example: Monday: 8-12, 13-17 Tuesday: 8-12, 13-17 Wednesday: 8-12 Thurday: Off Friday: Off The method will return 8 - 9/ hr_holidays: Adapt query counter due to changes on hr_payroll See: https://github.com/odoo/enterprise/pull/13848/ - 10/ hr_payroll: Update translations Lots of new terms have been added on the printed reports, etc... - 11/ l10n_be_hr_payroll: Consider out of contract public holiday Purpose: If there is a public holiday less than 30 days after the end of the contract, the employee should be paid for that day too - 12/ l10n_be_hr_payroll_posted_employee: Add an easy way to create a public time off Purpose: Public time off should be created via the calendar (at least for belgian companies using payroll). The reason behind this is that there should be a resource.calendar.leaves available even if the employee ends its contract. If it's created using a hr.leave, there won't be any resource.calendar.leave as the employee is not supposed to work anymore at that time. When an employee leaves the company, it's possible that he's paid for public time off if it occurs less than 30 days after the end of his contract. - 13/ l10n_be_hr_payroll: Rename bank holiday into Public holiday Purpose: A bank holiday is a specific holiday name, not the generic one. - 14/ hr_work_entry_contract: Add menuitem to access calendars It shouldn't be required to enter debug mode to access this information. - 15/ l10n_be_hr_payroll_posted_employee: Add support for posted employees Purpose: https://www.socialsecurity.be/citizen/fr/travailleur-salarie-occupe-en-belgique-detache-a-l-etranger - 16/ l10n_be_hr_payroll: Implement guaranteed wage/relapse for sick leaves Purpose: Guaranteed salary for employees: The employee who is incapacitated for work as a result of a work accident, an accident on the way to work or an occupational disease retains, at the employer's expense, the right to his remuneration for the first 30 days of incapacity for work. The daily allowances relating to this period are paid to the employer by the body responsible for industrial accidents or by the Fund for Occupational Diseases. Successive disabilities - relapse: It is possible that a worker will be unable to work during different successive periods. When two incapacities follow one another without interruption (for example, accident followed by illness; successive illnesses of a different nature), there is only one period of incapacity and the guaranteed remuneration is not due again. time. On the other hand, we talk about relapse when a new disability occurs after the worker has returned to work normally. In this case, the guaranteed remuneration is not due again when the new incapacity for work occurs within the first 14 days following the end of a period of incapacity for work giving rise to the payment of the guaranteed remuneration. However, there is still a right to the guaranteed salary for the part remaining to run, if the first period of incapacity has not exhausted the entire right to the guaranteed salary during the first period of incapacity. A new guaranteed wage is also due again when the worker establishes by a medical certificate that this new incapacity for work is due to another illness or to another accident. - 17/ hr_work_entry_contract: Define 1 leave work entry per presence Purpose: Some sick time off have to be defined into different work entry types, according to the type of sick leaves. Example: after 30 calendar days of sick leaves, the employee is not paid by the same organism and therefore, the time off should be reported into different work entry types. Specification: Instead of creating a big work entry per time off, create as many work entries as there should have been presence work entries. - 18/ test_l10n_be_hr_payroll: Add test for full time credit time - 19/ test_l10n_be_hr_payroll: Add test for out of contract credit time - 20/ test_l10n_be_hr_payroll: Avoid undeterministic bug on generated tests - 21/ hr_payroll: Don't display out of contract line on pdf - 22/ test_l10n_be_hr_payroll: Fix undeterministic test crashes - 23/ payroll : Improve the printed payslip report Improves the design of the payslip report Generates the report in the employee's language (add a message if the lang is not official) Adds some data to Laurie Poiret Task-2341886 - 24/ test_l10n_be_hr_payroll_account: Add test for unjustified reasons - 25/ test_l10n_be_hr_payroll_account: Add tests for small unemployment - 26/ test_l10n_be_hr_payroll_account: Add tests for half days time off - 27/ test_l10n_be_hr_payroll_account: Fix false positive - 28/ hr_holidays: Prevent creating time off of 0 hours Purpose: It makes no sense + it could cause conflicts when generating the work entries - 29/ test_l10n_be_hr_payroll_account: Add test for end of contract - 30/ test_l10n_be_hr_payroll_account: Add tests for public holidays - 31/ hr_payroll: Display amount if hourly wage - 32/ hr_work_entry_contract: Allow creating record on gantt view - 33/ l10n_be_hr_payroll: Add new structure for student employees Purpose: Also bring some fixes on fields display + hours/days counts TaskID: 2347843 - 34/ test_l10n_be_hr_payroll_account: Add test for low salaries Ensure the correct computation of the employment bonus. - 35/ l10n_be_hr_payroll: Make separate lines for half/full worked days Purpose: Worked days should be separated between the complete full days and the half days. Example: I work on Monday, Tuesday, Wednesday (half day) The calculation is OK, but the number of days is, in principle, 14 in the month of September 2020 (9 full and 5 in half-days). This number of days should be the subject of 2 separate lines: 9 days - 68.4 hours - € 1,100.77 5 days (in the form of half-days) - 19 hours - 224.33 €. In this case, we cannot use the hourly formula since the monthly salary must always be the same, without having an identical number of working days. The worker benefits from 14 meal vouchers. The number of days must however correspond to the number of meal vouchers so that the worker can check. - 36/ test_l10n_be_hr_payroll: Test credit time with sick leaves - 37/ test_l10n_be_hr_payroll_account: Test credit time with unpaid leaves - 38/ l10n_be_hr_payroll: Don't consider time off as credit times Purpose: When generating the work entries, we compare the standard attendances (i.e. the full time contract) and the credit time attendances to deduct the intervals on which the employee is on credit time. But if the employee is on a time off during a period, those intervals will be removed from the supposed attendances, and then those periods are considered as credit time. - 39/ l10n_be_hr_payroll: Fix credit time amount on payslip computation Purpose: The time credit days must not include a corresponding amount. In fact, no remuneration is linked to the taking of time credits. The necessary modifications are: Code LEAVE300 -> no amount - 40/ hr_payroll: Export standard calendar if needed on payslip export - 41/ l10n_be_hr_payroll: Fix worked days lines amount computation Purpose: The amount was computed as a simple ratio based on the number of days. To be correct and compliant with the law, we should consider the hourly equivalent wage, and compute the amount based on the worked hours. - 42/ l10n_be_hr_payroll: Fix unpaid worked days amount computation Purpose: Don't use the normal wage which is an integer btw. Compute the worked days amount using the classic hourly computation formula - 43/ l10n_be_hr_payroll: Fix unpaid leaves retenues formula Purpose: Unpaid leave must be deducted from the usual gross monthly salary up to the number of working hours concerned. The formula is in principle the following: gross monthly salary * 3/12/38 -> “usual” hourly salary. So, in the case of 2 days of unpaid leave, corresponding to 15.2 hours, the formula is as follows: 2650 * 3/13/38 * 15.2 = 244.61 €. The gross for the days actually worked is € 2,650 - € 244.61, or € 2,405.39 - 44/ hr_payroll: Generate python test from arbitrary payslip When the payroll is incorrect, the feedback that we receive is generally: "this doesn't work". This commit add a route in the controller of hr_payroll, to export in a python file, all data useful to reproduce the exact employee situation about the incorrect payslip. Before testing and fixing the incorrect payslip, we need to anonymize all sensitive data about the employee. This commit converts all sensitive data into demo data. This commit add a button in payslip form view to use the new route to export all data about the incorrect payroll. This button is only displayed when we are in debug mode and the current user is a payroll manager. task-2337786 closes odoo/odoo#60084 Related: odoo/enterprise#14108 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-09-28[FIX] sale_timesheet, web: disable autofocus on create invoce actionKamesh Patel
Before this commit: The date range widget opened by default when the 'create invoices' the wizard is opened. because the default focus is 'Timesheets Period' field. After this commit: Disable autofocus on 'create invoice' action, after this changes The date range widget is not opened by default when the 'create invoices' the wizard is opened. Task-2344289 closes odoo/odoo#58676 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-14[FIX] web: fetching reference fields' name_get batched in grouped listLucas Perais (lpe)
Commit e10fd34682a0c55568cba66eb271b3aa5bed7c1d introduced batched reference fields name_gets across groups but was also buggy as follows: Have a grouped list view showing at least 2 groups Have a reference field with different values showed in the list for each record Before this commit, the name_get of those reference fiels were fetched only for the last group After this commit, the name_get are fetched in a batched fashion (by model) for each group and display correctly closes odoo/odoo#59903 X-original-commit: bbb608a1eff638040f0fc7b951fedf1579cc15b2 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-10-13[FIX] web: Find key in stringified JSONnie
Steps to reproduce the bug: - In Projects, switch to the calendar view - Click a task Bug: Traceback here: https://github.com/odoo/odoo/blob/7ba47e7215df69b6556a848532e4f33ef4243e83/addons/web/static/src/js/fields/basic_fields.js#L2181 TypeError: Cannot use 'in' operator to search for 'invisible' in {} Explanation: We could change the inherited model of CalendarView from AbstractView to BasicView but it would be adding 400 lines of code to every calendar view. So, for now, and to keep it simple, we just parse the modifiers where it's needed to. opw:2352436 opw:2352890 opw:2354039 closes odoo/odoo#59867 X-original-commit: 422c52a0823b1a53eeb974e76d08a44cacf4ea0a Signed-off-by: backspac <backspac@users.noreply.github.com> Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-10-09[FIX] web: fix notification designJérémy Hennecart
Fix the design of he notification which is sometimes broken (if there are lists or buttons display in it for example) task-2346462 closes odoo/odoo#58515 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-10-09[FIX] web: report controller in multi-companyNicolas Martinelli
- Create 2 companies A & B - Set a website on company A - Switch to company B - Open a done MO - Open the cost analysis An AccessError is displayed. The error arises in: https://github.com/odoo/enterprise/blob/923cbffe4e60572a5c17ee962d571c037e9cff44/mrp_account_enterprise/reports/mrp_cost_structure.py#L90 The root cause is coming from the call to `/report/html/`, which is called without any `data`. In this situation, the following adds an incorrect `allowed_company_ids` in the context: https://github.com/odoo/odoo/blob/d1413a2f06bcb44b1fbb6dba8658e698c8da4018/addons/website/models/ir_http.py#L196-L205 Indeed, the `allowed_company_ids` is the one from the website, in this case company A. The issue doesn't occur when downloading a PDF from the interface since in this case the `data` dictionary contains the appropriate context which is set in: https://github.com/odoo/odoo/blob/d1413a2f06bcb44b1fbb6dba8658e698c8da4018/addons/web/controllers/main.py#L1958 As a solution, we add the `user_context` in the `/report/html` route. opw-2341747 closes odoo/odoo#59654 X-original-commit: 932e347a90bfd4bf025e4e8e54ef9c66cc49c5d0 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-10-06[FIX] web: hide action button when no actionPriyanka Kakadiya
Before this commit: the action menu registry items were rendered regardless of their inner state. The problem is that these item components can choose not to render themselves, leading to a blank dropdown menu if no other item was present. To fix this, the "getProps" function of the registry has been altered to act as validation: the item will not be rendered if the return value is falsy. The function has also been made asynchronous to allow RPC calls. This solution is still flawed and hides a bad design choice which is to register components and not items or item getters; this API is too complex for its use case(s) and adds pointless depth to the DOM. The shape of the registry should be simplified in an improvement in master. closes odoo/odoo#59254 Task: 2325587 X-original-commit: 45c7d881a5d130f6b3222749c8c87b6c6b45e910 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mohammed Shekha <msh@odoo.com>
2020-10-06[FIX] web: Disables pager on enterJulien Mougenot
Before this commit, the pager component would only quit the edit mode if its value changed when hitting Enter. Now, when pressing Enter while the pager value did not change, it will leave the edit mode and trigger a "pager-changed" event regardless. Task 2318738 closes odoo/odoo#59277 X-original-commit: a3197283d52bfda399ce45b7d5a52406885336d0 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-10-06[FIX] web: send utc date to server from daterange widgetPriyanka Kakadiya
When manually updating the time on a daterange widget, the value sent to the server is not converted to UTC and is sent as it appears on the input. currently daterange widget send datetime value as it is, written in input field if manually entered, so if user set 10:00:00 so while sending data it will be send as it is 10:00:00 so when next time record reloaded after save, it will display 15:30:00 if timezone UTC+5:30. Instead, change the string date to moment object with current user timezone. so that datetime send to server is UTC time and when next time it is loaded it adds user timezone difference, so if timezone is UTC+5:30 and user enters 10:00:00 then while sending data to server it sends 04:30:00 and when displayed again after reload it adds +5:30 timezone difference. LINKS PR #50132 Task 2240378 closes odoo/odoo#59208 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-10-06[FIX] web: do not allow to edit priority field if readonlyMohammed Shekha
if readonly attribute is given on priority widget then priority widget should not be clickable and hover effect should be removed so that user can easily understand that field is readonly. task-2339680 closes odoo/odoo#59189 X-original-commit: 53dbfc7a65a8eb2f41d6b2373cf628c4800d1f57 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-10-06[FIX] web: load_filters in search dialogsPaul Morelle
Since fbf347498f1cc7b74ef373179b7bcae201715c24, when opening a view in a dialog, the favorite filters were not loaded. For example on the runbot: 1. In CRM, open any lead, edit it, and open the Customer dropdown 2. Create a custom filter, save it as favorite, and close the dialog 3. Open the dialog again: you don't see your new filter With this commit, you will see your filter at step nr. 3 closes odoo/odoo#59180 X-original-commit: 418013e8dbb2aa2d4ffd4f650f080ca5a94183f9 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Paul Morelle <madprog@users.noreply.github.com>
2020-10-05[FIX] web: show no content helper message in centerMohammed Shekha
no content helper message is displayed in bottom in modal when there is sample data, when no content helper message is displayed in modal and there is sample data the ndisplay no content message in center which is not the case for modal. To produce this issue: go to Expense -> Create Expense -> Create expense line and if there is not expense line then sample data is displayed and no content helper message is displayed at bottom of sample data, it should be displayed in center of sample data with blurry effect. With this commit this issue has been fixed. Task-2311408 closes odoo/odoo#55992 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-10-02[FIX] web: reference field calls name_createSimon Genin (ges)
An older commit (50bf8309) had refactor part of the basic field _applyX2ManyOperations. During this refactor, the reference field was forgotten to be included in a condition that made the field no longer do the quick create behavior. The name_create function in the backend was no longer called. Adds a test for the reference field checking the call to the name_create function and fixes the problem. Task id 2322048 closes odoo/odoo#59013 X-original-commit: e7d4baa3d52dc73c9631365801fbe41a4d54e3a1 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-10-02[FIX] kanban: adding context when editing columnJorge Pinna Puissant
Before this commit, when editing a column in a kanban view, in project for instance, the translations weren't loaded. Now, the translations are correctly loaded. opw-2340125 closes odoo/odoo#58981 X-original-commit: e95ed1253817beccb76d1fbd55b1318b3d65cfe5 Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2020-09-30[FIX] web: no export button if user not in export groupAaron Bohy
PR #45400 disabled the export feature for those who were not in group 'base.group_allow_export'. However, it only considered the 'Export' link in the actions menu. In list view, an export button was still displayed in the control panel (next to 'Create'), whether the user was in the group or not. This commit fixes this issue. Task 2348571 closes odoo/odoo#58890 X-original-commit: 1a9c58e4dbd4e7adbc05eada01ec85ac6eb3d427 Related: odoo/enterprise#13722 Signed-off-by: Mathieu Duckerts-Antoine <Polymorphe57@users.noreply.github.com> Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-09-28[FIX] web: skip map views and increase timeout in click_allChristophe Monniez
During the click_everywhere test, the map views are tested but leads to random failures when the view takes too long to load. Moreover, the map resources are queried on external nominatim.org servers. This could lead in the test runner being black-listed by nominatim and more indeterminism as those servers are not under our control. For those reasons, this commit will skip the map views in the click_everywhere test. Also, the general time limit is increased. Five seconds was sometimes too short, depending on external conditions (e.g.: server load or screencast enabled). Finally, on a database with all apps installed, the `Settings` menu of some apps loads the full settings and it can takes a huge amount of time to load on a clean browser (as in the tests). For that reason, the time limit for the test of those menus was also increased. closes odoo/odoo#58749 X-original-commit: 2f3ea94a46fde9870db6b6b1d6a4233aaff805ce Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com> Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2020-09-25[FIX] web, web_editor: fix scroll to hidden dropped snippetsBenjamin Vray
Fix the scroll when the snippet is the dynamic one because it did not work as we tried to get the offset of an element with the d-none class. Remove the scrollValue variable because we don't need it anymore. It was used before the code was reviewed in a previous commit. task-2312878 closes odoo/odoo#58486 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-09-24[FIX] web: Props validationJulien Mougenot
Established the proper props validation on the search panel component. closes odoo/odoo#58436 Related: odoo/enterprise#13513 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-09-24[FIX] web: remove 'overlay' overflow on modalsqsm-odoo
The o-scrollbar-overlay mixin was introduced for a fix on the enterprise home menu (see related commit in enterprise that comes with this PR). It was used on modal elements at the same time for no apparent reason: the modal in the backend do not even scroll as this is their modal-body that does. This now introduced a bug in the frontend: some code which allows to scroll to an element in a modal was not working on chrome because the related code was checking for the element with 'overflow: auto'... which it could not find since that element uses 'overflow: overlay'. As overlay is a deprecated value, it seemed better to remove its use rather than adapt the frontend code expecting the 'auto' value. This also solve a design inconsistency between Chrome and Firefox (where the overlay value is simply ignored). closes odoo/odoo#58444 Related: odoo/enterprise#13524 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-09-24[FIX] web: Get correctly focusable elements on selection widgetsLuis González
When navigating fields using the keyboard, it's not possible to reach most of widgets for selection fields. That is because most of them consist of one main element containing several other ones, one per possible selectable value (e.g. buttons). When their focusable element is computed, the main element is taken, instead of its sub-elements, which causes the field to be skipped when navigating. This commit fixes the above, as well as some missing aria attributes and keyboard events, for the following widgets: - `priority` - `state_selection` - `statusbar` - `radio` opw-231112 closes #58302 closes odoo/odoo#58418 X-original-commit: 2471e7c176c5df0f310f2939f8a6cf6948c0ac0c Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-09-24[FIX] website, *: review modal behaviors with right-panelizationqsm-odoo
*: web, web_editor Since the right-panelization made with [1], the modals were not compensating the body scrollbar when opened anymore and the backdrop was misplaced. This commit fixes the problems generically, to support modals with non-body scrolling. [1]: https://github.com/odoo/odoo/pull/57975 closes odoo/odoo#58414 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-09-03[FIX] web: fix the width of the color picker widgetstd-odoo
Purpose ======= Since cb55b302936010d97eca988c68d8167c8c4360b1 we set a fixed width for the color picker widget in readonly mode. This value is quite huge and cause issue in saas-13.5 in the event track form view. Task-2320370 closes odoo/odoo#56879 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-09-23[FIX] web: properly compute popover positionSébastien Theys
- avoid updating default position list in place - ensure computed position takes into account enough margin with border - fallback to requested position instead of bottom Part of task-2270731 closes odoo/odoo#58368 X-original-commit: 3fad17421518732db2085c3eec596600cfe34f03 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-09-23[FIX] web, mail: recompute popover on content changeSébastien Theys
Because the position of the popover depends on the size of its content. Part of task-2270731 X-original-commit: 3066a946ef1ca0973503207d0486515798168fa2
2020-09-22[IMP] website, *: move page scrollbar to #wrapwrapqsm-odoo
*: web, web_editor, portal, account, website_blog, website_forum This is probably not ideal to move the scrolling behavior out of the html element but this will be needed for the editor to not have a double scrollbar on the right. This is actually also useful for the scrollbar to appear under the purple odoo menu instead of its right. This commit, if to be reverted in the future, however contains many improvements to make the transition easier that should be kept: jQuery and Odoo functions to be able to scrollTo a specific element, get the top scrollable element, check if an element is scrollable, etc. Also, some magic was done: if some code tries to scroll to a specific scroll position via jQuery's scrollTop or animate functions on the html/body element, those will still work as intended (obviously, using the new utils to do that is however recommended). This commit also reviews our scroll behaviors to make them more robust and share the code. Part of https://github.com/odoo/odoo/pull/57975 task-2344227
2020-09-17[FIX] web: handle concurrent actions at startupAaron Bohy
This commit aims at fixing a random bug on the runbot. When loading the webclient, if there is no hash, a rpc is done to read the default action of the user. When this rpc comes back, we execute the given action (if any), or the first action (typically Discuss). The navbar is displayed as soon as possible, it doesn't wait for the first action to be executed. This means that the user can open the user menu and click on 'My Profile' before the first action is executed. Before this commit, if the user clicked before the read rpc on 'res.users' returned, the default action (or the first) one, was executed, even though the user clicked on 'My Profile' and thus asked for a specific action. So basically, the user form view was briefly shown, and then replaced by the default or first action. Whereas this is a very rare usecase in practice (the timing is really short), this sometimes made the totp tour fail. However, even if it is unlikely, the client must be robust and correctly react to concurrent requests. This commit fixes the issue by executing the 'My Profile' action in the DropPrevious. That way, if any 'doAction' is performed, other pending operations (also done in DropPrevious) are dropped. This commit also ensures that the "brand name" part in the navbar (containing the name of the current app) is hidden when there is no current app, as in the scenario described above, we land in a webclient with no current app. Note that not being in an app was something that was already handled, but not at startup. closes odoo/odoo#57840 Related: odoo/enterprise#13277 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2020-09-16[FIX] web: prevent dropdown closing on mouseupHardik Prajapati
Before this commit, selecting the whole content of the custom filter input and releasing the cursor outside of the dropdown closed the dropdown. With this commit, the dropdown is kept open in this situation. task - 2276544 closes odoo/odoo#55660 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Co-authored-by: Mohammed Shekha <msh@odoo.com>
2020-09-15[FIX] web: list: call mounted on subcomponents at reloadAaron Bohy
Issue was spotted in list views containing the "badge" widget with decorations (e.g. in the Purchase Order list view). At first, the decorations were correctly applied, but they weren't anymore after a reload (e.g. after toggling a filter). They weren't because the list renderer didn't called 'on_attach_callback' on its subwidgets at reload (thus, 'mounted' wasn't called on its subcomponents, and the decorations are applied in the mounted hook). This commit moves the logic from the FormRenderer to the BasicRenderer, so that it applies on List, Kanban, and Form views. This commit also removes the transition scss rule on the badge field widget as it caused a flickering at reload. Task 2336440 closes odoo/odoo#57762 X-original-commit: 713bce22e8f412f2c26e663b9e30fdd64933ff0c Signed-off-by: Michaël Mattiello <mcm-odoo@users.noreply.github.com> Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-09-11[FIX] web: fix picture glitchhku-odoo
currently, whenever the view is change the picture zoomed in and still displayed, only disappears after having refreshed the page so, in this commit the employee picture should no longer to be zoomed in whenever change the view closes odoo/odoo#57571 Taskid: 2311308 X-original-commit: 8214332ccd86e52c4f18de8d5428a1a22f2ad21c Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-09-10[IMP] web: add the raw value of selection fieldswan
Task 2327599 It is used in the selector of a tour to know the type of a document.
2020-09-11[FIX] web: blank value in many2many_tags for multi_edit popupMohammed Shekha
Let's assume a list that is multi editable and contains a m2m field displayed with widget many2many_tags. Moreover, there are enough values in the comodel s.t. the 'Search More' option is available in the many2many_tags dropdown, and field 'display_name' isn't in the list view that opens in dialog. Enter multi-edition, edit the many2one field to add a value (click on 'Search More', and pick a value from the list): the picked value isn't correctly displayed in the confirmation dialog. The issue occurred because we didn't wait for the display_name to be fetched before opening the dialog. Task : 2150384 closes odoo/odoo#57481 X-original-commit: ccf5834045d8b4fff9af7ddf60814c3a640e8318 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Co-authored-by: Dhruv Patel <dhp@odoo.com>
2020-09-10[IMP] auth_totp: notify user on activation and deactivation of OTPXavier Morel
Was not super visible, especially without HR as the dialog immediately closes (limitation of the web client), or when an administrator user massively disables totp. Show a toast notification indicating the success of the action. Also fix the logging of `totp_disable` so it correctly handles being called on more than one record, and change the logging data to <browse_record> (<logins>) across the board. Also add a way to provide an action to execute after a notification: by default nothing happens, which leads to dialogs not closing and forms not reloading, and there is no good way to show a notification and/then do some other thing, which is inconvenient.
2020-09-10[IMP] web, website: prevent auto scroll from left panelLaurent Stukkens (LTU)
* Prior to this commit, when starting to drag a new snippet from the left panel, the auto scroll feature was triggered if the snippet was one of the top or bottom ones. * After this commit, the auto scroll feature will be disabled from the left panel. task-2307404 closes odoo/odoo#56208 Related: odoo/enterprise#12539 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-09-09[FIX] web: no more double discard dialogDhruv Patel
This issue only occurred in community. Steps to produce: 1) Create/Edit any record. 2) Change the menu using menu switcher 3) You will get the discard dialog at the instance and after some time it will also display another duplicate discard dialog. So, we have one extra redundant discard dialog on menu switching. It is working fine when we have dirty form and then click on the breadcrumb or click on any internal child menu. Task : 2312437 closes odoo/odoo#57343 Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com> Co-authored-by: Mohammed Shekha <msh@odoo.com> Co-authored-by: Aaron Bohy <aab@odoo.com>
2020-09-09[FIX] web: kanban quick create: fix raise conditionAaron Bohy
Let's assume a kanban view using a custom form view to quick create record: <kanban on_create="quick_create" quick_create_view="view_ref"> Before this commit, there was a raise condition that could lead to a crash. For instance, click to quick create a record in a given column, and while the form view is loading, fold the column. Issue reported on task 2323196 closes odoo/odoo#57318 X-original-commit: 9fed69b9e0e13652fd17e9a7c7c8dd838e2f22ed Signed-off-by: Michaël Mattiello <mcm-odoo@users.noreply.github.com> Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-08-26[FIX] web: remove uppercase under FavoritesHardik Prajapati
this commit removes unnecessary uppercase used under the favorites menu task - 2325684
2020-09-04[FIX] web: avoid displaying noContentHelper after kanban quick_createLucas Perais (lpe)
Have a kanban with a filter Quick create a record in one column that won't match the domain Before this commit, the noContent helper was displayed. This was because the count of the group was reset to zero after the web_read_group call. After this commit, the noContent helper is not displayed. Note that in the quick_create situation, the records are not re-fetched i.e. there is no search_read after the read_group. Task-id 2251734 closes odoo/odoo#57066 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-09-04[FIX] web: list: do not call on_attach_callback at reloadAaron Bohy
Before this commit, the ListRenderer's on_attach_callback hook was called each time the view was reloaded, even though the renderer was already in the DOM. As a consequence, sub components were mounted several times, which could lead to issues. For instance, go to Inventory > Operations > Transfers, create a new one. Change the Operation Type to a Receipt, and change again to a Delivery: it crashed. Task 2315149 Closes #56701 closes odoo/odoo#57099 X-original-commit: 78f361fb5382e4c7aed9a4e705e20f8d8757300d Signed-off-by: Julien Mougenot (jum) <jum@odoo.com> Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-09-03[FIX] web: form: Archive action when field not in viewAaron Bohy
Before this commit, when being in a form view without active field (the field is defined on the model, but not present in the view), the action "Unarchive" was available in the Actions menu, even though the record was actually active. The issue has been introduced by [1]. This commit restores the previous behavior: when the active field isn't in the view, the Archive/Unarchive action isn't available in the Actions menu. [1] 220eb4db391d8ba49dd26bdd3d8af1c27b433d78 closes odoo/odoo#57038 X-original-commit: 97b70aab69b491443d862847fbff69c4e29274af Signed-off-by: Julien Mougenot (jum) <jum@odoo.com> Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-09-02[FIX] web: preview PDF file on iOSAdrien Dieudonne
Before this commit, the end users were unable to click on the kanban image to see document's preview. To fix this we removed lines from a previous fix which is no longer useful in 13.0 because we now use kanban views for many2X fields instead of list views. See original commit: https://github.com/odoo/odoo/commit/26c62cbb4401bffb72ce77fee481ca84b77a8143 So for mobile phones it's working fine. For iPads, this rule is no longuer necessary since iPadOS. See "Accelerated Scrolling on iOS and iPadOS": https://webkit.org/blog/9674/new-webkit-features-in-safari-13/ For previous versions it still works because the DOM has changed. Steps to reproduce: - Go to Document - Click on "o_kanban_image" => Your're stuck on a grayed page. opw-2260101 closes odoo/odoo#56974 X-original-commit: 0d41d0daa7220a791bc4df85cca4100e3634e432 Related: odoo/enterprise#12906 Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2020-09-03[IMP] web: new widget for static image urls in char fieldsVictor Feyens
This new widget allows definition of Images through static urls stored in a Char field. It was implemented to provide a way to reduce databases footprint by using static files instead of duplicating them in the databases (& their backups).
2020-09-01[IMP] base: Document layout preview improvementsSimon Genin (ges)
The document layout preview is a complete defferent simplified template with its own css that replicates at best the different styles. It does not have the external layout features and lack of fidelity. The new preview actually use the real documents templates and put the result in an iframe. It now has a high fidelity, though not perfect. The goal is for a better onboarding, where clients see easely how documents will look if they had an app to generate them. Of course, the data on the document is a false invoice. Refactor all this from base to web. Task ID 2304177 closes odoo/odoo#56415 Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-09-02[FIX] web: fix style of form view in modalSébastien Theys
task-2302721 closes odoo/odoo#56932 X-original-commit: 7c4787a1431538ddb69bfbc50a27dd033437a6a4 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-09-01[FIX] web: do not display nocontent help if emptyMohammed Shekha
Have an action which help field has the value: ``` <p></p> ``` Display an empty list or kanban Before this commit, the nocontent helper was displayed even though there was nothing to display. After this commit, an empty html tag is the same as an empty string, so the helper is not displayed. task-2320318 closes odoo/odoo#56875 X-original-commit: 3d6bdc5b01a4a94de9baa9bae230e6b34f38dbc9 Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>