[MERGE] Merged with web/trunk.

bzr revid: tde@openerp.com-20121016074614-bpa5fernlvppihue
This commit is contained in:
Thibault Delavallée
2012-10-16 09:46:14 +02:00
21 changed files with 44 additions and 29 deletions
+6 -3
View File
@@ -70,7 +70,7 @@ instance.web.Dialog = instance.web.Widget.extend({
autoOpen: false,
position: [false, 40],
buttons: {},
beforeClose: function () { self.close(); },
beforeClose: function () { self.trigger("closing") },
resizeStop: this.on_resized
};
for (var f in this) {
@@ -84,6 +84,7 @@ instance.web.Dialog = instance.web.Widget.extend({
}
_.extend(this.dialog_options, options);
}
this.on("closing", this, this._closing);
},
get_options: function(options) {
var self = this,
@@ -150,14 +151,16 @@ instance.web.Dialog = instance.web.Widget.extend({
var res = this.start();
return res;
},
close: function() {
close: function() {
this.$el.dialog('close');
},
_closing: function() {
if (this.__tmp_dialog_destroying)
return;
if (this.dialog_options.destroy_on_close) {
this.__tmp_dialog_closing = true;
this.destroy();
this.__tmp_dialog_closing = undefined;
this.trigger("dialog_close");
}
},
on_resized: function() {
+1 -1
View File
@@ -135,7 +135,7 @@ instance.web.format_value = function (value, descriptor, value_if_empty) {
Math.round((value % 1) * 60));
case 'many2one':
// name_get value format
return value[1];
return value[1] ? value[1].split("\n")[0] : value[1];
case 'one2many':
case 'many2many':
if (typeof value === 'string') {
+1 -2
View File
@@ -4404,9 +4404,8 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
self.check_exit(true);
},
title: this.options.title || "",
buttons: [{text:"tmp"}],
}, this.$el).open();
this.$buttonpane = dialog.$el.dialog("widget").find(".ui-dialog-buttonpane").html("");
this.$buttonpane = dialog.$buttons;
this.start();
},
setup_form_view: function() {
+16 -4
View File
@@ -201,10 +201,7 @@ openerp.web.list_editable = function (instance) {
}, function () {
return self.editor.edit(item, function (field_name, field) {
var cell = cells[field_name];
if (!cell || field.get('effective_readonly')) {
// Readonly fields can just remain the list's,
// form's usually don't have backgrounds &al
field.set({invisible: true});
if (!cell) {
return;
}
@@ -400,6 +397,21 @@ openerp.web.list_editable = function (instance) {
},
setup_events: function () {
var self = this;
_.each(this.editor.form.fields, function(field, field_name) {
var field;
var setting = false;
var set_invisible = function() {
if (!setting && field.get("effective_readonly")) {
setting = true;
field.set({invisible: true});
setting = false;
}
};
field.on("change:effective_readonly", self, set_invisible);
field.on("change:invisible", self, set_invisible);
set_invisible();
});
this.editor.$el.on('keyup keydown', function (e) {
if (!self.editor.is_editing()) { return; }
var key = _($.ui.keyCode).chain()
+2 -3
View File
@@ -296,9 +296,8 @@ instance.web.ActionManager = instance.web.Widget.extend({
buttons: { "Close": function() { $(this).dialog("close"); }},
dialogClass: executor.klass
});
if (on_close) {
this.dialog.on("dialog_close", this, on_close);
}
if(on_close)
this.dialog.on("closing", null, on_close);
} else {
this.dialog_widget.destroy();
}
+2 -2
View File
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
import mock
import unittest2
import web.controllers.main
import openerp.addons.web.controllers.main
class TestDataSetController(unittest2.TestCase):
def setUp(self):
self.dataset = web.controllers.main.DataSet()
self.dataset = openerp.addons.web.controllers.main.DataSet()
self.request = mock.Mock()
self.read = self.request.session.model().read
self.search = self.request.session.model().search
+3 -3
View File
@@ -5,7 +5,7 @@ import mock
import unittest2
import simplejson
import web.controllers.main
import openerp.addons.web.controllers.main
from .. import nonliterals, session as s
def field_attrs(fields_view_get, fieldname):
@@ -16,7 +16,7 @@ def field_attrs(fields_view_get, fieldname):
#noinspection PyCompatibility
class DomainsAndContextsTest(unittest2.TestCase):
def setUp(self):
self.view = web.controllers.main.View()
self.view = openerp.addons.web.controllers.main.View()
def test_convert_literal_domain(self):
e = xml.etree.ElementTree.Element(
@@ -106,7 +106,7 @@ class DomainsAndContextsTest(unittest2.TestCase):
class AttrsNormalizationTest(unittest2.TestCase):
def setUp(self):
self.view = web.controllers.main.View()
self.view = openerp.addons.web.controllers.main.View()
def test_identity(self):
web_view = """
@@ -450,12 +450,19 @@ instance.web_calendar.CalendarFormDialog = instance.web.Dialog.extend({
this.dataset = dataset;
this.view_id = view_id;
this.view = view;
this.on("closing", this, function() {
if (this.view.creating_event_id) {
scheduler.deleteEvent(this.view.creating_event_id);
this.view.creating_event_id = null;
}
});
},
start: function() {
var self = this;
this._super();
this.form = new instance.web.FormView(this, this.dataset, this.view_id, {
pager: false
pager: false,
$buttons: this.$buttons,
});
var def = this.form.appendTo(this.$el);
this.form.on('record_created', self, this.on_form_dialog_saved);
@@ -474,12 +481,6 @@ instance.web_calendar.CalendarFormDialog = instance.web.Dialog.extend({
this.view.reload_event(id);
this.close();
},
on_close: function() {
if (this.view.creating_event_id) {
scheduler.deleteEvent(this.view.creating_event_id);
this.view.creating_event_id = null;
}
}
});
instance.web_calendar.Sidebar = instance.web.Widget.extend({
+4 -4
View File
@@ -194,10 +194,10 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
});
var am = instance.webclient.action_manager;
var form = am.dialog_widget.views.form.controller;
form.on("on_button_cancel", self, am.dialog.on_close);
form.on("on_button_cancel", am.dialog, am.dialog.close);
form.on('record_created', self, function(r) {
(new instance.web.DataSet(self, self.group_by_field.relation)).name_get([r]).then(function(new_record) {
am.dialog.on_close();
am.dialog.close();
var domain = self.dataset.domain.slice(0);
domain.push([self.group_by, '=', new_record[0][0]]);
var dataset = new instance.web.DataSetSearch(self, self.dataset.model, self.dataset.get_context(), domain);
@@ -672,9 +672,9 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
});
var am = instance.webclient.action_manager;
var form = am.dialog_widget.views.form.controller;
form.on("on_button_cancel", self, am.dialog.on_close);
form.on("on_button_cancel", am.dialog, am.dialog.close);
form.on('record_saved', self, function() {
am.dialog.on_close();
am.dialog.close();
self.view.do_reload();
});
},
@@ -67,6 +67,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
{text: _t("Close"), click: function() { self.view_edit_dialog.close(); window.location.reload(); }}
]
}).open();
this.view_edit_dialog.on("closing", this, function(){window.location.reload();});
this.main_view_id = this.parent.fields_view.view_id;
this.action_manager = new instance.web.ActionManager(this);
this.action_manager.appendTo(this.view_edit_dialog.$el);