[MERGE] forward port branch saas-16 up to 255478acbd
This commit is contained in:
@@ -46,7 +46,7 @@ var M2ODialog = Dialog.extend({
|
|||||||
click: function () {
|
click: function () {
|
||||||
if (this.$("input").val() !== ''){
|
if (this.$("input").val() !== ''){
|
||||||
this.trigger_up('quick_create', { value: this.$('input').val() });
|
this.trigger_up('quick_create', { value: this.$('input').val() });
|
||||||
this.close();
|
this.close(true);
|
||||||
} else {
|
} else {
|
||||||
this.$("input").focus();
|
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.$("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);
|
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({
|
var FieldMany2One = AbstractField.extend({
|
||||||
supportedFieldTypes: ['many2one'],
|
supportedFieldTypes: ['many2one'],
|
||||||
template: 'FieldMany2One',
|
template: 'FieldMany2One',
|
||||||
custom_events: _.extend({}, AbstractField.prototype.custom_events, {
|
custom_events: _.extend({}, AbstractField.prototype.custom_events, {
|
||||||
|
'closed_unset': '_onDialogClosedUnset',
|
||||||
'quick_create': '_onQuickCreate',
|
'quick_create': '_onQuickCreate',
|
||||||
'search_create_popup': '_onSearchCreatePopup',
|
'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
|
* @private
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1397,7 +1397,7 @@ QUnit.module('relational_fields', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test('slow create on a many2one', function (assert) {
|
QUnit.test('slow create on a many2one', function (assert) {
|
||||||
assert.expect(1);
|
assert.expect(7);
|
||||||
|
|
||||||
var form = createView({
|
var form = createView({
|
||||||
View: FormView,
|
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').focus();
|
||||||
form.$('.o_field_many2one input').val('new partner').trigger('keyup').trigger('focusout');
|
form.$('.o_field_many2one input').val('new partner').trigger('keyup').trigger('blur');
|
||||||
|
$('.modal .modal-footer .btn-primary').click();
|
||||||
$('.modal .modal-footer .btn-primary').first().click();
|
assert.strictEqual($('.modal .o_form_view').length, 1,
|
||||||
|
|
||||||
assert.strictEqual($('.modal:visible:last .o_form_view').length, 1,
|
|
||||||
'a new modal should be opened and contain a form view');
|
'a new modal should be opened and contain a form view');
|
||||||
|
|
||||||
form.destroy();
|
form.destroy();
|
||||||
|
|||||||
@@ -267,7 +267,7 @@ class CrmLead(models.Model):
|
|||||||
'name': values['title'],
|
'name': values['title'],
|
||||||
'description': values['description'],
|
'description': values['description'],
|
||||||
'priority': '2',
|
'priority': '2',
|
||||||
'partner_assigned_id': user.partner_id.id,
|
'partner_assigned_id': user.commercial_partner_id.id,
|
||||||
}
|
}
|
||||||
if tag_own:
|
if tag_own:
|
||||||
values['tag_ids'] = [(4, tag_own.id, False)]
|
values['tag_ids'] = [(4, tag_own.id, False)]
|
||||||
|
|||||||
Reference in New Issue
Block a user