Commit Graph
11981 Commits
Author SHA1 Message Date
Pierre Paridans 9f7e6bb798 [IMP] web: Deactivate swipe between form view in mobile
The swipe between the form view is taking too long to load, and the pager is a
more clean option to switch between form view.
Moreover, the swipe on tabs is not clear anymore.

- Deactivate swipe between form view
- Swipe should only be available on tabs when tabs are too long to fit in one screen.

Was originally introduced by https://github.com/odoo/odoo/commit/f4ee61f950dc1eeb7b3653ca96ea72721512b5e5

Related task: 1924764

closes odoo/odoo#30413
2019-01-25 13:02:46 +00:00
Lucas Lefèvre ad0c5768f0 [IMP] hr_payroll: improve general usability
This commit improves general usability.

Specification
=============

Screens usability:

1/ Benefits
 1.1/ Calendar
    - Add a sidebar filter to filter employees. The filters are saved per user.
      If no filter exists for the user the 'Everybody' filter should be true by default.
    - Generate benefits when clicking on the menu -> remove the wizard (popup): generate benefits for all running contracts
    - Once generated, don't show again the generate benefits button: only show the Validate button
    - Generate Payslips button: remove the wizard. It generates payslip of validated benefits
      and jumps to the payslip batch form view.
 1.2/ Form:
    - rename: Start into "From"
    - rename: End into "To"
    - rename: Hours into "Period" (add 'hours' as unit on the right of the field)

2/ Payslip
 2.1/ Form:
    - Remove Payslip stat button.
    - a computed payslip should be editable

 2.2/ List:
    - show: Reference | Employee | Batch Name | From | To | Gross Salary | Net Salary | Status
    - In action buttons add a "Confirm" to confirm multiple payslips
    - add a quick search on contract
    - filters: rename 'draft' into "To Compute"
    - filter: add "To Confirm"

Menus:

1/ Salary Computation
    - Benefits (object: hr.benefit ;  view: calendar, list, form, pivot. Group: hr officer ;  filters: group by employee in the view)
    - Payslips (objetc: hr.payslip ; Views: list, form, pivot. Group: hr officer ; filters: last batch ; Sort: employee name alphabetically)
2/ Employee Payslips
    - Batches  (objetc: hr.payslip.run ;  Views:  list, form. Group: hr officer ; Sort: creation date (last one first)
    - All Payslips (objetc: hr.payslip ; Views:  list, form, pivot. Group: hr officer ; filters: no filters; Sort: employee name alphabetically)
3/ Configuration
    - Settings
    ---Salary---
	- Rules
	- Structure
	- Contributions Registers
    ---Benefits---
	- Benefits Type
    ---Repository---
	- Employees (list)
	- Contracts

When a benefit linked to a leave is cancelled, it should refuse the leave.
When a payslip batch is deleted, also delete associated payslips.
+ Refactoring of benefit js to use "Odoo style" event binding.
2019-01-18 15:19:35 +01:00
Lucas Lefèvre 70c6d3b04c [Fix] web: make sidebar filter generic
Adding `res_model` and `res_fields` attributes on a field of
a calendar view adds a filter in the sidebar.
It saves the result as the defined model and should save it
in the defined field.
However `partner_id` has been hardcoded in the rpc call that creates
the record. This breaks genericity, it cannot be used with another
field than `partner_id`.

This commit makes this generic by correctly setting the field name
in the rpc call.
2019-01-18 13:55:34 +01:00
Antoine GuenetandGorash eb0ea8efbe [ADD] web_editor,*: Tests for new structure of web editor
The refactoring also had to be done in order to create a set of unit
tests.
Each behavior can be tested, including the behaviors performed as a
consequence of keyboard interactions (for instance: Enter, Tab...).
This commit also contains some changes to test_utils that were
necessary given the new structure of the wysiwyg editor.

Co-authored-by: Gorash <chm@odoo.com>
2019-01-17 08:40:21 +00:00
Christophe MatthieuandAntoine Guenet f296992317 [IMP] web_editor,*: Refactoring the wysiwyg editor and 'html' field
* Creating a new structure by transforming all the plugins in the
  library using the odoo inheritance system. Plugins are easier to
  implement with the AbstractPlugin to add Odoo behaviors.

* From now on, the methods of the library (in this case Summernote) can
  no longer be called by other modules or files. Only the wysiwyg
  widgets can access it, to simplify the updating process. The wysiwyg
  object serves as an interface.

* Depending on the options the snippets will be loaded or not, the
  editor will be in an iframe or not... all of this is transparent from
  the outside.

* Regarding iframes, all controllers related to editing have been
  removed: the new API no longer needs them. This speeds up loading,
  eases testing and removes complexity for the same
  features.

PUBLIC FEATURES

There are several public methods on the Wysiwyg class:
* Wysiwyg.prepare (WidgetParent): returns a deferred resolved when the
  library (xml, lazy, assets...) is loaded.
* Wysiwyg.getRange (DOM): returns the range (selection in the dom)
* Wysiwyg.setRange (startNode, startOffset, endNode, endOffset): creates
  a range (selection in the dom)
* Wysiwyg.setRangeFromNode (DOM, options) that creates a range from an
  element (option available to select all, start or end)

A jQuery selector was added: :o_editable, which indicates whether the
current element is editable. That is, if it is contained in a tag with
the attribute 'contentEditable = "true"' or in a tag with the class
o_editable.
Several methods are also present:
* focusIn: makes a focus and places the cursor at the beginning of the
  element
* focusInEnd: makes a focus and places the cursor at the end of the
  element
* selectContent: makes a focus and selects the content

HTML FIELD

The HTML field can receive different options:
* style-inline: {boolean} transforms a class into an inline style when
  saving and vice versa when reading.
* no-attachment: {boolean} prevents the use of attachments (in media
  dialog)
* cssEdit: {xml_id} to use a template containing the css to loaded in
  an iframe when editing
* cssReadonly: {xml_id} to use a template containing the css to load
  into an iframe when viewing in readonly
* snippets: {xml_id} snippets template (can be used with or without
  cssEdit)
* wrapper: {template} qweb static template (containing a tag:
  id = "wrapper") that will include the content during editing (removed
  on save)

MASS MAILING

A widget was created for mass mailing. There are now two fields:
body_html and body_arch.
body_arch contains the code with the class without conversion into
inline style, useful when editing and one with the inline style that is
visible in readonly mode and sent by email.
Advantage: no spreading errors, able to update css/theme, able to do
more changes when converting to inline style so that a maximum of mail
clients have an impeccable rendering.

Co-authored-by: Antoine Guenet <age@odoo.com>
2019-01-17 08:40:21 +00:00
Christophe Matthieu de444335b7 [REF] web_editor,*: Move and rename files to prepare refactoring
The refactoring of the wysiwyg editor and 'html' field allows us to
move some of the code that was in web_editor but only used in website or
in mass_mailing. Some parts are still in web_editor but will be
moved at a later time.
2019-01-17 08:40:21 +00:00
jem-odoo 958342bf16 [IMP] web: add example kanban background
The background example is a set of random fake column and card,
directly inspired from the kanban example modal.

We want to toggle this background depending on the kanban state;
the background will be displayed when there is no column yet,
and the quick create column is shown.

To do so, we need to update the state of the kanban when deleting
a column to (re)display the background in case of removal of the
last column. Now, on column deletion, the entire kanban is updated
and so entirely rerender (with aab's benediction).

Task-1893021
2019-01-16 08:28:09 +00:00
jem-odoo 92b6ea64ab [IMP] web: make kanban example support state bullets 2019-01-16 08:28:09 +00:00
jem-odoo 4b4e8508ef [IMP] project: improve kanban example sentences
This commit improves the sentences used in the kanban
example modal in order to be more concrete and precised
for the users

Task-1893021
2019-01-16 08:28:09 +00:00
jem-odoo e7268c201e [IMP] web: make kanban create button jump
This commit makes the create button of a kanban view
jumping when the user click on some zone on the kanban
background.
The purpose here is to educate the user, so he can learn
how to create its first kanban card.

Task-1893021
2019-01-16 08:28:09 +00:00
mgh-odoo 9ee9724a10 [Generic] unaccent search
- added unaccent search on POS customer/partner and product
- moved unaccent from "mail.utils" to "web.utils"
- added more character to make function accurate

We might use str.normalize(from ES6) but the problem is str.normalize method can not consider some double characters i.e. accented character when normalized it returns 2 normal characters and normalize method returns single character, so here custom unaccent method is used to normalize the string

What we can improve here: We can use str.normalize method and check if string is still have unaccented charaters that we can call our unaccent method but this unaccent method is also working and performing well

closes odoo/odoo#27671
2019-01-10 12:31:53 +00:00
qsm-odoo f87e56c571 [FIX] web, website: adapt accordion to bootstrap update
Some update to the accordion component made it incompatible with some of
our customization.
2019-01-09 14:03:48 +00:00
qsm-odoo 827f30abf1 [FIX] web: adapt the color-yiq BS function
Odoo overrides the color-yiq function of bootstrap to improve it. With
the last update, BS changed its signature so Odoo had to change it to.
2019-01-09 14:03:47 +00:00
qsm-odoo 0f6f108cbe [FIX] web: adapt BS import and assets to BS update 2019-01-09 14:03:47 +00:00
qsm-odoo f4503d09dc [FIX] web: remove bootstrap sourceMappingURL
Same as https://github.com/odoo/odoo/commit/8e17223c260add842d83b2549d7bdaa4c3cc4d6c
2019-01-09 14:03:47 +00:00
qsm-odoo 63e52e6acf [IMP] web: update bootstrap from 4.1.3 to 4.2.1
This commit only updates the existing bootstrap files and add the new
ones the update brings.
2019-01-09 14:03:47 +00:00
Christophe Simonis d7c5bc02cc [MERGE] forward port branch saas-12.1 up to 8aa8548d8a 2019-01-09 19:59:27 +01:00
Christophe Simonis 8aa8548d8a [MERGE] forward port branch 12.0 up to 3e4138deaa
closes odoo/odoo#30045
2019-01-09 15:56:53 +00:00
Christophe Simonis 3e4138deaa [MERGE] forward port branch saas-11.3 up to 2d824a5b7a 2019-01-08 17:08:48 +01:00
Romain Derie d3a7edaec4 [FIX] web, website: set correct order on modal footer button
Since 12.0, some modal footer button order were changed. The primary button
would not be the one in the modal footer corner.

This is against bootstrap but more annoyingly, users are intuitively clicking
on the secondary button, ending up closing the modal and losing form
information they entered.

This commit simply fix the regression from 12.0 as before 12.0 these buttons
were positionned correctly.

Note that a commit in master (saas-12.2) will fix all the other ones that were
wrongly positionned before 12.0.

Step to reproduce:
  - Go to an event having the possibility to register.
  - Click on 'Register Now', a modal is shown to write details (name, email..)
  - You intuitively click on 'Cancel' as it is the bottom right button
    |________________________________ CONFIRM _ CANCEL _|
  - The modal is closed, if you try to open it again your infos are lost

Closes #29884
task-1922120
2019-01-08 12:50:24 +00:00
Christophe Simonis b50883d17b [MERGE] forward port branch 11.0 up to c07b7200b2 2019-01-08 11:52:15 +01:00
Odoo Translation Bot 652cecffde [I18N] Update translation terms from Transifex 2019-01-06 01:32:05 +01:00
Martin Geubelle b4e9410f6a [IMP] web: use showSearchInput in model field selector
The option `showSearchInput`, which is used on the model field selector to display a search
input that filters the displayed fields, is not set by default.

This includes the model field selector instantiated in the `domain` field widget.

closes odoo/odoo#29986
2019-01-08 13:46:01 +00:00
Christophe Simonis ec9400821e [MERGE] forward port branch saas-11.3 up to 27a084eb81 2019-01-04 14:54:08 +01:00
Nicolas Lempereur 27a084eb81 [FIX] web: attach document fix click on firefox
As of saas-11.3 there is a "Attach document" widget that is meant to
more easily add attachment.

But on firefox the click event is coming from the button, where on other
browsers it was possibly from a child element.

So the code expecting the child element did not work on firefox.

opw-1920842
closes #29903
2019-01-03 17:00:18 +00:00
Odoo Translation Bot d331d28fdf [I18N] Update translation terms from Transifex 2019-01-06 03:24:31 +01:00
Martin Trigaux 838c9e5617 [I18N] export 11.0 source terms
To integrate recent content changes and benefit from cd4080839f and 7f8631a91

closes odoo/odoo#29933
2019-01-04 10:13:05 +00:00
Nicolas Lempereur 3125d20da3 [FIX] web: X2Many read propagates field context
Most operations on X2Many widget possibly propagates a field context
(name_create, name_search, ...) but the original read or read on an
onchange does not.

With this changeset, the field context is also used in these instances.

The assertions added in the added test failed with:
  expected: ["world"], result: [undefined]
  expected: ["world","world"], result: [undefined,undefined]

fixes #29203
opw-1914466
closes #29866
2019-01-04 09:44:49 +00:00
Christophe Simonis e618845112 [FIX] web: adapt forward-ported test 2019-01-02 16:08:25 +01:00
Christophe Simonis 79f1ecd756 [MERGE] forward port branch 11.0 up to d82c0d133e 2019-01-02 15:37:01 +01:00
Géry Debongnie 68eefe3cee [FIX] web: do not render invisible filters in search view
In some cases, the web client may receive a search view with invisible
filters.  This is due to the way field_view_get works.  For
example, if there is a group on a filter, then this will be transformed
into an invisible attribute.

In that case, the search view should simply ignore the filter and not
display it.  This was broken in the recent control panel refactoring
(note that the search view lacked the possibility of testing that kind
of situation).

closes odoo/odoo#29430
cherry-pick of 13aae100e2

closes odoo/odoo#29965
2019-01-06 16:54:29 +00:00
Martin Trigaux af69902ecc [I18N] export saas-12.1 source terms
closes odoo/odoo#29730
2018-12-24 11:07:31 +00:00
Aaron Bohy 5545787e2c [FIX] web: fetch toolbar info for target=current actions
The 'Actions' menu displayed in the control panel (aka sidebar, or
toolbar), wasn't displayed anymore since the control panel
refactoring of 4cd379cf6e. Rev. c1752b834 correctly made it appear
again in list and form views. However, there was another issue as
the additional model-related items (like Print, or custom actions)
weren't fetched anymore. Thus, the sidebar only contained the
default 'Export' and 'Delete' actions. This rev. fixes the second
issue.

fixes #29546

closes odoo/odoo#29633
2018-12-19 07:40:31 +00:00
Martin Geubelle 243734e64b [FIX] web: backspace in empty searchbar input
Before this rev. a crash occurred when pressing backspace in the control panel
view searchbar input if there was no facet to remove.

The use case is now correctly handled and nothing happens.

Task 1902826

closes odoo/odoo#29602
2018-12-18 12:55:19 +00:00
Odoo Translation Bot 912f88b980 [I18N] Update translation terms from Transifex 2018-12-30 03:12:33 +01:00
Odoo Translation Bot 5d237b2037 [I18N] Update translation terms from Transifex 2018-12-23 03:12:41 +01:00
len-odoo 9186f433f1 [FIX] web: read records up to list limit
Fine-tuning of commit e7fab23420
In a one2many with more than one page with a limit of k records, add a line l.
It increments the list limit to k+1. Remove a line above (of index <= k).
It will try to load a line l' to replace it, that it will find on page 2.
However when deciding if it should read missing fields on that record, it will
scan at most u records, skipping virtual ids.
Here u is the min between the current number of lines and the list limit
without the temporary increase due to the added record.
Since there are at least two pages, u = k.
However since l is in the list at index k, then l' won't be read, and since it
was on page 2 its data hasn't been loaded.
Therefore the js would traceback when trying to evaluate it.

opw 1913361

closes odoo/odoo#29338
2018-12-19 13:03:46 +00:00
Martin Geubelle 6bb4b6698d [FIX] web: x2m in x2m with different fields in different views
Use case: a x2m (ex: attribute values) displayed in a x2m (ex: attributes on
product) using different fields in different views (ex: tags in product form view
and list in product attribute form view). When opening the x2m record (in a
wizard) then going back on the form view, the tags are empty because the
`display_name` value has been lost when fetching x2m for the second time.

In this case, the list `fieldsInfo` needs to be updated with the existing
(default for tags) one so all the fields will be correctly loaded.

Task 1916891

closes odoo/odoo#29598
2018-12-18 09:45:07 +00:00
Luis González c0104303c6 [FIX] web: Add missing aria attributes in menus
Some aria attributes were missing on menus, and are required to ensure a
good compatibility with keyboard users and screen readers.

To solve the above, the following attributes are included:
- `aria-expanded`: this should be present in all dropdown menus. This is
  set on elements with class `dropdown-toggle` and `o_closed_menu`.
- `role`: used to improve given information about what elements are for.
  It is added in the following cases:
  1. Non-button elements that have the class `dropdown-menu` are set to
     `role="button"`.
  2. Menu items that have the class `dropdown-item` are set to
     `role="menuitem"`.
  3. Menu separators that have the class `dropdown-divider` are set to
     `role="separator"`.

This is a continuation of baa1c515c5

closes odoo/odoo#29719
2018-12-22 22:22:14 +00:00
Nans Lefebvre 5807c3bd95 [FIX] web: add tests for calendar start of the week and week numbering
The week_start has been added as an option since commit 27b30daea5.
This stores as a database parameter the day starting the week, [1.. 7] starting
on Monday, while the calendar options expect to get Sunday as 7 % 7 = 0.
As a result the week number would be shifted.

Commit c72403d2ba solved the issue,
this commit adds tests for it.

opw 1916666

closes odoo/odoo#29838
2019-01-03 08:11:15 +00:00
Andrius Laukavičius c72403d2ba [FIX] web: _getFullCalendarOptions firstDay key
After making improvement to allow user to choose first day of week per
language, it was not taken into account that calendar view uses
different weekdays indexing than newly added field `week_start`. The
difference is in Sunday, where in calendar view it has index 0, but
week_start index is 7 (other days' indexes match).

opw 1916666

closes odoo/odoo#29471
2019-01-01 08:53:04 +00:00
Martin Geubelle ae2dbc60c5 [FIX] web: handle context in ControlPanel <filter>
The `context` key wasn't correctly taken into account when computing the search
query for `filter``tags.

It is now correctly handled.

Task 1917628

closes odoo/odoo#29529
2018-12-17 10:39:03 +00:00
Martin Geubelle b0b9d028a6 [FIX] web: handle context key in calendar reload
When filtering the calendar view on search filters, the filter `context`
was not taken into account during the reload.

For example, in the Calendar app, the filter 'My Meetings' has a `context`
{'mymeetings': 1} which was not passed to `search_read`.

Task 1917628

closes odoo/odoo#29531
2018-12-13 20:21:23 +00:00
Odoo Translation Bot 439e818953 [I18N] Update translation terms from Transifex 2018-12-16 03:13:51 +01:00
Romain Estievenart 287136b85e [FIX] web: empty kanban view on mobile
Due to the recent refactoring in control panel 40dd12193,
some css rules have been broken in mobile.

To fix this, we need to set 'o_current' class inside the
displayed column because we need to know which one to
display in mobile.

This issue doesn't occur in desktop because all kanban columns
are displayed.

closes odoo/odoo#29457
2018-12-13 09:03:23 +00:00
svs-odoo 4abdfc35d3 [FIX] web: wait many2many tags' fetches for rendering
Before this commit, we don't assure fetch's deferreds were resolved to
return _readGroup. Thus, in some conditions, kanban was rendered before
records data was updated so many2many tags could be missing.
Now, we return _readGroup when fetch's deferreds were resolved.

Task #1910805

closes odoo/odoo#29508
2018-12-13 10:44:32 +00:00
svs-odoo 1fef5c6b6e [FIX] web: delete duplicated search_filter_menu_tests.js
closes odoo/odoo#29500
2018-12-12 16:36:06 +00:00
Odoo Translation Bot 91382f691d [I18N] Update translation terms from Transifex 2018-12-30 01:30:16 +01:00
Swapnesh Shah d67658c043 [FIX] mail,web: link attachments & messages
The information of the active model and record was not given in the context
Records created from the Manage Messages and Manage Attachements in the debug
menu were not linked to the current records
Add context in test too

closes odoo/odoo#27766
2018-12-28 10:33:05 +00:00
Sébastien Theys f1c196e609 [FIX] portal: change width of portal modal to match backend
Some features are common to portal and backend, such as the sign modal in
enterprise.

This commit uniformize the width of the modal to make it more consistent between
the two by default. Of course themes can still customize this behavior.

closes odoo/odoo#29521
2018-12-24 15:03:29 +00:00