Add the corresponding content type document instead the default content type.
This allows browser to detect the type of file being downloaded.
Fixes#1225
Introduction of a specialized InvisibilityChanger for the notebook. It
allows to handle more elegantly the issues of the notebook during
page execution: modifiers hiding the active tab that must now
active its sibling.
Process_notebook only handle the processing of the page while
NotebookInvisibilityChanger only handle the behavior of the notebook
during the page execution.
- readable code (more readable, at least)
- correct handle of autofocus
- rendering of the whole notebook in one call to qweb's render
- one invisibility changer bound by header/content
- no custom css, only legacy bootstrap
jquery's `replaceWith` function behaves differently between 1.8 and 1.9.
This function is used by `renderElement` of the Odoo widget API and, when
called on a template with multiple root nodes, will fail to replace the
whole original nodeset by the new but instead will replace every node
by the new nodeset.
Sample:
1) Suppose a DOM containing
<div>1</div>
<div>2</div>
and a jquery nodeset [<div>1</div>, <div>2</div>] referring to the
previous DOM part in a var named $oldel.;
2) suppose another jquery nodeset [<div>3</div>, <div>4</div>] in $el;
$oldel.replaceWith($el) will result in
"3434" in jquery 1.9.1
"34" in jquery 1.8.3
This issue particulary concerns us when the dom of a widget is not wrapped
into single tag and when re-calling renderElement (triggering replaceElement).
The fix is to wrap the element to be replaced ($oldel in the example) behind
a div before calling replaceWith.
This line was previously used to allow attribute selectors to match the
`selected` property, by changing the attribute each time the property
was changed. Now it doesn't make sense since rev c611846 introduced
property selectors + it seems to mess with phantomjs, as the test does
not pass in phantomjs environment but passes ok in a "real" webkit browser.
Since jquery 1.9, attr selector only matches attributes (the behavior was not
consistent before, sometimes it returned the properties [0]) and tour.js was
relying on those inconsistencies. This commit introduce common properties
selector to allow matching properties during a tour.
[0] http://jquery.com/upgrade-guide/1.9/#attr-versus-prop-
This commit is a split of the former graphview into a pivot view (the
tabular view) and graph view (the various charts). The code was fully
rewritten.
* pivot view should be faster (better underlying data structure and
better algorithm)
* better integration with the web client (use of sidebar, of menu buttons,
bettor style)
* new feature: pivot view can be sorted
* new feature: pivot view cells can be clicked to open a list view with
the corresponding domain
* web_graph addon was removed, and the graph view code has been moved
to the addon web.
* the interaction with the searchbar was changed (no more column facet)
* better and simpler code for graph view
* mary corner cases in graph charts have been corrected (for ex, pie
chart with positive and negative numbers)
* graph/pivot correctly save their state when added to dashboard/saved
(state such as current measure, chart mode, column groupbys, ...)
* ir_actions_common should return a deferred : some widgets
do not return a deferred in start, so it could be undefined.
it now is always a deferred.
* add icon for diagram view + breadcrumb support. diagram view
is so rare that it wasn't tested in the client refactoring.
This patch adds an icon for diagram view, and better support for
breadcrumbs
* add warning in debug mode print workflow: when no record is
selected, display a warning instead of failing silently
the method prepare_dropdown_menu wasn't called when the searchview did
not have an action id. This can cause problems in some cases (for
example, a crash in messaging when toggling the favorite menu)
in form view, the header height was higher than in other views (4 extra
pixels). This was caused by the floating buttons in
.oe-view-manager-buttons. This commit forces the column to take exactly
30 px regardless of its content. (it is not a problem even if the
content takes extra lines)
The previous viewmanager (before its refactoring in sept/oct 2014) was
ignoring some promises in its do_load_state method. The refactoring
actually fixed that, but of course, some other code was dependent on
the broken implementation. This commit removes the use of promises in
do_load_state, which is functionally equivalent to the previous code.
As a result, it relies on some subtle timing of the creation and
initialization of various views. It is somewhat fragile, but it is
actually what the former code did, only in a more explicit way.
See issue #3964 for more detail. Main problem was caused by commit
f0e331e005. It set the key name+'__display' to false when reloading
a record for all field types, but it was only concerned with many2many.
This fix is related to c12a2e1d16
Mutex allow to wait sequentially for mutex
Besides, if one of the onchanges deferreds fails, it does not resolve the mutex until all deferreds of the mutex are resolved.
Besides, we now wait for the onchanges mutex between each field commited value (line 596) in case the commited value leaded to a new onchanges, that we should wait for before commiting the rest of the values.
In multi company environment, the company logo was not updated on company change in the user preferences
This disrupted the end user, as he might think the company change did not happen.
One2Many fields can specify sub tree and sub form view, to be used when
displaying a list view and when adding/editing an element. Many2many
can display a sub tree view, but ignore sub formviews. This can be
fixed by specifying an alternative_form_view to the popup form widget.
Fixes the issue #1216 (follow the link for more information). The issue
was caused by a hack in list view: the magical suffix __display is used
in render_cell to determine if a many2many field should be updated. This
commit simply makes sure that old many2many fields + __display keys are
cleared.
A better way would be to redesign/refactor the list view to avoid that
hack in the first place. But this would be a much more complex task.
The issue is that when a default searchview is requested, it is
initialized without its view_id. Result: debug mode can't edit the
search view. This commit makes sure that when the field_view_get is
received, the correct view_id is set.
removed js that let user to uncheck radiobutton and from addons removed radiobuttons used for not required field except sync_typ.
changed this field as required because of functional requirement
This commit fixes two issues with debug mode:
* when a default searchview is requested, it is
initialized without its view_id. Problem is that it prevents debug mode from editing the view.
* add xml_id in Edit action form view(debug mode) : this makes the xml id visible in form view
Problem was that when the user types quickly in the search bar and press
enter, the keydown event of the enter key happens before the keypress
event of the last key entered. This means that the autocompletion has
a wrong string. The fix is to move the enter selection detection from
keydown to keyup.