67 lines
2.1 KiB
JavaScript
67 lines
2.1 KiB
JavaScript
import { getKwArgs, models } from "@web/../tests/web_test_helpers";
|
|
import { patch } from "@web/core/utils/patch";
|
|
|
|
patch(models.ServerModel.prototype, {
|
|
/**
|
|
* @override
|
|
* @type {typeof models.ServerModel["prototype"]["get_views"]}
|
|
*/
|
|
get_views() {
|
|
const result = super.get_views(...arguments);
|
|
for (const modelName of Object.keys(result.models)) {
|
|
if (this.has_activities) {
|
|
result.models[modelName].has_activities = true;
|
|
}
|
|
}
|
|
return result;
|
|
},
|
|
});
|
|
|
|
export class Base extends models.ServerModel {
|
|
_name = "base";
|
|
|
|
/**
|
|
* @param {Object} trackedFieldNamesToField
|
|
* @param {Object} initialTrackedFieldValues
|
|
* @param {Object} record
|
|
*/
|
|
_mail_track(trackedFieldNamesToField, initialTrackedFieldValues, record) {
|
|
const kwargs = getKwArgs(
|
|
arguments,
|
|
"trackedFieldNamesToField",
|
|
"initialTrackedFieldValues",
|
|
"record"
|
|
);
|
|
trackedFieldNamesToField = kwargs.trackedFieldNamesToField;
|
|
initialTrackedFieldValues = kwargs.initialTrackedFieldValues;
|
|
record = kwargs.record;
|
|
|
|
/** @type {import("mock_models").MailTrackingValue} */
|
|
const MailTrackingValue = this.env["mail.tracking.value"];
|
|
|
|
const trackingValueIds = [];
|
|
const changedFieldNames = [];
|
|
for (const fname in trackedFieldNamesToField) {
|
|
const initialValue = initialTrackedFieldValues[fname];
|
|
const newValue = record[fname];
|
|
if (!initialValue && !newValue) {
|
|
continue;
|
|
}
|
|
if (initialValue !== newValue) {
|
|
const tracking = MailTrackingValue._create_tracking_values(
|
|
initialValue,
|
|
newValue,
|
|
fname,
|
|
trackedFieldNamesToField[fname],
|
|
this
|
|
);
|
|
if (tracking) {
|
|
trackingValueIds.push(tracking);
|
|
}
|
|
changedFieldNames.push(fname);
|
|
}
|
|
}
|
|
return { changedFieldNames, trackingValueIds };
|
|
}
|
|
}
|