fix: cross base link - lookup sort related fix

This commit is contained in:
Pranav C
2026-01-23 16:03:04 +00:00
parent 84f921efb9
commit 2e7c1d3283
2 changed files with 33 additions and 8 deletions

View File

@@ -39,7 +39,10 @@ export const extractCorrespondingLinkColumn = async (
return null; return null;
} }
const colOptions = await ltarColumn.getColOptions(context); const colOptions = await ltarColumn.getColOptions({
...context,
base_id: ltarColumn.base_id,
});
const { refContext } = colOptions.getRelContext(context); const { refContext } = colOptions.getRelContext(context);

View File

@@ -106,6 +106,11 @@ export default async function generateLookupSelectQuery({
const parentModel = await parentColumn.getModel(parentContext); const parentModel = await parentColumn.getModel(parentContext);
await parentModel.getColumns(parentContext); await parentModel.getColumns(parentContext);
const childBaseModel = await Model.getBaseModelSQL(childContext, {
model: childModel,
dbDriver: knex,
});
const parentBaseModel = await Model.getBaseModelSQL(parentContext, { const parentBaseModel = await Model.getBaseModelSQL(parentContext, {
model: parentModel, model: parentModel,
dbDriver: knex, dbDriver: knex,
@@ -119,7 +124,7 @@ export default async function generateLookupSelectQuery({
).where( ).where(
`${alias}.${parentColumn.column_name}`, `${alias}.${parentColumn.column_name}`,
knex.raw(`??`, [ knex.raw(`??`, [
`${rootAlias || baseModelSqlv2.getTnPath(childModel.table_name)}.${ `${rootAlias || childBaseModel.getTnPath(childModel.table_name)}.${
childColumn.column_name childColumn.column_name
}`, }`,
]), ]),
@@ -132,6 +137,12 @@ export default async function generateLookupSelectQuery({
await childModel.getColumns(childContext); await childModel.getColumns(childContext);
const parentModel = await parentColumn.getModel(parentContext); const parentModel = await parentColumn.getModel(parentContext);
await parentModel.getColumns(parentContext); await parentModel.getColumns(parentContext);
const childBaseModel = await Model.getBaseModelSQL(childContext, {
model: childModel,
dbDriver: knex,
});
const parentBaseModel = await Model.getBaseModelSQL(parentContext, { const parentBaseModel = await Model.getBaseModelSQL(parentContext, {
model: parentModel, model: parentModel,
dbDriver: knex, dbDriver: knex,
@@ -139,15 +150,15 @@ export default async function generateLookupSelectQuery({
selectQb = knex( selectQb = knex(
knex.raw(`?? as ??`, [ knex.raw(`?? as ??`, [
parentBaseModel.getTnPath(childModel.table_name), childBaseModel.getTnPath(childModel.table_name),
alias, alias,
]), ]),
).where( ).where(
`${alias}.${childColumn.column_name}`, `${alias}.${childColumn.column_name}`,
knex.raw(`??`, [ knex.raw(`??`, [
`${rootAlias || baseModelSqlv2.getTnPath(parentModel.table_name)}.${ `${
parentColumn.column_name rootAlias || parentBaseModel.getTnPath(parentModel.table_name)
}`, }.${parentColumn.column_name}`,
]), ]),
); );
} else if (relationType === RelationTypes.MANY_TO_MANY) { } else if (relationType === RelationTypes.MANY_TO_MANY) {
@@ -159,6 +170,11 @@ export default async function generateLookupSelectQuery({
const parentModel = await parentColumn.getModel(parentContext); const parentModel = await parentColumn.getModel(parentContext);
await parentModel.getColumns(parentContext); await parentModel.getColumns(parentContext);
const childBaseModel = await Model.getBaseModelSQL(childContext, {
model: childModel,
dbDriver: knex,
});
const parentBaseModel = await Model.getBaseModelSQL(parentContext, { const parentBaseModel = await Model.getBaseModelSQL(parentContext, {
model: parentModel, model: parentModel,
dbDriver: knex, dbDriver: knex,
@@ -194,7 +210,7 @@ export default async function generateLookupSelectQuery({
'=', '=',
knex.ref( knex.ref(
`${ `${
rootAlias || baseModelSqlv2.getTnPath(childModel.table_name) rootAlias || childBaseModel.getTnPath(childModel.table_name)
}.${childColumn.column_name}`, }.${childColumn.column_name}`,
), ),
); );
@@ -299,6 +315,12 @@ export default async function generateLookupSelectQuery({
await childModel.getColumns(childContext); await childModel.getColumns(childContext);
const parentModel = await parentColumn.getModel(parentContext); const parentModel = await parentColumn.getModel(parentContext);
await parentModel.getColumns(parentContext); await parentModel.getColumns(parentContext);
const childBaseModel = await Model.getBaseModelSQL(childContext, {
model: childModel,
dbDriver: knex,
});
const parentBaseModel = await Model.getBaseModelSQL(parentContext, { const parentBaseModel = await Model.getBaseModelSQL(parentContext, {
model: parentModel, model: parentModel,
dbDriver: knex, dbDriver: knex,
@@ -335,7 +357,7 @@ export default async function generateLookupSelectQuery({
knex.ref(`${mmTableAlias}.${mmChildCol.column_name}`), knex.ref(`${mmTableAlias}.${mmChildCol.column_name}`),
'=', '=',
knex.ref( knex.ref(
`${alias || baseModelSqlv2.getTnPath(childModel.table_name)}.${ `${alias || childBaseModel.getTnPath(childModel.table_name)}.${
childColumn.column_name childColumn.column_name
}`, }`,
), ),