2012-06-12 07:19:58 +00:00
|
|
|
openerp.account = function(instance) {
|
2012-06-20 13:26:21 +00:00
|
|
|
var _t = instance.web._t,
|
|
|
|
_lt = instance.web._lt;
|
|
|
|
instance.web.views.add('form_clone', 'instance.account.extend_form_view');
|
|
|
|
instance.web.form.tags.add('list_button','instance.account.list_button')
|
2012-07-06 09:30:39 +00:00
|
|
|
instance.web.form.tags.add('btn_extend','instance.account.btn_extend')
|
2012-08-07 08:44:10 +00:00
|
|
|
|
|
|
|
instance.account.extend_viewmanager = instance.web.ViewManagerAction.include({
|
2012-06-20 13:26:21 +00:00
|
|
|
start : function(){
|
|
|
|
this._super()
|
2012-08-07 08:44:10 +00:00
|
|
|
if(this.action.context && this.action.context.extended_form_view_id)
|
|
|
|
this.setup_exended_form_view(this)
|
2012-06-20 13:26:21 +00:00
|
|
|
},
|
|
|
|
on_mode_switch: function (view_type, no_store, options) {
|
|
|
|
self = this
|
|
|
|
self.list_loaded = $.when(this._super.apply(this, arguments)).then(function () {
|
2012-08-07 08:44:10 +00:00
|
|
|
if(self.action.context && self.action.context.extended_form_view_id)
|
|
|
|
self.list_view = self.views['list']
|
2012-06-20 13:26:21 +00:00
|
|
|
})
|
|
|
|
},
|
2012-07-06 09:30:39 +00:00
|
|
|
setup_exended_form_view: function(parent){
|
2012-06-22 05:42:34 +00:00
|
|
|
var self = this,
|
|
|
|
from_view,
|
2012-06-20 13:26:21 +00:00
|
|
|
obj_from_view;
|
2012-08-07 08:44:10 +00:00
|
|
|
view_id = this.action.context.extended_form_view_id
|
2012-06-20 13:26:21 +00:00
|
|
|
from_view = this.registry.get_object('form_clone');
|
2012-08-07 08:44:10 +00:00
|
|
|
this.dataset_form = new instance.web.DataSetSearch(this, 'account.move.reconciliation', this.action.context, this.action.domain);
|
2012-06-20 13:26:21 +00:00
|
|
|
this.dataset_loaded = this.dataset_form.read_slice()
|
|
|
|
obj_from_view = new from_view(self, this.dataset_form, view_id, options={});
|
|
|
|
obj_from_view.template = 'ExtendedFormView'
|
|
|
|
view_promise = obj_from_view.appendTo(this.$element.find('.oe_extended_form_view'))
|
2012-06-22 05:42:34 +00:00
|
|
|
$.when(view_promise, this.dataset_loaded).then(function() {
|
|
|
|
if (!_.isEmpty(self.dataset_form.ids)) {
|
|
|
|
obj_from_view.on_pager_action('first')
|
|
|
|
}
|
2012-06-20 13:26:21 +00:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
instance.account.extend_form_view = instance.web.FormView.extend({
|
|
|
|
init :function(){
|
|
|
|
this._super.apply(this,arguments);
|
|
|
|
this.original_domain = this.getParent().action.domain;
|
|
|
|
},
|
2012-06-22 07:21:43 +00:00
|
|
|
on_loaded: function(data) {
|
|
|
|
this._super.apply(this,arguments);
|
|
|
|
var self = this
|
|
|
|
this.$element.on('click','a[data-pager-action]',function() {
|
|
|
|
var action = $(this).data('pager-action');
|
|
|
|
self.on_pager_action(action);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
do_update_pager: function(hide_index) {
|
|
|
|
var index = hide_index ? '-' : this.dataset.index + 1;
|
|
|
|
this.$element.find('span.oe_pager_index_extend').html(index).end()
|
|
|
|
.find('span.oe_pager_count_extend').html(this.dataset.ids.length);
|
|
|
|
},
|
2012-06-20 13:26:21 +00:00
|
|
|
on_pager_action: function(action) {
|
|
|
|
var self = this
|
|
|
|
var viewmanager = self.getParent();
|
|
|
|
viewmanager.action.domain = this.original_domain
|
|
|
|
$.when(this._super(action)).then(function() {
|
|
|
|
var id = self.get_fields_values().partner_id;
|
2012-07-12 12:15:25 +00:00
|
|
|
// apply domain on list
|
2012-06-20 13:26:21 +00:00
|
|
|
viewmanager.action.domain = (viewmanager.action.domain || []).concat([["partner_id", "=", id]])
|
|
|
|
viewmanager.searchview.do_search()
|
|
|
|
})
|
2012-07-06 09:30:39 +00:00
|
|
|
},
|
|
|
|
})
|
2012-08-07 10:21:23 +00:00
|
|
|
|
2012-07-06 09:30:39 +00:00
|
|
|
instance.account.btn_extend = instance.web.form.WidgetButton.extend({
|
2012-07-20 06:22:13 +00:00
|
|
|
on_click: function() {
|
|
|
|
var self = this;
|
|
|
|
this.force_disabled = true;
|
|
|
|
this.check_disable();
|
|
|
|
this.execute_action().always(function() {
|
|
|
|
self.force_disabled = false;
|
|
|
|
self.check_disable();
|
|
|
|
self.reload_view();
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
reload_view :function(){
|
|
|
|
viewmanager = this.view.getParent().getParent()
|
|
|
|
viewmanager.inner_widget.list_view.controller.reload_content();
|
|
|
|
},
|
2012-07-06 09:30:39 +00:00
|
|
|
})
|
2012-06-22 07:21:43 +00:00
|
|
|
|
2012-06-20 13:26:21 +00:00
|
|
|
instance.account.list_button = instance.web.form.WidgetButton.extend({
|
|
|
|
on_click: function() {
|
2012-07-04 09:09:23 +00:00
|
|
|
var self = this
|
2012-06-20 13:26:21 +00:00
|
|
|
var list_view = this.view.getParent().list_view.controller
|
|
|
|
ids = list_view.get_selected_ids()
|
|
|
|
if (ids.length == 0) {
|
|
|
|
instance.web.dialog($("<div />").text(_t("You must choose at least one record.")), { title: _t("Warning"), modal: true });
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
var additional_context = _.extend({
|
|
|
|
active_id: ids[0],
|
|
|
|
active_ids: ids,
|
|
|
|
active_model: list_view.dataset.model
|
|
|
|
});
|
|
|
|
self.rpc("/web/action/load", {
|
|
|
|
action_id: py.eval(this.node.attrs.name),
|
|
|
|
context: additional_context
|
2012-08-06 13:20:34 +00:00
|
|
|
}, function(result) {
|
|
|
|
result.result.context = _.extend(result.result.context || {},
|
|
|
|
additional_context);
|
|
|
|
result.result.flags = result.result.flags || {};
|
|
|
|
result.result.flags.new_window = true;
|
|
|
|
self.do_action(result.result, function () {
|
|
|
|
// reload view
|
|
|
|
list_view.reload();
|
|
|
|
self.getParent().reload()
|
2012-06-20 13:26:21 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
2012-08-06 10:46:31 +00:00
|
|
|
|
2012-06-12 07:19:58 +00:00
|
|
|
}
|