[MERGE] Latest trunk.
bzr revid: vta@openerp.com-20121012092939-a90zcuh4r605n7en
This commit is contained in:
@@ -627,6 +627,7 @@ instance.web.Reload = function(parent, params) {
|
||||
hash = "#menu_id=" + menu_id;
|
||||
}
|
||||
var url = l.protocol + "//" + l.host + l.pathname + search + hash;
|
||||
window.onerror = function() {};
|
||||
window.location = url;
|
||||
};
|
||||
instance.web.client_actions.add("reload", "instance.web.Reload");
|
||||
@@ -881,6 +882,7 @@ instance.web.UserMenu = instance.web.Widget.extend({
|
||||
on_action: function() {
|
||||
},
|
||||
on_menu_logout: function() {
|
||||
this.trigger('user_logout');
|
||||
},
|
||||
on_menu_settings: function() {
|
||||
var self = this;
|
||||
@@ -1039,7 +1041,7 @@ instance.web.WebClient = instance.web.Client.extend({
|
||||
self.menu.on('menu_click', this, this.on_menu_action);
|
||||
self.user_menu = new instance.web.UserMenu(self);
|
||||
self.user_menu.replace(this.$el.find('.oe_user_menu_placeholder'));
|
||||
self.user_menu.on_menu_logout.add(this.proxy('on_logout'));
|
||||
self.user_menu.on('user_logout', self, this.proxy('on_logout'));
|
||||
self.user_menu.on_action.add(this.proxy('on_menu_action'));
|
||||
self.user_menu.do_update();
|
||||
self.bind_hashchange();
|
||||
|
||||
@@ -1440,6 +1440,10 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.py_eval = function(expr, context) {
|
||||
return py.eval(expr, _.extend({}, context || {}, {"true": true, "false": false, "null": null}));
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
|
||||
|
||||
@@ -431,7 +431,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
do_notify_change: function() {
|
||||
this.$el.add(this.$buttons).addClass('oe_form_dirty');
|
||||
},
|
||||
on_pager_action: function(action) {
|
||||
execute_pager_action: function(action) {
|
||||
if (this.can_be_discarded()) {
|
||||
switch (action) {
|
||||
case 'first':
|
||||
@@ -448,6 +448,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
break;
|
||||
}
|
||||
this.reload();
|
||||
this.trigger('pager_action_executed');
|
||||
}
|
||||
},
|
||||
init_pager: function() {
|
||||
@@ -464,7 +465,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
}
|
||||
this.$pager.on('click','a[data-pager-action]',function() {
|
||||
var action = $(this).data('pager-action');
|
||||
self.on_pager_action(action);
|
||||
self.execute_pager_action(action);
|
||||
});
|
||||
this.do_update_pager();
|
||||
},
|
||||
@@ -784,7 +785,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
var def = $.Deferred();
|
||||
$.when(this.has_been_loaded).then(function() {
|
||||
self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) {
|
||||
return self.record_created({ result : new_id });
|
||||
return self.record_created(new_id);
|
||||
}).then(function() {
|
||||
return self.to_edit_mode();
|
||||
}).then(function() {
|
||||
@@ -799,7 +800,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
$.when(this.has_been_loaded).then(function() {
|
||||
if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) {
|
||||
self.dataset.unlink([self.datarecord.id]).then(function() {
|
||||
self.on_pager_action('next');
|
||||
self.execute_pager_action('next');
|
||||
def.resolve();
|
||||
});
|
||||
} else {
|
||||
@@ -956,7 +957,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
var self = this;
|
||||
return this.reload_mutex.exec(function() {
|
||||
if (self.dataset.index == null) {
|
||||
self.do_prev_view();
|
||||
self.trigger("previous_view");
|
||||
return $.Deferred().reject().promise();
|
||||
}
|
||||
if (self.dataset.index == null || self.dataset.index < 0) {
|
||||
@@ -1096,7 +1097,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
||||
field_to_set,
|
||||
self.fields[field_to_set].get_value(),
|
||||
all_users,
|
||||
false,
|
||||
true,
|
||||
condition || false
|
||||
]).then(function () { d.close(); });
|
||||
}}
|
||||
@@ -1660,6 +1661,8 @@ instance.web.form.FormDialog = instance.web.Dialog.extend({
|
||||
});
|
||||
|
||||
instance.web.form.compute_domain = function(expr, fields) {
|
||||
if (! (expr instanceof Array))
|
||||
return !! expr;
|
||||
var stack = [];
|
||||
for (var i = expr.length - 1; i >= 0; i--) {
|
||||
var ex = expr[i];
|
||||
@@ -2087,11 +2090,7 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w
|
||||
this.field = this.field_manager.get_field_desc(this.name);
|
||||
this.widget = this.node.attrs.widget;
|
||||
this.string = this.node.attrs.string || this.field.string || this.name;
|
||||
try {
|
||||
this.options = JSON.parse(this.node.attrs.options || '{}');
|
||||
} catch (e) {
|
||||
throw new Error(_.str.sprintf(_t("Widget options for field '%s' are not valid JSON."), this.name));
|
||||
}
|
||||
this.options = instance.web.py_eval(this.node.attrs.options || '{}');
|
||||
this.set({'value': false});
|
||||
|
||||
this.on("change:value", this, function() {
|
||||
@@ -2877,7 +2876,7 @@ instance.web.form.CompletionFieldMixin = {
|
||||
self.build_domain(),
|
||||
new instance.web.CompoundContext(self.build_context(), context || {})
|
||||
);
|
||||
pop.on_select_elements.add(function(element_ids) {
|
||||
pop.on("select_elements",self,function(element_ids) {
|
||||
self.add_id(element_ids[0]);
|
||||
self.focus();
|
||||
});
|
||||
@@ -3387,9 +3386,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
|
||||
controller.on("load_record", self, function(){
|
||||
once.resolve();
|
||||
});
|
||||
controller.on_pager_action.add_first(function() {
|
||||
self.save_any_view();
|
||||
});
|
||||
controller.on('pager_action_executed',self,self.save_any_view);
|
||||
} else if (view_type == "graph") {
|
||||
self.reload_current_view()
|
||||
}
|
||||
@@ -3598,7 +3595,7 @@ instance.web.form.One2ManyViewManager = instance.web.ViewManager.extend({
|
||||
form_view_options: {'not_interactible_on_create':true},
|
||||
readonly: self.o2m.get("effective_readonly")
|
||||
});
|
||||
pop.on_select_elements.add_last(function() {
|
||||
pop.on("select_elements", self, function() {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
},
|
||||
@@ -3684,7 +3681,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
|
||||
self.o2m.build_domain(),
|
||||
self.o2m.build_context()
|
||||
);
|
||||
pop.on_select_elements.add_last(function() {
|
||||
pop.on("select_elements", self, function() {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
}
|
||||
@@ -4121,7 +4118,7 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in
|
||||
this.m2m_field.build_context()
|
||||
);
|
||||
var self = this;
|
||||
pop.on_select_elements.add(function(element_ids) {
|
||||
pop.on("select_elements", self, function(element_ids) {
|
||||
_.each(element_ids, function(one_id) {
|
||||
if(! _.detect(self.dataset.ids, function(x) {return x == one_id;})) {
|
||||
self.dataset.set_ids([].concat(self.dataset.ids, [one_id]));
|
||||
@@ -4236,7 +4233,7 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(
|
||||
new instance.web.CompoundDomain(this.build_domain(), ["!", ["id", "in", this.dataset.ids]]),
|
||||
this.build_context()
|
||||
);
|
||||
pop.on_select_elements.add(function(element_ids) {
|
||||
pop.on("select_elements", self, function(element_ids) {
|
||||
_.each(element_ids, function(one_id) {
|
||||
if(! _.detect(self.dataset.ids, function(x) {return x == one_id;})) {
|
||||
self.dataset.set_ids([].concat(self.dataset.ids, [one_id]));
|
||||
@@ -4456,11 +4453,12 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({
|
||||
self.view_form.do_show();
|
||||
});
|
||||
},
|
||||
on_select_elements: function(element_ids) {
|
||||
elements_selected: function(element_ids) {
|
||||
this.trigger("select_elements",element_ids);
|
||||
},
|
||||
check_exit: function(no_destroy) {
|
||||
if (this.created_elements.length > 0) {
|
||||
this.on_select_elements(this.created_elements);
|
||||
this.elements_selected(this.created_elements);
|
||||
this.created_elements = [];
|
||||
}
|
||||
this.destroy();
|
||||
@@ -4571,7 +4569,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
|
||||
});
|
||||
var $sbutton = self.$buttonpane.find(".oe_selectcreatepopup-search-select");
|
||||
$sbutton.click(function() {
|
||||
self.on_select_elements(self.selected_ids);
|
||||
self.elements_selected(self.selected_ids);
|
||||
self.destroy();
|
||||
});
|
||||
});
|
||||
@@ -4613,7 +4611,7 @@ instance.web.form.SelectCreateListView = instance.web.ListView.extend({
|
||||
this.popup.new_object();
|
||||
},
|
||||
select_record: function(index) {
|
||||
this.popup.on_select_elements([this.dataset.ids[index]]);
|
||||
this.popup.elements_selected([this.dataset.ids[index]]);
|
||||
this.popup.destroy();
|
||||
},
|
||||
do_select: function(ids, records) {
|
||||
@@ -4641,6 +4639,7 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
|
||||
destroy_content: function() {
|
||||
if (this.fm) {
|
||||
this.fm.destroy();
|
||||
this.fm = undefined;
|
||||
}
|
||||
},
|
||||
initialize_content: function() {
|
||||
@@ -4662,9 +4661,7 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
|
||||
modifiers: JSON.stringify({readonly: this.get('effective_readonly')}),
|
||||
}});
|
||||
this.selection.on("change:value", this, this.on_selection_changed);
|
||||
this.selection.setElement(this.$(".oe_form_view_reference_selection"));
|
||||
this.selection.renderElement();
|
||||
this.selection.start();
|
||||
this.selection.appendTo(this.$(".oe_form_view_reference_selection"));
|
||||
this.selection
|
||||
.on('focused', null, function () {self.trigger('focused')})
|
||||
.on('blurred', null, function () {self.trigger('blurred')});
|
||||
@@ -4674,9 +4671,7 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan
|
||||
modifiers: JSON.stringify({readonly: this.get('effective_readonly')}),
|
||||
}});
|
||||
this.m2o.on("change:value", this, this.data_changed);
|
||||
this.m2o.setElement(this.$(".oe_form_view_reference_m2o"));
|
||||
this.m2o.renderElement();
|
||||
this.m2o.start();
|
||||
this.m2o.appendTo(this.$(".oe_form_view_reference_m2o"));
|
||||
this.m2o
|
||||
.on('focused', null, function () {self.trigger('focused')})
|
||||
.on('blurred', null, function () {self.trigger('blurred')});
|
||||
|
||||
@@ -525,8 +525,8 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
||||
controller.set_embedded_view(view.embedded_view);
|
||||
}
|
||||
controller.on('switch_mode', self, this.switch_mode);
|
||||
|
||||
controller.do_prev_view.add_last(this.on_prev_view);
|
||||
controller.on('previous_view', self, this.prev_view);
|
||||
|
||||
var container = this.$el.find(".oe_view_manager_view_" + view_type);
|
||||
var view_promise = controller.appendTo(container);
|
||||
this.views[view_type].controller = controller;
|
||||
@@ -602,7 +602,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
||||
* @param {String} [options.default=null] view to switch to if no previous view
|
||||
* @returns {$.Deferred} switching end signal
|
||||
*/
|
||||
on_prev_view: function (options) {
|
||||
prev_view: function (options) {
|
||||
options = options || {};
|
||||
var current_view = this.views_history.pop();
|
||||
var previous_view = this.views_history[this.views_history.length - 1] || options['default'];
|
||||
@@ -1258,8 +1258,7 @@ instance.web.View = instance.web.Widget.extend({
|
||||
* @param {Boolean} [options.created=false] resource was created
|
||||
* @param {String} [options.default=null] view to switch to if no previous view
|
||||
*/
|
||||
do_prev_view: function (options) {
|
||||
},
|
||||
|
||||
do_search: function(view) {
|
||||
},
|
||||
on_sidebar_export: function() {
|
||||
|
||||
@@ -4,7 +4,7 @@ import mock
|
||||
import unittest2
|
||||
|
||||
from ..controllers import main
|
||||
from ..common.session import OpenERPSession
|
||||
from ..session import OpenERPSession
|
||||
|
||||
class Placeholder(object):
|
||||
def __init__(self, **kwargs):
|
||||
|
||||
@@ -6,7 +6,7 @@ import unittest2
|
||||
import simplejson
|
||||
|
||||
import web.controllers.main
|
||||
from ..common import nonliterals, session as s
|
||||
from .. import nonliterals, session as s
|
||||
|
||||
def field_attrs(fields_view_get, fieldname):
|
||||
(field,) = filter(lambda f: f['attrs'].get('name') == fieldname,
|
||||
|
||||
@@ -57,7 +57,7 @@ instance.web.DiagramView = instance.web.View.extend({
|
||||
|
||||
this.$el.find('div.oe_diagram_pager button[data-pager-action]').click(function() {
|
||||
var action = $(this).data('pager-action');
|
||||
self.on_pager_action(action);
|
||||
self.execute_pager_action(action);
|
||||
});
|
||||
|
||||
this.do_update_pager();
|
||||
@@ -273,7 +273,7 @@ instance.web.DiagramView = instance.web.View.extend({
|
||||
self.dataset.domain,
|
||||
self.context || self.dataset.context
|
||||
);
|
||||
pop.on_select_elements.add_last(function(element_ids) {
|
||||
pop.on("select_elements", self, function(element_ids) {
|
||||
self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded);
|
||||
});
|
||||
|
||||
@@ -325,8 +325,7 @@ instance.web.DiagramView = instance.web.View.extend({
|
||||
this.dataset.domain,
|
||||
this.context || this.dataset.context
|
||||
);
|
||||
|
||||
pop.on_select_elements.add_last(function(element_ids) {
|
||||
pop.on("select_elements", self, function(element_ids) {
|
||||
self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded);
|
||||
});
|
||||
// We want to destroy the dummy edge after a creation cancel. This destroys it even if we save the changes.
|
||||
@@ -348,7 +347,7 @@ instance.web.DiagramView = instance.web.View.extend({
|
||||
});
|
||||
},
|
||||
|
||||
on_pager_action: function(action) {
|
||||
execute_pager_action: function(action) {
|
||||
switch (action) {
|
||||
case 'first':
|
||||
this.dataset.index = 0;
|
||||
@@ -381,7 +380,7 @@ instance.web.DiagramView = instance.web.View.extend({
|
||||
|
||||
do_show: function() {
|
||||
this.do_push_state({});
|
||||
return $.when(this._super(), this.on_pager_action('reload'));
|
||||
return $.when(this._super(), this.execute_pager_action('reload'));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -222,7 +222,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({
|
||||
on_task_create: function() {
|
||||
var self = this;
|
||||
var pop = new instance.web.form.SelectCreatePopup(this);
|
||||
pop.on_select_elements.add_last(function() {
|
||||
pop.on("select_elements", self, function() {
|
||||
self.reload();
|
||||
});
|
||||
pop.select_element(
|
||||
|
||||
@@ -1067,7 +1067,7 @@ instance.web_kanban.QuickCreate = instance.web.Widget.extend({
|
||||
[],
|
||||
{"default_name": self.$input.val()}
|
||||
);
|
||||
pop.on_select_elements.add(function(element_ids) {
|
||||
pop.on("select_elements", self, function(element_ids) {
|
||||
self.$input.val("");
|
||||
self.trigger('added', element_ids[0]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user