mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-25 06:56:29 +00:00
fix: cross base link - lookup sort related fix
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
}`,
|
}`,
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user