[REF] *: fieldDependencies to Array
As with fieldsToFetch in commit 25bf5a3fabfa9da5367e82d1c5713425c77bc373, we will convert fieldDependencies into an array of fields. We did it because it's easier to use and more natural to has an array. Part of task 3179751 closes odoo/odoo#113482 Related: odoo/enterprise#37449 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit is contained in:
@@ -82,10 +82,10 @@ export const accountFileUploader = {
|
||||
btnClass: attrs.btnClass || "",
|
||||
linkText: attrs.linkText || _lt("Upload"),
|
||||
}),
|
||||
fieldDependencies: {
|
||||
id: { type: "integer" },
|
||||
type: { type: "selection" },
|
||||
},
|
||||
fieldDependencies: [
|
||||
{ name: "id", type: "integer" },
|
||||
{ name: "type", type: "selection" },
|
||||
],
|
||||
};
|
||||
|
||||
registry.category("view_widgets").add("account_file_uploader", accountFileUploader);
|
||||
|
||||
+1
-3
@@ -591,9 +591,7 @@ AnalyticDistribution.props = {
|
||||
export const analyticDistribution = {
|
||||
component: AnalyticDistribution,
|
||||
supportedTypes: ["char", "text"],
|
||||
fieldDependencies: {
|
||||
analytic_precision: { type: "integer" },
|
||||
},
|
||||
fieldDependencies: [{ name:"analytic_precision", type: "integer" }],
|
||||
extractProps: ({ attrs }) => ({
|
||||
business_domain: attrs.options.business_domain,
|
||||
account_field: attrs.options.account_field,
|
||||
|
||||
@@ -23,8 +23,6 @@ Object.assign(ActivityException, {
|
||||
|
||||
registry.category("fields").add("activity_exception", {
|
||||
component: ActivityException,
|
||||
fieldDependencies: {
|
||||
activity_exception_icon: { type: "char" },
|
||||
},
|
||||
fieldDependencies: [{ name: "activity_exception_icon", type: "char" }],
|
||||
noLabel: true,
|
||||
});
|
||||
|
||||
+8
-8
@@ -86,14 +86,14 @@ Object.assign(KanbanFieldActivityViewContainer, {
|
||||
|
||||
export const kanbanFieldActivityViewContainer = {
|
||||
component: KanbanFieldActivityViewContainer,
|
||||
fieldDependencies: {
|
||||
activity_exception_decoration: { type: "selection" },
|
||||
activity_exception_icon: { type: "char" },
|
||||
activity_state: { type: "selection" },
|
||||
activity_summary: { type: "char" },
|
||||
activity_type_icon: { type: "char" },
|
||||
activity_type_id: { type: "many2one", relation: "mail.activity.type" },
|
||||
},
|
||||
fieldDependencies: [
|
||||
{ name: "activity_exception_decoration", type: "selection" },
|
||||
{ name: "activity_exception_icon", type: "char" },
|
||||
{ name: "activity_state", type: "selection" },
|
||||
{ name: "activity_summary", type: "char" },
|
||||
{ name: "activity_type_icon", type: "char" },
|
||||
{ name: "activity_type_id", type: "many2one", relation: "mail.activity.type" },
|
||||
],
|
||||
};
|
||||
|
||||
registry.category("fields").add("kanban_activity", kanbanFieldActivityViewContainer);
|
||||
|
||||
+8
-8
@@ -86,14 +86,14 @@ Object.assign(ListFieldActivityViewContainer, {
|
||||
|
||||
export const listFieldActivityViewContainer = {
|
||||
component: ListFieldActivityViewContainer,
|
||||
fieldDependencies: {
|
||||
activity_exception_decoration: { type: "selection" },
|
||||
activity_exception_icon: { type: "char" },
|
||||
activity_state: { type: "selection" },
|
||||
activity_summary: { type: "char" },
|
||||
activity_type_icon: { type: "char" },
|
||||
activity_type_id: { type: "many2one", relation: "mail.activity.type" },
|
||||
},
|
||||
fieldDependencies: [
|
||||
{ name: "activity_exception_decoration", type: "selection" },
|
||||
{ name: "activity_exception_icon", type: "char" },
|
||||
{ name: "activity_state", type: "selection" },
|
||||
{ name: "activity_summary", type: "char" },
|
||||
{ name: "activity_type_icon", type: "char" },
|
||||
{ name: "activity_type_id", type: "many2one", relation: "mail.activity.type" },
|
||||
],
|
||||
};
|
||||
|
||||
registry.category("fields").add("list_activity", listFieldActivityViewContainer);
|
||||
|
||||
@@ -132,9 +132,7 @@ export const imageField = {
|
||||
component: ImageField,
|
||||
displayName: _lt("Image"),
|
||||
supportedTypes: ["binary"],
|
||||
fieldDependencies: {
|
||||
write_date: { type: "datetime" },
|
||||
},
|
||||
fieldDependencies: [{ name: "write_date", type: "datetime" }],
|
||||
extractProps: ({ attrs }) => ({
|
||||
enableZoom: attrs.options.zoom,
|
||||
zoomDelay: attrs.options.zoom_delay,
|
||||
|
||||
@@ -96,7 +96,7 @@ export function mapActiveFieldsToFieldsInfo(activeFields, fields, viewType, env)
|
||||
specialData: fieldDescr.field && fieldDescr.field.legacySpecialData,
|
||||
domain,
|
||||
context: fieldDescr.context,
|
||||
fieldDependencies: {}, // ??
|
||||
fieldDependencies: [], // ??
|
||||
force_save: fieldDescr.forceSave,
|
||||
mode,
|
||||
modifiers: fieldDescr.modifiers,
|
||||
|
||||
@@ -24,8 +24,9 @@ const NUMERIC_TYPES = ["integer", "float", "monetary"];
|
||||
* @param {Object} activeFields
|
||||
* @param {Object} [dependencies={}]
|
||||
*/
|
||||
export function addFieldDependencies(activeFields, fields, dependencies = {}) {
|
||||
for (const [name, dependency] of Object.entries(dependencies)) {
|
||||
export function addFieldDependencies(activeFields, fields, dependencies = []) {
|
||||
for (const dependency of dependencies) {
|
||||
const { name } = dependency;
|
||||
if (!(name in activeFields)) {
|
||||
activeFields[name] = Object.assign({ name, rawAttrs: {} }, dependency, {
|
||||
modifiers: { invisible: true },
|
||||
|
||||
@@ -30,15 +30,15 @@ export class WeekDays extends Component {
|
||||
|
||||
export const weekDays = {
|
||||
component: WeekDays,
|
||||
fieldDependencies: {
|
||||
sun: { type: "boolean", string: _lt("Sun") },
|
||||
mon: { type: "boolean", string: _lt("Mon") },
|
||||
tue: { type: "boolean", string: _lt("Tue") },
|
||||
wed: { type: "boolean", string: _lt("Wed") },
|
||||
thu: { type: "boolean", string: _lt("Thu") },
|
||||
fri: { type: "boolean", string: _lt("Fri") },
|
||||
sat: { type: "boolean", string: _lt("Sat") },
|
||||
},
|
||||
fieldDependencies: [
|
||||
{ name: "sun", type: "boolean", string: _lt("Sun") },
|
||||
{ name: "mon", type: "boolean", string: _lt("Mon") },
|
||||
{ name: "tue", type: "boolean", string: _lt("Tue") },
|
||||
{ name: "wed", type: "boolean", string: _lt("Wed") },
|
||||
{ name: "thu", type: "boolean", string: _lt("Thu") },
|
||||
{ name: "fri", type: "boolean", string: _lt("Fri") },
|
||||
{ name: "sat", type: "boolean", string: _lt("Sat") },
|
||||
],
|
||||
};
|
||||
|
||||
registry.category("view_widgets").add("week_days", weekDays);
|
||||
|
||||
@@ -693,7 +693,7 @@ QUnit.module("Views", (hooks) => {
|
||||
class MyField extends CharField {}
|
||||
fieldRegistry.add("my_widget", {
|
||||
component: MyField,
|
||||
fieldDependencies: { int_field: { type: "integer" } },
|
||||
fieldDependencies: [{ name: "int_field", type: "integer" }],
|
||||
});
|
||||
serverData.models.partner.records[1].p = [1];
|
||||
await makeView({
|
||||
@@ -12576,9 +12576,7 @@ QUnit.module("Views", (hooks) => {
|
||||
component: class CustomField extends Component {
|
||||
static template = xml`<span t-esc="props.record.data.int_field"/>`;
|
||||
},
|
||||
fieldDependencies: {
|
||||
int_field: { type: "integer" },
|
||||
},
|
||||
fieldDependencies: [{ name: "int_field", type: "integer" }],
|
||||
};
|
||||
registry.category("fields").add("custom_field", customField);
|
||||
|
||||
@@ -12606,9 +12604,7 @@ QUnit.module("Views", (hooks) => {
|
||||
component: class CustomField extends Component {
|
||||
static template = xml`<span t-esc="props.record.data.product_id[1]"/>`;
|
||||
},
|
||||
fieldDependencies: {
|
||||
product_id: { type: "many2one", relation: "product" },
|
||||
},
|
||||
fieldDependencies: [{ name: "product_id", type: "many2one", relation: "product" }],
|
||||
};
|
||||
registry.category("fields").add("custom_field", customField);
|
||||
|
||||
|
||||
@@ -12141,9 +12141,7 @@ QUnit.module("Views", (hooks) => {
|
||||
component: class CustomField extends Component {
|
||||
static template = xml`<span t-esc="props.record.data.int_field"/>`;
|
||||
},
|
||||
fieldDependencies: {
|
||||
int_field: { type: "integer" },
|
||||
},
|
||||
fieldDependencies: [{ name: "int_field", type: "integer" }],
|
||||
};
|
||||
registry.category("fields").add("custom_field", customField);
|
||||
|
||||
@@ -12174,9 +12172,7 @@ QUnit.module("Views", (hooks) => {
|
||||
component: class CustomField extends Component {
|
||||
static template = xml`<span t-esc="props.record.data.product_id[1]"/>`;
|
||||
},
|
||||
fieldDependencies: {
|
||||
product_id: { type: "many2one", relation: "product" },
|
||||
},
|
||||
fieldDependencies: [{ name: "product_id", type: "many2one", relation: "product" }],
|
||||
};
|
||||
registry.category("fields").add("custom_field", customField);
|
||||
|
||||
|
||||
@@ -16412,9 +16412,7 @@ QUnit.module("Views", (hooks) => {
|
||||
component: class CustomField extends Component {
|
||||
static template = xml`<span t-esc="props.record.data.int_field"/>`;
|
||||
},
|
||||
fieldDependencies: {
|
||||
int_field: { type: "integer" },
|
||||
},
|
||||
fieldDependencies: [{ name: "int_field", type: "integer" }],
|
||||
};
|
||||
registry.category("fields").add("custom_field", customField);
|
||||
|
||||
@@ -16439,9 +16437,7 @@ QUnit.module("Views", (hooks) => {
|
||||
component: class CustomField extends Component {
|
||||
static template = xml`<span t-esc="props.record.data.m2o[0]"/>`;
|
||||
},
|
||||
fieldDependencies: {
|
||||
m2o: { type: "many2one", relation: "bar" },
|
||||
},
|
||||
fieldDependencies: [{ name: "m2o", type: "many2one", relation: "bar" }],
|
||||
};
|
||||
registry.category("fields").add("custom_field", customField);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user