Merge lp:~openerp-dev/openerp-web/7.0-opw-586613-msh into lp:openerp-web/7.0

Proposed by Mohammed Shekha(Open ERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openerp-web/7.0-opw-586613-msh
Merge into: lp:openerp-web/7.0
Diff against target: 17 lines (+2/-2)
1 file modified
addons/web/static/src/js/view_form.js (+2/-2)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/7.0-opw-586613-msh
Reviewer Review Type Date Requested Status
Xavier (Open ERP) (community) Needs Fixing
Mohammed Shekha(Open ERP) (community) Needs Resubmitting
Martin Trigaux (OpenERP) Pending
Review via email: mp+152136@code.launchpad.net

Description of the change

Hello,

Fixed the issue of compute_domain for boolean field based attrs, here isEquals used which makes deep cheking for objects hence 0 never equals to false while simple comparion of 0==false returns true due to which you can not put 0 in attrs.

Demo:- Project -> Open any existing project and make Tasks boolean button checked/uncheked will not hide Tasks button, there is attrs on Tasks button attrs="{'invisible':[('use_tasks','=', 0)]}" but here due to 0 domains not pass truth test, as here isEqual used which returns false for 0 and false comparison.

We have used isEqual mainly to match object like list of values as [1,2,3] == [1,2,3] returns false, so we have used isEqual which deeply compares object but this will not work with boolean value as we uses 0 for false in view at many places.

Thanks.

To post a comment you must log in.
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

This change will also lead to "'0', '=', false" to return true...

3819. By Olivier Dony (Odoo)

[I18N] web_*: update translation templates for latest term changes due to bug fixes

3821. By Xavier (Open ERP)

[FIX] broken inference of groupby groups in search view filters

Before the valpocalypse, filter contexts were "literal" (parsed
objects) when reaching the search view, and `.attrs.context.group_by`
would return the right thing (namely the group_by attribute of the
context object).

After the valpocalypse, contexts & domains on view fields (and
filters) are not evaluated on the Python side anymore and reach view
objects as strings, the access chain above thus always returns a falsy
value (undefined) as strings don't have a .group_by.

Fix FilterGroup to correctly parse filter's @context before trying to
see if it has a group_by.

3822. By Xavier (Open ERP)

[FIX] oops, previous revision now mandates valid contexts in filter group tests

3823. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3824. By Xavier (Open ERP)

[FIX] replace uncommon month names of the ar_SY datejs localization file by more standard ones, courtesy of Ahmad Khayyat

The server only supports the ar_SY variant of arabic, so this is the
one and only locale arabic speakers can currently select. According to
Ahmad Khayyat:

> The [ar-SY datejs localization] uses uncommon month names, which are
> hard to recognize. The more common month names should be used
> instead.

This could be reverted if more arabic locales are made available in
the server, in order to limit deviations from the upstream package.

3825. By Nicolas Vanhoren (OpenERP)

[FIX] problem when o2m and readonly fields, now readonly fields are saved in buffered dataset too

3826. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3827. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3828. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3829. By Antony Lesuisse (OpenERP)

[IMP] dbmanager create screen

3830. By Xavier (Open ERP)

[FIX] groupby groups fetching of their ancestor searchview

Implementation of invisibles in search view altered handling of search
inputs: their parent may not be the searchview anymore (usually is a
instance.web.search.Group). GroupbyGroup assumed parent was view and
was actually unused until
<email address hidden>, which exposed the
incorrect underlying assumption.

Make GroupbyGroup access its view when it wants its view, not its
parent.

3831. By Olivier Dony (Odoo)

[FIX] web: typo in logo_edit function introduced at revision 3789

rev 3789 = <email address hidden>

3832. By Xavier (Open ERP)

[FIX] array extra comma

3833. By Xavier (Open ERP)

[FIX] correctly check for o2m listview validity

if an edition has been canceled, don't check the form's content as it
does not matter.

3834. By Xavier (Open ERP)

[FIX] blurring propagation on m2m tag fields

3835. By Xavier (Open ERP)

[FIX] hide form autofocus trying to focus destroyed fields under the rug

3836. By Nicolas Vanhoren (OpenERP)

[FIX] small error, probably due to refactoring, that disabled feature of form buttons.
The feature was to disable button automatically buttons in unsaved o2m to avoid errors.

3837. By Antony Lesuisse (OpenERP)

[FIX] IE9 db creation, better monodb

3838. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3839. By Thibault Delavallée (OpenERP)

[FIX] FieldMany2ManyBinaryMultiFiles: use the field string instead of an hardcoded 'File' as name after the uploader icon
[FIX] FieldTextHtml: fixed quote error in parameter of cleditor, leading to font-family not taken into account.

3840. By Quentin (OpenERP) <email address hidden>

[MERGE] view_form.js: fixing the statusbar. if there is no domain defined, the statusbar mustn't try to concat with ('|',('id','=',...)) because it is creating a syntactically invalid domain

3841. By Nicolas Vanhoren (OpenERP)

[FIX] corrected small problem that made appear "false" in empty field text

3842. By Christophe Simonis (OpenERP)

[MERGE] [ADD] `hide_breadcrumb` option

3843. By Christophe Simonis (OpenERP)

[FIX] EmbeddedClient.do_action() forward all arguments

3844. By Antony Lesuisse (OpenERP)

[MERGE] base.sass infobox and url text attribute

3845. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3846. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3847. By Xavier (Open ERP)

[FIX] pyeval: argspec of relativedelta

3848. By Olivier Dony (Odoo)

[FIX] db creation: change master password field back to type=password

This is not only dangerous but also
completely inconsistent with the other
db management screens. It also represents
little improvement in terms of usability
for first-time users, since the password
is now mentioned on the comment just above
the field.

3849. By Nicolas Vanhoren (OpenERP)

[FIX] calls to fields_view_get do not pass the correct context, fails in o2m

3850. By Nicolas Vanhoren (OpenERP)

[FIX] small problem with m2o, does not uses context when opening them in read-only mode

3851. By Fabien Meghazi (OpenERP)

[FIX] webclient returns to database manager after 1st database creation

3852. By Christophe Simonis (OpenERP)

[FIX] web: correct the concatenation of css files: @charset and @import rules must be before any other rules

3853. By Christophe Simonis (OpenERP)

[FIX] web: Fix old versions of Webkit (such as ones used on iOS < 6 or PhantomJS <= 1.7)
which does not have Function.prototype.bind function

3854. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3855. By Fabien Meghazi (OpenERP)

[FIX] Form binary fields 'Select' and 'Save as' buttons does not work under IE9

3856. By Olivier Dony (Odoo)

[FIX] base.xml: improve backwards compatibility of SearchView.filters template to resolve JS errors on OpenERP Apps where 2 different versions of the web client frameworm can be mixed

The incompatible change was introduced at revision
 rev. 3803 revid:<email address hidden>.

3857. By Fabien Meghazi (OpenERP)

[MERGE] Date Picker is not translated into local language

3858. By Fabien Meghazi (OpenERP)

[FIX] View editor does not handle inherited views

3859. By Xavier (Open ERP)

[FIX] incorrect array joins

Array#join() is equivalent to Array.join(', '), not Array.join('') as in Python.

For some reason the tests didn't break, but...

3860. By Xavier (Open ERP)

[FIX] filter preceded by an invisible filter in the same group

On click on a filter in the drawer, FilterGroup would just match the
offset of the filter in the group's DOM with an index in the internal
#filters array.

This worked until invisible fields, and then again only for filters
*preceded* by an invisible sibling in the same group: invisible
filters are not rendered in the DOM, so the indexes would get out of
sync.

Fix by using explicit indexes stored in a filter's @data-index and
using that to get the filter object/node.

An alternative fix (but hackier I think): instead of not rendering
invisible filters, render them with display: none. Remains an option
in the future if needed...

3861. By Xavier (Open ERP)

[FIX] visible text in Chrome on Linux after applying text-to-icon

@include text-to-icon makes the text invisible (and adds an icon), but
some platform apparently don't apply the text's transparency (or
visibility) to its shadow, leading to the invisible text's shadow
still being noticeably visible (an interesting literary idea, an
"invisible" man who still casts a shadow?) as if the text had not been
erased. Furthermore, combined with the 1px font size it made the text
look like some sort of screen smudge or glitch.

Fix by erasing the text-shadow as well as the text.

3862. By Fabien Meghazi (OpenERP)

[FIX] Fix FormFields#focus()

The focus() of AbstractFormField should return false if field
is not focusable otherwise it breaks FormView's#autofocus()

Also added checks of existance of the element to focus.
Those errors makes it harder to find other bugs

3863. By Fabien Meghazi (OpenERP)

[FIX] Calendar view don't get default name

3864. By Denis Ledoux (OpenERP)

[FIX]testing.js: replace testing.case by testing['case'] for compatibility (IOS < 5, IE8)

3865. By Xavier (Open ERP)

[FIX] minor presentational offset issue

missed mis-handling of oe_selected in <email address hidden>

3866. By Nicolas Vanhoren (OpenERP)

[FIX] deferred problems when clicking too quickly on some menu items

3867. By Nicolas Vanhoren (OpenERP)

[FIX] small code problem in set defaults feature

3868. By Xavier (Open ERP)

[FIX] bump z-index of searchview autocomplete pane to put on top of jquery-ui dialogs

3869. By Fabien Meghazi (OpenERP)

[FIX] Remove dirty flag on save

3870. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3871. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3872. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3873. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3874. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3875. By Christophe Matthieu (OpenERP)

[FIX] calendar.js: From calendar view create customer or supplier invoice, when select partner it gives error.

3876. By Fabien Meghazi (OpenERP)

[FIX] m2o does not use @alive()

3877. By Christophe Matthieu (OpenERP)

[FIX] view_form: Fixed the issue of attachment was not added in any other language, because action URL was getting translated.

3878. By Chris Biersbach (OpenERP)

[MERGE] OPW 584359: Fixed the issue of Calendar responsible label not translated when there is selection field on responsible.

3879. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3880. By Fabien Meghazi (OpenERP)

[FIX] DataSet#size() problem + FormView#on_button_delete() shall pop breadcrumb on empty dataset

3881. By Fabien Meghazi (OpenERP)

[FIX] Date[time] widget width issues on OSX

3882. By Olivier Dony (Odoo)

[FIX] web: company_logo route may be accessed with uid = False in some cases, it should still work

3883. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3884. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3885. By Christophe Simonis (OpenERP)

[FIX] web: company_logo does not try to load the pool + failback correctly if the database does not exists or is not an openerp database

3886. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3887. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3888. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3889. By Fabien Meghazi (OpenERP)

[FIX] Do not autofocus Notebook pages by default

3890. By van der Essen Frédéric (OpenERP)

[MERGE] adding a rounding method that is compliant with the server side rounding method

3891. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3892. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3893. By Fabien Meghazi (OpenERP)

[FIX] FormRenderingEngine: allow class propagation to group cells

3894. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3895. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3896. By Christophe Matthieu (OpenERP)

[FIX] web_kanban: hide the counter on the top of column to display option drop down when the mouse is hover.

3897. By Xavier (Open ERP)

[FIX] correctly handle group_by_no_leaf when no grouping applied

If there are no grouping field specified *but* group_by_no_leaf is
specified, should call read_group with no grouping fields: will
generate a single group (which can not be opened) for all of the
model.

Necessary for analysis views since individual "records" make no sense.

3898. By Xavier (Open ERP)

[FIX] ids of deleted records living in shared dataset when clicking on list row

When a record is activated, the listview will do some jiggling around
assigning the ids of internal dataset to the one shared between all
views, this is mostly for the case where one switches from a "grouped"
list view, so the form view only cycles on the "current" group.

Problem is, that internal dataset is not correctly synchronized with
the shared one, so when the id is removed from the shared dataset it
is *not* removed from the internal one(s), and when the switch is made
the ids from the internal dataset are set on the shared one and
reintroduce the deleted record, leading to the form view's incorrect
state.

Fix the issue by updating the dataset's ids list when a record is
deleted from the records tree.

Also extracted some stuff from DataSetSearch's unlink callback so it
can be overridden and is more stable across datasets.

3899. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3900. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3901. By Olivier Dony (Odoo)

[FIX] web: support integer/float fields in search view via auto-completion + tests

integer/float fields were not offering auto-completion in search views,
making them unsearchable except via advanced search.
This patch adds the missing complete() function and removes the incorrect
value_from() function that did not conform to the 7.0 search view API.
It seemed to be a leftover of the 6.1 search field implementation
of get_value(), wrongly renamed for 7.0.

Also includes corresponding tests.

3902. By Xavier (Open ERP)

[FIX] missing translation mark in error message

3903. By Nicolas Vanhoren (OpenERP)

[FIX] problem in view editor

3904. By Fabien Meghazi (OpenERP)

[MERGE] Fixed http controllers inheritance

3905. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3906. By Nicolas Vanhoren (OpenERP)

[FIX] possible race condition when creating the session file for the web server

3907. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3908. By Christophe Simonis (OpenERP)

[REVERT] revert commit <email address hidden>: do not break stable API !!!

3909. By Antony Lesuisse (OpenERP)

[FIX] http controllers inheritance
minimalist and backward compatible implementation

3910. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3911. By Thibault Delavallée (OpenERP)

[FIX] [FIX] Fix needaction counters, now updated dynamically.
Needaction counters are now updated :
- when loading the menus (as before),
- when performing an action in a form view (update the current menu),
- when cliking on a top-level menu item (update all childs menus)

3912. By Nicolas Vanhoren (OpenERP)

[FIX] optimization necessary in some cases when kanban views can take more that 10 seconds to load

3913. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3914. By Fabien Meghazi (OpenERP)

[FIX] force module paths to be bytestrings

Backport trunk Revision:
3729 revid:<email address hidden>

The http controllers handler crashes when there are non-ascii chars in the url path.

`openerp.modules.module.ad_paths` containing unicode strings, werkzeug fail to compare the path `module` which is converted to ascii.
force `module` to be bytestrings

3915. By Olivier Dony (Odoo)

[FIX] need_action: avoid reloading needaction counters when there is no menu

- guard do_load_needaction to prevent exceptions when
  there is no menu to load
- avoid calling do_load_needaction where there is no
  menu to reload in the first place

3916. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3917. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3918. By Thibault Delavallée (OpenERP)

[MERGE] [FIX] mail: locate current menu using a safer method + check case

3919. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

3920. By Christophe Matthieu (OpenERP)

[FIX] Menu NeedAction: Uncaught TypeError: Cannot call method 'do_reload_needaction' of undefined

3921. By Martin Trigaux (OpenERP)

[MERGE] correct permissions, shebang, EOL and FSF address

3922. By Nicolas Vanhoren (OpenERP)

[FIX] problem with concatenation of js files, encodings and utf boms

3923. By Xavier (Open ERP)

[FIX] handling of multiline strings during qweb translation

Javascript regexps don't provide a DOTALL flag (to make `.` match
newlines) so have to replace `.` by `[\s\S]` hack, as *that* will
match newlines as well as all other characters.

Note: the `m` flag has a different meaning, it makes `^` and `$` match
      the start and end of lines rather than the start and end of the
      string itself.

3924. By Xavier (Open ERP)

[IMP] replace literal values by symbolic ones for node types dispatching

3925. By Xavier (Open ERP)

[FIX] exclude non-searchable function fields from the advanced search's list

3926. By Xavier (Open ERP)

[FIX] Error when selecting filters in calendar view

e.g. calendar view of customer invoice

Also attempted to make the code flow slightly simpler by just forcing
the filter to a [value, label] pair in all cases.

3927. By Xavier (Open ERP)

[FIX] incorrect company logo on databases with uppercase letters

3928. By Xavier (Open ERP)

[FIX] missing class leading to broken list layout in o2m

3929. By Xavier (Open ERP)

[FIX] delete event in calendar, courtesy of Holger Brunn

Calendar has type mismatche issues where event ids are obtained as
strings even when they are numbers, this is (ish) why get_id_index was
added to Dataset.

When having an event_id in calendar, can't use event_id directly needs
to ensure we have valid index and use that index to get "correct (ly
typed)" id from dataset.

Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) :
review: Needs Fixing
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

Also `typeof` is a keyword not a function. There is no need for parens.

review: Needs Fixing
3930. By Xavier (Open ERP)

[IMP] mouse cursors in search view drawer

3931. By Mohammed Shekha<email address hidden>

[FIX]Refixed the issue compute_domain for boolean field based attrs.

Revision history for this message
Mohammed Shekha(Open ERP) (msh-openerp) wrote :

Hello Xavier,

Thanks for review.

I have changed the code, let me just mention that typeof operator allows parentheses, here is the syntax of typeof unary operator typeof[(]expression[)] , parentheses are optional.

Thanks.

review: Needs Resubmitting
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

Could you write tests to ensure the behavior is the expected one?

review: Needs Fixing

Unmerged revisions

3931. By Mohammed Shekha<email address hidden>

[FIX]Refixed the issue compute_domain for boolean field based attrs.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/static/src/js/view_form.js'
2--- addons/web/static/src/js/view_form.js 2013-04-17 13:34:38 +0000
3+++ addons/web/static/src/js/view_form.js 2013-05-17 13:24:26 +0000
4@@ -1678,11 +1678,11 @@
5 switch (op.toLowerCase()) {
6 case '=':
7 case '==':
8- stack.push(_.isEqual(field_value, val));
9+ typeof val == 'object' ? stack.push(_.isEqual(field_value, val)) : stack.push(field_value == val);
10 break;
11 case '!=':
12 case '<>':
13- stack.push(!_.isEqual(field_value, val));
14+ typeof val == 'object' ? stack.push(!_.isEqual(field_value, val)) : stack.push(field_value != val);
15 break;
16 case '<':
17 stack.push(field_value < val);