bye bye page view
bzr revid: al@openerp.com-20120409205334-tbgk3fz7q7q60o3t
This commit is contained in:
parent
db8a61ba9b
commit
77ec66a20e
|
@ -802,9 +802,6 @@ def fix_view_modes(action):
|
|||
new view mode ``list`` which is the result of the ``tree`` view_mode
|
||||
in conjunction with the ``form`` view_type.
|
||||
|
||||
This method also adds a ``page`` view mode in case there is a ``form`` in
|
||||
the input action.
|
||||
|
||||
TODO: this should go into the doc, some kind of "peculiarities" section
|
||||
|
||||
:param dict action: an action descriptor
|
||||
|
@ -818,8 +815,6 @@ def fix_view_modes(action):
|
|||
if mode == 'form':
|
||||
id_form = id
|
||||
break
|
||||
if id_form is not None:
|
||||
action['views'].insert(index + 1, (id_form, 'page'))
|
||||
|
||||
if action.pop('view_type', 'form') != 'form':
|
||||
return action
|
||||
|
|
|
@ -80,6 +80,10 @@ openerp.web.FormView = openerp.web.View.extend({
|
|||
this.$buttons.html(QWeb.render("FormView.buttons", {'widget':self}));
|
||||
this.$buttons.on('click','.oe_form_buttons button.oe_form_button_save',this.on_button_save);
|
||||
this.$buttons.on('click','.oe_form_buttons button.oe_form_button_cancel',this.on_button_cancel);
|
||||
this.$buttons.on('click','.oe_form_buttons button.oe_form_button_edit',this.on_button_edit);
|
||||
this.$buttons.on('click','.oe_form_buttons button.oe_form_button_create',this.on_button_create);
|
||||
this.$buttons.on('click','.oe_form_buttons button.oe_form_button_duplicate',this.on_button_duplicate);
|
||||
this.$buttons.on('click','.oe_form_buttons button.oe_form_button_delete',this.on_button_delete);
|
||||
|
||||
this.$pager.html(QWeb.render("FormView.pager", {'widget':self}));
|
||||
this.$pager.on('click','.oe_form_pager button[data-pager-action]',function(event) {
|
||||
|
@ -145,15 +149,15 @@ openerp.web.FormView = openerp.web.View.extend({
|
|||
});
|
||||
},
|
||||
do_hide: function () {
|
||||
//if (this.sidebar) {
|
||||
// this.sidebar.$element.hide();
|
||||
//}
|
||||
//if (this.$buttons) {
|
||||
// this.$buttons.find('.oe_form_buttons').hide();
|
||||
//}
|
||||
//if (this.$pager) {
|
||||
// this.$pager.find('.oe_form_pager').hide();
|
||||
//}
|
||||
if (this.sidebar) {
|
||||
this.sidebar.$element.hide();
|
||||
}
|
||||
if (this.$buttons) {
|
||||
this.$buttons.find('.oe_form_buttons').hide();
|
||||
}
|
||||
if (this.$pager) {
|
||||
this.$pager.find('.oe_form_pager').hide();
|
||||
}
|
||||
this._super();
|
||||
},
|
||||
on_record_loaded: function(record) {
|
||||
|
@ -427,6 +431,9 @@ openerp.web.FormView = openerp.web.View.extend({
|
|||
return $.Deferred().reject();
|
||||
}
|
||||
},
|
||||
do_switch_mode: function(mode) {
|
||||
console.log("switch to",mode)
|
||||
},
|
||||
on_button_save: function() {
|
||||
var self = this;
|
||||
return this.do_save().then(function(result) {
|
||||
|
@ -457,6 +464,44 @@ openerp.web.FormView = openerp.web.View.extend({
|
|||
});
|
||||
return def.promise();
|
||||
},
|
||||
on_button_edit: function() {
|
||||
return this.do_switch_mode(1);
|
||||
},
|
||||
on_button_create: function() {
|
||||
this.dataset.index = null;
|
||||
return this.do_switch_mode(1);
|
||||
},
|
||||
on_button_duplicate: function() {
|
||||
var self = this;
|
||||
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.on_created({ result : new_id });
|
||||
}).then(function() {
|
||||
return self.do_switch_mode(1);
|
||||
}).then(function() {
|
||||
def.resolve();
|
||||
});
|
||||
});
|
||||
return def.promise();
|
||||
},
|
||||
on_button_delete: function() {
|
||||
var self = this;
|
||||
var def = $.Deferred();
|
||||
$.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');
|
||||
def.resolve();
|
||||
});
|
||||
} else {
|
||||
$.async_when().then(function () {
|
||||
def.reject();
|
||||
})
|
||||
}
|
||||
});
|
||||
return def.promise();
|
||||
},
|
||||
can_be_discarded: function() {
|
||||
return !this.$element.is('.oe_form_dirty') || confirm(_t("Warning, the record has been modified, your changes will be discarded."));
|
||||
},
|
||||
|
@ -578,6 +623,10 @@ openerp.web.FormView = openerp.web.View.extend({
|
|||
reload: function() {
|
||||
var self = this;
|
||||
return this.reload_mutex.exec(function() {
|
||||
//if (this.dataset.index == null) {
|
||||
// this.do_prev_view();
|
||||
// return $.Deferred().reject().promise();
|
||||
//}
|
||||
if (self.dataset.index == null || self.dataset.index < 0) {
|
||||
return $.when(self.on_button_new());
|
||||
} else {
|
||||
|
|
|
@ -409,7 +409,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
* @param {String} [view="page"] the view type to switch to
|
||||
*/
|
||||
select_record:function (index, view) {
|
||||
view = view || index == null ? 'form' : 'page';
|
||||
view = view || index == null ? 'form' : 'form';
|
||||
this.dataset.index = index;
|
||||
_.delay(_.bind(function () {
|
||||
this.do_switch_view(view);
|
||||
|
@ -420,11 +420,24 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
if (this.sidebar) {
|
||||
this.sidebar.$element.show();
|
||||
}
|
||||
if (this.$buttons) {
|
||||
this.$buttons.find('.oe_list_buttons').show();
|
||||
}
|
||||
if (this.$pager) {
|
||||
this.$pager.find('.oe_list_pager').show();
|
||||
}
|
||||
},
|
||||
do_hide: function () {
|
||||
this._super();
|
||||
if (this.sidebar) {
|
||||
this.sidebar.$element.hide();
|
||||
}
|
||||
if (this.$buttons) {
|
||||
this.$buttons.find('.oe_list_buttons').hide();
|
||||
}
|
||||
if (this.$pager) {
|
||||
this.$pager.find('.oe_list_pager').hide();
|
||||
}
|
||||
this._super();
|
||||
},
|
||||
/**
|
||||
* Reloads the list view based on the current settings (dataset & al)
|
||||
|
|
|
@ -2,71 +2,4 @@ openerp.web.page = function (openerp) {
|
|||
var _t = openerp.web._t,
|
||||
_lt = openerp.web._lt;
|
||||
|
||||
openerp.web.views.add('page', 'openerp.web.PageView');
|
||||
openerp.web.PageView = openerp.web.FormView.extend({
|
||||
template: "PageView",
|
||||
display_name: _lt('Page'),
|
||||
init: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.rendering_engine = new openerp.web.FormRenderingEngineReadonly(this);
|
||||
},
|
||||
reload: function () {
|
||||
if (this.dataset.index == null) {
|
||||
this.do_prev_view();
|
||||
return $.Deferred().reject().promise();
|
||||
}
|
||||
return this._super();
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this._super(data);
|
||||
this.$buttons.find('button.oe_form_button_edit').click(this.on_button_edit);
|
||||
this.$buttons.find('button.oe_form_button_create').click(this.on_button_create);
|
||||
this.$buttons.find('button.oe_form_button_duplicate').click(this.on_button_duplicate);
|
||||
this.$buttons.find('button.oe_form_button_delete').click(this.on_button_delete);
|
||||
},
|
||||
on_button_edit: function() {
|
||||
return this.do_switch_view('form');
|
||||
},
|
||||
on_button_create: function() {
|
||||
this.dataset.index = null;
|
||||
return this.do_switch_view('form');
|
||||
},
|
||||
on_button_duplicate: function() {
|
||||
var self = this;
|
||||
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.on_created({ result : new_id });
|
||||
}).then(function() {
|
||||
return self.do_switch_view('form');
|
||||
}).then(function() {
|
||||
def.resolve();
|
||||
});
|
||||
});
|
||||
return def.promise();
|
||||
},
|
||||
on_button_delete: function() {
|
||||
var self = this;
|
||||
var def = $.Deferred();
|
||||
$.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');
|
||||
def.resolve();
|
||||
});
|
||||
} else {
|
||||
$.async_when().then(function () {
|
||||
def.reject();
|
||||
})
|
||||
}
|
||||
});
|
||||
return def.promise();
|
||||
}
|
||||
});
|
||||
|
||||
openerp.web.FormRenderingEngineReadonly = openerp.web.FormRenderingEngine.extend({
|
||||
alter_field: function(field) {
|
||||
field.set({"force_readonly": true});
|
||||
},
|
||||
});
|
||||
};
|
||||
|
|
|
@ -63,7 +63,7 @@ session.web.ActionManager = session.web.Widget.extend({
|
|||
res_model: state.model,
|
||||
res_id: state.id,
|
||||
type: 'ir.actions.act_window',
|
||||
views: [[false, 'page'], [false, 'form']]
|
||||
views: [[false, 'form']]
|
||||
};
|
||||
action_loaded = this.do_action(action);
|
||||
} else if (state.sa) {
|
||||
|
@ -356,10 +356,10 @@ session.web.ViewManager = session.web.OldWidget.extend({
|
|||
if (options.created && current_view === 'form' && previous_view === 'list') {
|
||||
// APR special case: "If creation mode from list (and only from a list),
|
||||
// after saving, go to page view (don't come back in list)"
|
||||
return this.on_mode_switch('page');
|
||||
return this.on_mode_switch('form');
|
||||
} else if (options.created && !previous_view && this.action && this.action.flags.default_view === 'form') {
|
||||
// APR special case: "If creation from dashboard, we have no previous view
|
||||
return this.on_mode_switch('page');
|
||||
return this.on_mode_switch('form');
|
||||
}
|
||||
return this.on_mode_switch(previous_view, true);
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue