Fix capability filter on leads page

The dropdown sends capability_name values but the query was filtering on
the capability_id column. Add capability_name filter support to getLeads
and use it from the page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 12:52:19 -04:00
parent 3cc4902ce2
commit b60fd4058f
2 changed files with 3 additions and 1 deletions

View File

@@ -49,7 +49,7 @@ export default function LeadsPage() {
const filters: Record<string, unknown> = {}; const filters: Record<string, unknown> = {};
if (statusFilter) filters.status = statusFilter; if (statusFilter) filters.status = statusFilter;
if (urgencyFilter) filters.urgency_level = urgencyFilter; if (urgencyFilter) filters.urgency_level = urgencyFilter;
if (capabilityFilter) filters.capability_id = capabilityFilter; if (capabilityFilter) filters.capability_name = capabilityFilter;
filters.sort = sortBy === 'date' ? 'created_at' : sortBy === 'account' ? 'account' : undefined; filters.sort = sortBy === 'date' ? 'created_at' : sortBy === 'account' ? 'account' : undefined;
const res = await api('leads.list', filters); const res = await api('leads.list', filters);
setLeads(res.data || []); setLeads(res.data || []);

View File

@@ -1151,6 +1151,7 @@ export function getLeads(filters: {
urgency_level?: string; urgency_level?: string;
priority?: string; priority?: string;
capability_id?: string; capability_id?: string;
capability_name?: string;
limit?: number; limit?: number;
offset?: number; offset?: number;
sort?: string; sort?: string;
@@ -1164,6 +1165,7 @@ export function getLeads(filters: {
if (filters.urgency_level) { where.push('urgency_level = @urgency_level'); params.urgency_level = filters.urgency_level; } if (filters.urgency_level) { where.push('urgency_level = @urgency_level'); params.urgency_level = filters.urgency_level; }
if (filters.priority) { where.push('priority = @priority'); params.priority = filters.priority; } if (filters.priority) { where.push('priority = @priority'); params.priority = filters.priority; }
if (filters.capability_id) { where.push('capability_id = @capability_id'); params.capability_id = filters.capability_id; } if (filters.capability_id) { where.push('capability_id = @capability_id'); params.capability_id = filters.capability_id; }
if (filters.capability_name) { where.push('capability_name = @capability_name'); params.capability_name = filters.capability_name; }
const whereClause = where.length > 0 ? 'WHERE ' + where.join(' AND ') : ''; const whereClause = where.length > 0 ? 'WHERE ' + where.join(' AND ') : '';
const sortCol = filters.sort === 'created_at' ? 'created_at DESC' : filters.sort === 'account' ? 'Account_Name ASC' : 'composite_score DESC'; const sortCol = filters.sort === 'created_at' ? 'created_at DESC' : filters.sort === 'account' ? 'Account_Name ASC' : 'composite_score DESC';