From b79f9b58074d0672737c8b84e07246991131b062 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 9 Jul 2012 13:57:27 +0200 Subject: [PATCH 1/3] [FIX] small problem with m2o bzr revid: nicolas.vanhoren@openerp.com-20120709115727-gtxyt4kzg9c7tqot --- addons/web/static/src/js/view_form.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index d40a1760e81..63fd46dd440 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2553,6 +2553,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc this.last_search = []; this.floating = false; this.inhibit_on_change = false; + this.current_display = null; }, start: function() { this._super(); @@ -2605,10 +2606,13 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc // some behavior for input this.$input.keyup(function() { - if (self.$input.val() === "") { - self.set({value: false}); - } else { - self.floating = true; + if (self.current_display !== self.$input.val()) { + self.current_display = self.$input.val(); + if (self.$input.val() === "") { + self.set({value: false}); + } else { + self.floating = true; + } } }); this.$drop_down.click(function() { @@ -2646,7 +2650,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc } self.floating = false; } - if (used) { + if (used && self.get("value") === false) { tip_def.reject(); untip_def.reject(); tip_def = $.Deferred(); @@ -2701,7 +2705,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc this.$input.autocomplete("widget").addClass("openerp"); // used to correct a bug when selecting an element by pushing 'enter' in an editable list this.$input.keyup(function(e) { - if (e.which === 13) { + if (e.which === 13) { // ENTER if (isSelecting) e.stopPropagation(); } @@ -2733,6 +2737,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc var self = this; if (!this.get("effective_readonly")) { this.$input.val(str.split("\n")[0]); + this.current_display = this.$input.val(); } else { str = _.escape(str).split("\n").join("
"); this.$element.find('a') From ea076e054bbf95ce5454eae08f7c8a0defb628f1 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 9 Jul 2012 15:45:16 +0200 Subject: [PATCH 2/3] [IMP] removed js file arguments in debug mode to ease debugging bzr revid: nicolas.vanhoren@openerp.com-20120709134516-bd1yabogwoomipkd --- addons/web/controllers/main.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index f1d44b0c885..412ea9abda2 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -194,7 +194,9 @@ class WebClient(openerpweb.Controller): if mods is not None: path += '?mods=' + mods return [path] - return ['%s?debug=%s' % (wp, os.path.getmtime(fp)) for fp, wp in self.manifest_glob(req, mods, extension)] + # old code to force cache reloading + #return ['%s?debug=%s' % (wp, os.path.getmtime(fp)) for fp, wp in self.manifest_glob(req, mods, extension)] + return [el[1] for el in self.manifest_glob(req, mods, extension)] @openerpweb.jsonrequest def csslist(self, req, mods=None): From 6c51450adb5bd2eca59ef8e6f8bd9f6ef3ed56e2 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Mon, 9 Jul 2012 17:17:57 +0200 Subject: [PATCH 3/3] [IMP] project: privacy/visibility field is required bzr revid: qdp-launchpad@openerp.com-20120709151757-wl019ftl2xheb9o3 --- addons/project/project.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index 487daa834bb..5810f34ad4a 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -215,7 +215,7 @@ class project(osv.osv): 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'task_count': fields.function(_task_count, type='integer', string="Open Tasks"), 'color': fields.integer('Color Index'), - 'privacy_visibility': fields.selection([('public','Public'), ('followers','Followers Only')], 'Privacy / Visibility'), + 'privacy_visibility': fields.selection([('public','Public'), ('followers','Followers Only')], 'Privacy / Visibility', required=True), 'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','Pending'),('close','Closed')], 'Status', required=True,), 'followers': fields.function(_get_followers, method=True, fnct_search=_search_followers, type='many2many', relation='res.users', string='Followers'), @@ -236,6 +236,7 @@ class project(osv.osv): 'priority': 1, 'sequence': 10, 'type_ids': _get_type_common, + 'privacy_visibility': 'public', } # TODO: Why not using a SQL contraints ?