[MeRGE] Merge with trunk upto revision no 802.
bzr revid: ysa@tinyerp.com-20110812045222-993fbrjuzma3jywe
This commit is contained in:
@@ -923,7 +923,7 @@ label.error {
|
||||
height: 15px;
|
||||
}
|
||||
.openerp td.required input, .openerp td.required select {
|
||||
background-color: #D2D2FF;
|
||||
background-color: #D2D2FF !important;
|
||||
}
|
||||
.openerp td.invalid input, .openerp td.invalid select, .openerp td.invalid textarea {
|
||||
background-color: #F66 !important;
|
||||
|
||||
@@ -1506,7 +1506,6 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
|
||||
var dataset = new openerp.base.DataSetStatic(self, self.field.relation, self.build_context());
|
||||
dataset.name_get([element_ids[0]], function(data) {
|
||||
self._change_int_ext_value(data[0]);
|
||||
pop.stop();
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -1842,16 +1841,16 @@ openerp.base.form.One2ManyListView = openerp.base.ListView.extend({
|
||||
pop.select_element(self.o2m.field.relation,{
|
||||
initial_view: "form",
|
||||
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
|
||||
auto_create: false,
|
||||
create_function: function(data) {
|
||||
return self.o2m.dataset.create(data, function(r) {
|
||||
self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r.result]));
|
||||
self.o2m.dataset.on_change();
|
||||
});
|
||||
},
|
||||
parent_view: self.o2m.view
|
||||
}, self.o2m.build_domain(), self.o2m.build_context());
|
||||
pop.on_create.add(function(data) {
|
||||
self.o2m.dataset.create(data, function(r) {
|
||||
self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r.result]));
|
||||
self.o2m.dataset.on_change();
|
||||
pop.stop();
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
pop.on_select_elements.add_last(function() {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
}
|
||||
},
|
||||
@@ -1946,7 +1945,6 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({
|
||||
self.reload_content();
|
||||
}
|
||||
});
|
||||
pop.stop();
|
||||
});
|
||||
},
|
||||
do_activate_record: function(index, id) {
|
||||
@@ -1968,16 +1966,22 @@ openerp.base.form.SelectCreatePopup = openerp.base.OldWidget.extend({
|
||||
* - initial_view: form or search (default search)
|
||||
* - disable_multiple_selection
|
||||
* - alternative_form_view
|
||||
* - auto_create (default true)
|
||||
* - create_function (defaults to a naive saving behavior)
|
||||
* - parent_view
|
||||
*/
|
||||
select_element: function(model, options, domain, context) {
|
||||
var self = this;
|
||||
this.model = model;
|
||||
this.domain = domain || [];
|
||||
this.context = context || {};
|
||||
this.options = _.defaults(options || {}, {"initial_view": "search", "auto_create": true});
|
||||
this.options = _.defaults(options || {}, {"initial_view": "search", "create_function": function() {
|
||||
return self.create_row.apply(self, arguments);
|
||||
}});
|
||||
this.initial_ids = this.options.initial_ids;
|
||||
openerp.base.form.dialog(this.render());
|
||||
this.created_elements = [];
|
||||
openerp.base.form.dialog(this.render(), {close:function() {
|
||||
self.check_exit();
|
||||
}});
|
||||
this.start();
|
||||
},
|
||||
start: function() {
|
||||
@@ -2023,6 +2027,7 @@ openerp.base.form.SelectCreatePopup = openerp.base.OldWidget.extend({
|
||||
}
|
||||
$sbutton.click(function() {
|
||||
self.on_select_elements(self.selected_ids);
|
||||
self.stop();
|
||||
});
|
||||
self.view_list = new openerp.base.form.SelectCreateListView(self,
|
||||
self.element_id + "_view_list", self.dataset, false,
|
||||
@@ -2035,15 +2040,11 @@ openerp.base.form.SelectCreatePopup = openerp.base.OldWidget.extend({
|
||||
});
|
||||
this.searchview.start();
|
||||
},
|
||||
on_create: function(data) {
|
||||
if (!this.options.auto_create)
|
||||
return;
|
||||
create_row: function(data) {
|
||||
var self = this;
|
||||
var wdataset = new openerp.base.DataSetSearch(this, this.model, this.context, this.domain);
|
||||
wdataset.parent_view = this.options.parent_view;
|
||||
wdataset.create(data, function(r) {
|
||||
self.on_select_elements([r.result]);
|
||||
});
|
||||
return wdataset.create(data);
|
||||
},
|
||||
on_select_elements: function(element_ids) {
|
||||
},
|
||||
@@ -2071,18 +2072,43 @@ openerp.base.form.SelectCreatePopup = openerp.base.OldWidget.extend({
|
||||
this.view_form.start();
|
||||
this.view_form.on_loaded.add_last(function() {
|
||||
var $buttons = self.view_form.$element.find(".oe_form_buttons");
|
||||
$buttons.html(QWeb.render("SelectCreatePopup.form.buttons"));
|
||||
$buttons.html(QWeb.render("SelectCreatePopup.form.buttons", {widget:self}));
|
||||
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new");
|
||||
$nbutton.click(function() {
|
||||
self._created = $.Deferred().then(function() {
|
||||
self._created = undefined;
|
||||
self.view_form.on_button_new();
|
||||
});
|
||||
self.view_form.do_save();
|
||||
});
|
||||
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save");
|
||||
$nbutton.click(function() {
|
||||
self._created = $.Deferred().then(function() {
|
||||
self._created = undefined;
|
||||
self.check_exit();
|
||||
});
|
||||
self.view_form.do_save();
|
||||
});
|
||||
var $cbutton = $buttons.find(".oe_selectcreatepopup-form-close");
|
||||
$cbutton.click(function() {
|
||||
self.stop();
|
||||
self.check_exit();
|
||||
});
|
||||
});
|
||||
this.dataset.on_create.add(function(data) {
|
||||
self.options.create_function(data).then(function(r) {
|
||||
self.created_elements.push(r.result);
|
||||
if (self._created) {
|
||||
self._created.resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
this.dataset.on_create.add(this.on_create);
|
||||
this.view_form.do_show();
|
||||
},
|
||||
check_exit: function() {
|
||||
if (this.created_elements.length > 0) {
|
||||
this.on_select_elements(this.created_elements);
|
||||
}
|
||||
this.stop();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -2092,6 +2118,7 @@ openerp.base.form.SelectCreateListView = openerp.base.ListView.extend({
|
||||
},
|
||||
select_record: function(index) {
|
||||
this.popup.on_select_elements([this.dataset.ids[index]]);
|
||||
this.popup.stop();
|
||||
},
|
||||
do_select: function(ids, records) {
|
||||
this._super(ids, records);
|
||||
|
||||
@@ -352,8 +352,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||
* Reloads the list view based on the current settings (dataset & al)
|
||||
*
|
||||
* @param {Boolean} [grouped] Should the list be displayed grouped
|
||||
* @param {Object} [context] context to send the server while loading the view
|
||||
*/
|
||||
reload_view: function (grouped) {
|
||||
reload_view: function (grouped, context) {
|
||||
var self = this;
|
||||
var callback = function (field_view_get) {
|
||||
self.on_loaded(field_view_get, grouped);
|
||||
@@ -364,7 +365,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||
return this.rpc('/base/listview/load', {
|
||||
model: this.model,
|
||||
view_id: this.view_id,
|
||||
context: this.dataset.get_context(),
|
||||
context: this.dataset.get_context(context),
|
||||
toolbar: this.options.sidebar
|
||||
}, callback);
|
||||
}
|
||||
@@ -411,7 +412,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||
results.group_by = null;
|
||||
}
|
||||
|
||||
this.reload_view(!!results.group_by).then(
|
||||
this.reload_view(!!results.group_by, results.context).then(
|
||||
$.proxy(this, 'reload_content'));
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -361,7 +361,6 @@ openerp.base.search.fields = new openerp.base.Registry({
|
||||
'selection': 'openerp.base.search.SelectionField',
|
||||
'datetime': 'openerp.base.search.DateTimeField',
|
||||
'date': 'openerp.base.search.DateField',
|
||||
'one2many': 'openerp.base.search.OneToManyField',
|
||||
'many2one': 'openerp.base.search.ManyToOneField',
|
||||
'many2many': 'openerp.base.search.ManyToManyField'
|
||||
});
|
||||
@@ -796,6 +795,12 @@ openerp.base.search.ManyToOneField = openerp.base.search.CharField.extend({
|
||||
return this._super();
|
||||
}
|
||||
});
|
||||
/**
|
||||
* m2m search field behaves pretty much exactly like a char field
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
openerp.base.search.ManyToManyField = openerp.base.search.CharField.extend({});
|
||||
|
||||
openerp.base.search.ExtendedSearch = openerp.base.OldWidget.extend({
|
||||
template: 'SearchView.extended_search',
|
||||
|
||||
@@ -176,7 +176,6 @@ openerp.base.TreeView = openerp.base.View.extend({
|
||||
}, function (actions) {
|
||||
if (!actions.length) { return; }
|
||||
var action = actions[0][2];
|
||||
action.flags.new_window = true;
|
||||
self.do_action(action);
|
||||
});
|
||||
},
|
||||
|
||||
@@ -39,7 +39,6 @@ openerp.base.ActionManager = openerp.base.Widget.extend({
|
||||
var type = action.type.replace(/\./g,'_');
|
||||
var popup = action.target === 'new';
|
||||
action.flags = _.extend({
|
||||
popup: popup,
|
||||
views_switcher : !popup,
|
||||
search_view : !popup,
|
||||
action_buttons : !popup,
|
||||
@@ -53,7 +52,7 @@ openerp.base.ActionManager = openerp.base.Widget.extend({
|
||||
this[type](action, on_closed);
|
||||
},
|
||||
ir_actions_act_window: function (action, on_close) {
|
||||
if (action.flags.popup) {
|
||||
if (action.target === 'new') {
|
||||
if (this.dialog == null) {
|
||||
this.dialog = new openerp.base.Dialog(this, { title: action.name, width: '80%' });
|
||||
if(on_close)
|
||||
@@ -252,13 +251,15 @@ openerp.base.ViewManager = openerp.base.Widget.extend({
|
||||
openerp.base.ViewManagerAction = openerp.base.ViewManager.extend({
|
||||
init: function(parent, action) {
|
||||
this.session = parent.session;
|
||||
this.action = action;
|
||||
var dataset;
|
||||
if (!action.res_id) {
|
||||
dataset = new openerp.base.DataSetSearch(this, action.res_model, action.context, action.domain);
|
||||
} else {
|
||||
this.action.flags.search_view = false;
|
||||
dataset = new openerp.base.DataSetStatic(this, action.res_model, action.context, [action.res_id]);
|
||||
dataset.index = 0;
|
||||
}
|
||||
this.action = action;
|
||||
this._super(parent, dataset, action.views);
|
||||
this.action = action;
|
||||
this.flags = this.action.flags || {};
|
||||
|
||||
@@ -1114,11 +1114,17 @@
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup.search.buttons">
|
||||
<button type="button" class="oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
|
||||
<button type="button" class="oe_selectcreatepopup-search-close">Close</button>
|
||||
<button type="button" class="oe_selectcreatepopup-search-close">Cancel</button>
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup.form.buttons">
|
||||
<button type="button" class="oe_selectcreatepopup-form-save">Save</button>
|
||||
<button type="button" class="oe_selectcreatepopup-form-close">Close</button>
|
||||
<t t-if="widget.options.disable_multiple_selection">
|
||||
<button type="button" class="oe_selectcreatepopup-form-save">Save</button>
|
||||
</t>
|
||||
<t t-if="! widget.options.disable_multiple_selection">
|
||||
<button type="button" class="oe_selectcreatepopup-form-save-new">Save & New</button>
|
||||
<button type="button" class="oe_selectcreatepopup-form-save">Save & Close</button>
|
||||
</t>
|
||||
<button type="button" class="oe_selectcreatepopup-form-close">Cancel</button>
|
||||
</t>
|
||||
<t t-name="FormOpenPopup">
|
||||
<div t-att-id="element_id">
|
||||
@@ -1127,7 +1133,7 @@
|
||||
</t>
|
||||
<t t-name="FormOpenPopup.form.buttons">
|
||||
<button type="button" class="oe_formopenpopup-form-save">Save</button>
|
||||
<button type="button" class="oe_formopenpopup-form-close">Close</button>
|
||||
<button type="button" class="oe_formopenpopup-form-close">Cancel</button>
|
||||
</t>
|
||||
<t t-name="ListView.row.frame" t-extend="WidgetFrame">
|
||||
<t t-jquery="tr">
|
||||
|
||||
Reference in New Issue
Block a user