diff --git a/web_m2x_options/README.rst b/web_m2x_options/README.rst deleted file mode 100644 index 2b1fafdb..00000000 --- a/web_m2x_options/README.rst +++ /dev/null @@ -1,63 +0,0 @@ -================================== -Add new options for many2one field -================================== - - -Description ------------ - -This modules modifies "many2one" form fields so as to add some new display -control options. - -** New: support many2manytags widget ! ** - -Options provided includes possibility to remove "Create..." and/or "Create and -Edit..." entries from many2one drop down. You can also change default number of -proposition appearing in the drop-down. Or prevent the dialog box poping in -case of validation error. - -If not specified, the module will avoid proposing any of the create options -if the current user have no permission rights to create the related object. - - -Requirements ------------- - -Was tested on openerp v7.0 - - -New option ----------- - -``create`` *boolean* (Default: depends if user have create rights) - - Whether to display the "Create..." entry in dropdown panel. - -``create_edit`` *boolean* (Default: depends if user have create rights) - - Whether to display "Create and Edit..." entry in dropdown panel - -``m2o_dialog`` *boolean* (Default: depends if user have create rights) - - Whether to display the many2one dialog in case of validation error. - -``limit`` *int* (Default: openerp default value is ``7``) - - Number of displayed record in drop-down panel - - -Example -------- - -Your XML form view definition could contain:: - - ... - - ... - -Note ----- - -Double check that you have no inherited view that remote ``options`` you set on a field ! -If nothing work, add a debugger in the first ligne of ``get_search_result method`` and enable debug mode in OpenERP. When you write something in a many2one field, javascript debugger should pause. If not verify your installation. - diff --git a/web_m2x_options/__init__.py b/web_m2x_options/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/web_m2x_options/__openerp__.py b/web_m2x_options/__openerp__.py deleted file mode 100644 index f428885e..00000000 --- a/web_m2x_options/__openerp__.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -{ - "name": 'web_m2x_options', - "version": "0.1", - "description": -""" -===================================================== -Add new options for many2one and many2manytags field: -===================================================== - -- create: true/false -> disable "create" entry in dropdown panel -- create_edit: true/false -> disable "create and edit" entry in dropdown panel -- limit: 10 (int) -> change number of selected record return in dropdown panel -- m2o_dialog: true/false -> disable quick create M20Dialog triggered on error. - -Example: --------- - - - -Note: ------ - -if one of those options are not set, many2one field use default many2one field options. - -Thanks to: ----------- - -- Nicolas JEUDY -- Valentin LAB - -""", - "depends": [ - 'base', - 'web', - ], - "js": [ - 'static/src/js/form.js', - ], - "author": "Tuxservices", - "installable" : True, - "active" : False, -} - - diff --git a/web_m2x_options/static/description/index.html b/web_m2x_options/static/description/index.html deleted file mode 100644 index 30abedb7..00000000 --- a/web_m2x_options/static/description/index.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - -Add new options for many2one field - - - -
-

Add new options for many2one field

- -
-

Description

-

This modules modifies "many2one" form fields so as to add some new display -control options.

-

** New: support many2manytags widget ! **

-

Options provided includes possibility to remove "Create..." and/or "Create and -Edit..." entries from many2one drop down. You can also change default number of -proposition appearing in the drop-down. Or prevent the dialog box poping in -case of validation error.

-

If not specified, the module will avoid proposing any of the create options -if the current user have no permission rights to create the related object.

-
-
-

Requirements

-

Was tested on openerp v7.0

-
-
-

New option

-

create boolean (Default: depends if user have create rights)

-
-Whether to display the "Create..." entry in dropdown panel.
-

create_edit boolean (Default: depends if user have create rights)

-
-Whether to display "Create and Edit..." entry in dropdown panel
-

m2o_dialog boolean (Default: depends if user have create rights)

-
-Whether to display the many2one dialog in case of validation error.
-

limit int (Default: openerp default value is 7)

-
-Number of displayed record in drop-down panel
-
-
-

Example

-

Your XML form view definition could contain:

-
-...
-<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false}"/>
-...
-
-
-
-

Note

-

Double check that you have no inherited view that remote options you set on a field ! -If nothing work, add a debugger in the first ligne of get_search_result method and enable debug mode in OpenERP. When you write something in a many2one field, javascript debugger should pause. If not verify your installation.

-
-
- - diff --git a/web_m2x_options/static/src/js/form.js b/web_m2x_options/static/src/js/form.js deleted file mode 100644 index 00885a09..00000000 --- a/web_m2x_options/static/src/js/form.js +++ /dev/null @@ -1,224 +0,0 @@ -/*global openerp, _, $ */ - -openerp.web_m2x_options = function (instance) { - - "use strict"; - - var QWeb = instance.web.qweb, - _t = instance.web._t, - _lt = instance.web._lt; - - instance.web.form.FieldMany2One.include({ - - show_error_displayer: function () { - if ((typeof this.options.m2o_dialog === 'undefined' && this.can_create) || - this.options.m2o_dialog) { - new instance.web.form.M2ODialog(this).open(); - } - }, - - get_search_result: function (search_val) { - - var def = $.Deferred(); - var self = this; - // add options limit used to change number of selections record - // returned. - - if (typeof this.options.limit === 'number') { - this.limit = this.options.limit; - } - - var dataset = new instance.web.DataSet(this, this.field.relation, - self.build_context()); - var blacklist = this.get_search_blacklist(); - this.last_query = search_val; - - var search_result = this.orderer.add(dataset.name_search( - search_val, - new instance.web.CompoundDomain( - self.build_domain(), [["id", "not in", blacklist]]), - 'ilike', this.limit + 1, - self.build_context())); - - var create_rights; - if (typeof this.options.create === "undefined" || - typeof this.options.create_edit === "undefined") { - create_rights = new instance.web.Model(this.field.relation).call( - "check_access_rights", ["create", false]); - } - - $.when(search_result, create_rights).then(function (_data, _can_create) { - var data = _data[0]; - - var can_create = _can_create ? _can_create[0] : null; - - self.can_create = can_create; // for ``.show_error_displayer()`` - self.last_search = data; - // possible selections for the m2o - var values = _.map(data, function (x) { - x[1] = x[1].split("\n")[0]; - return { - label: _.str.escapeHTML(x[1]), - value: x[1], - name: x[1], - id: x[0], - }; - }); - - // search more... if more results that max - - if (values.length > self.limit) { - values = values.slice(0, self.limit); - values.push({ - label: _t("Search More..."), - action: function () { - dataset.name_search( - search_val, self.build_domain(), - 'ilike', false).done(function (data) { - self._search_create_popup("search", data); - }); - }, - classname: 'oe_m2o_dropdown_option' - }); - } - - // quick create - - var raw_result = _(data.result).map(function (x) { - return x[1]; - }); - - if ((typeof self.options.create === 'undefined' && can_create) || - self.options.create) { - - if (search_val.length > 0 && - !_.include(raw_result, search_val)) { - - values.push({ - label: _.str.sprintf( - _t('Create "%s"'), - $('').text(search_val).html()), - action: function () { - self._quick_create(search_val); - }, - classname: 'oe_m2o_dropdown_option' - }); - } - } - - // create... - - if ((typeof self.options.create_edit === 'undefined' && can_create) || - self.options.create_edit) { - - values.push({ - label: _t("Create and Edit..."), - action: function () { - self._search_create_popup( - "form", undefined, - self._create_context(search_val)); - }, - classname: 'oe_m2o_dropdown_option' - }); - } - - def.resolve(values); - }); - - return def; - } - }); - - instance.web.form.FieldMany2ManyTags.include({ - - show_error_displayer: function () { - if ((typeof this.options.m2o_dialog === 'undefined' && this.can_create) || - this.options.m2o_dialog) { - new instance.web.form.M2ODialog(this).open(); - } - }, - - /** - * Call this method to search using a string. - */ - - get_search_result: function(search_val) { - var self = this; - - // add options limit used to change number of selections record - // returned. - - if (typeof this.options.limit === 'number') { - this.limit = this.options.limit; - } - - var dataset = new instance.web.DataSet(this, this.field.relation, self.build_context()); - var blacklist = this.get_search_blacklist(); - this.last_query = search_val; - - return this.orderer.add(dataset.name_search( - search_val, new instance.web.CompoundDomain(self.build_domain(), [["id", "not in", blacklist]]), - 'ilike', this.limit + 1, self.build_context())).then(function(data) { - self.last_search = data; - // possible selections for the m2o - var values = _.map(data, function(x) { - x[1] = x[1].split("\n")[0]; - return { - label: _.str.escapeHTML(x[1]), - value: x[1], - name: x[1], - id: x[0], - }; - }); - - // search more... if more results that max - if (values.length > self.limit) { - values = values.slice(0, self.limit); - values.push({ - label: _t("Search More..."), - action: function() { - dataset.name_search(search_val, self.build_domain(), 'ilike', false).done(function(data) { - self._search_create_popup("search", data); - }); - }, - classname: 'oe_m2o_dropdown_option' - }); - } - // quick create - - if ((typeof self.options.create === 'undefined') || - self.options.create) { - - var raw_result = _(data.result).map(function(x) {return x[1];}); - if (search_val.length > 0 && !_.include(raw_result, search_val)) { - values.push({ - label: _.str.sprintf(_t('Create "%s"'), - $('').text(search_val).html()), - action: function() { - self._quick_create(search_val); - }, - classname: 'oe_m2o_dropdown_option' - }); - } - } - - // create... - - if ((typeof self.options.create_edit === 'undefined') || - self.options.create_edit) { - - values.push({ - label: _t("Create and Edit..."), - action: function() { - self._search_create_popup("form", undefined, self._create_context(search_val)); - }, - classname: 'oe_m2o_dropdown_option' - }); - } - - return values; - }) - }, - }); -}; -