[MERGE] forward port branch saas-16 up to 255478acbd
This commit is contained in:
@@ -46,7 +46,7 @@ var M2ODialog = Dialog.extend({
|
||||
click: function () {
|
||||
if (this.$("input").val() !== ''){
|
||||
this.trigger_up('quick_create', { value: this.$('input').val() });
|
||||
this.close();
|
||||
this.close(true);
|
||||
} else {
|
||||
this.$("input").focus();
|
||||
}
|
||||
@@ -71,12 +71,30 @@ var M2ODialog = Dialog.extend({
|
||||
this.$("p").text(_.str.sprintf(_t("You are creating a new %s, are you sure it does not exist yet?"), this.name));
|
||||
this.$("input").val(this.value);
|
||||
},
|
||||
/**
|
||||
* @override
|
||||
* @param {boolean} isSet
|
||||
*/
|
||||
close: function (isSet) {
|
||||
this.isSet = isSet;
|
||||
this._super.apply(this, arguments);
|
||||
},
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
destroy: function () {
|
||||
if (!this.isSet) {
|
||||
this.trigger_up('closed_unset');
|
||||
}
|
||||
this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
var FieldMany2One = AbstractField.extend({
|
||||
supportedFieldTypes: ['many2one'],
|
||||
template: 'FieldMany2One',
|
||||
custom_events: _.extend({}, AbstractField.prototype.custom_events, {
|
||||
'closed_unset': '_onDialogClosedUnset',
|
||||
'quick_create': '_onQuickCreate',
|
||||
'search_create_popup': '_onSearchCreatePopup',
|
||||
}),
|
||||
@@ -451,6 +469,16 @@ var FieldMany2One = AbstractField.extend({
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Reset the input as dialog has been closed without m2o creation.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_onDialogClosedUnset: function () {
|
||||
this.floating = false;
|
||||
this._render();
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
|
||||
@@ -1397,7 +1397,7 @@ QUnit.module('relational_fields', {
|
||||
});
|
||||
|
||||
QUnit.test('slow create on a many2one', function (assert) {
|
||||
assert.expect(1);
|
||||
assert.expect(7);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
@@ -1417,12 +1417,34 @@ QUnit.module('relational_fields', {
|
||||
},
|
||||
});
|
||||
|
||||
// cancel the many2one creation with Cancel button
|
||||
form.$('.o_field_many2one input').focus().val('new product').trigger('keyup').trigger('blur');
|
||||
assert.strictEqual($('.modal').length, 1, "there should be one opened modal");
|
||||
$('.modal .modal-footer .btn:contains(Cancel)').click();
|
||||
assert.strictEqual(form.$('.o_field_many2one input').val(), "",
|
||||
'the many2one should not set a value as its creation has been cancelled (with Cancel button)');
|
||||
|
||||
// cancel the many2one creation with Close button
|
||||
form.$('.o_field_many2one input').focus().val('new product').trigger('keyup').trigger('blur');
|
||||
$('.modal .modal-header button').click();
|
||||
assert.strictEqual(form.$('.o_field_many2one input').val(), "",
|
||||
'the many2one should not set a value as its creation has been cancelled (with Close button)');
|
||||
|
||||
// select a new value then cancel the creation of the new one --> restore the previous
|
||||
form.$('.o_field_many2one input').click();
|
||||
form.$('.o_field_many2one input').autocomplete('widget').find('a').first().click();
|
||||
assert.strictEqual(form.$('input').val(), "xphone", "should have selected xphone");
|
||||
form.$('.o_field_many2one input').focus().val('new product').trigger('keyup').trigger('blur');
|
||||
assert.strictEqual($('.modal').length, 1, "there should be one opened modal");
|
||||
$('.modal .modal-footer .btn:contains(Cancel)').click();
|
||||
assert.strictEqual(form.$('.o_field_many2one input').val(), "xphone",
|
||||
'should have restored the many2one with its previous selected value (xphone)');
|
||||
|
||||
// confirm the many2one creation
|
||||
form.$('.o_field_many2one input').focus();
|
||||
form.$('.o_field_many2one input').val('new partner').trigger('keyup').trigger('focusout');
|
||||
|
||||
$('.modal .modal-footer .btn-primary').first().click();
|
||||
|
||||
assert.strictEqual($('.modal:visible:last .o_form_view').length, 1,
|
||||
form.$('.o_field_many2one input').val('new partner').trigger('keyup').trigger('blur');
|
||||
$('.modal .modal-footer .btn-primary').click();
|
||||
assert.strictEqual($('.modal .o_form_view').length, 1,
|
||||
'a new modal should be opened and contain a form view');
|
||||
|
||||
form.destroy();
|
||||
|
||||
@@ -267,7 +267,7 @@ class CrmLead(models.Model):
|
||||
'name': values['title'],
|
||||
'description': values['description'],
|
||||
'priority': '2',
|
||||
'partner_assigned_id': user.partner_id.id,
|
||||
'partner_assigned_id': user.commercial_partner_id.id,
|
||||
}
|
||||
if tag_own:
|
||||
values['tag_ids'] = [(4, tag_own.id, False)]
|
||||
|
||||
Reference in New Issue
Block a user