|
|
|
@ -239,7 +239,7 @@ export class CommandService {
|
|
|
|
const rendered = items.map((t) => {
|
|
|
|
const rendered = items.map((t) => {
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
return `- ${codeId(t.id)} _${t.description || '(sin descripción)'}_${datePart} — ${ICONS.unassigned} sin responsable`;
|
|
|
|
return `- ${t.id}) _${t.description || '(sin descripción)'}_${datePart} — ${ICONS.unassigned} sin responsable`;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const total = TaskService.countGroupUnassigned(context.groupId);
|
|
|
|
const total = TaskService.countGroupUnassigned(context.groupId);
|
|
|
|
@ -288,7 +288,7 @@ export class CommandService {
|
|
|
|
: `${t.assignees!.length > 1 ? '👥' : '👤'} ${names.join(', ')}`;
|
|
|
|
: `${t.assignees!.length > 1 ? '👥' : '👤'} ${names.join(', ')}`;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
return `- ${codeId(t.id)} _${t.description || '(sin descripción)'}_${datePart} — ${owner}`;
|
|
|
|
return `- ${t.id}) _${t.description || '(sin descripción)'}_${datePart} — ${owner}`;
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
sections.push(...rendered);
|
|
|
|
sections.push(...rendered);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -313,7 +313,7 @@ export class CommandService {
|
|
|
|
const renderedUnassigned = unassigned.map((t) => {
|
|
|
|
const renderedUnassigned = unassigned.map((t) => {
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
return `- ${codeId(t.id)} _${t.description || '(sin descripción)'}_${datePart} — ${ICONS.unassigned} sin responsable`;
|
|
|
|
return `- ${t.id}) _${t.description || '(sin descripción)'}_${datePart} — ${ICONS.unassigned} sin responsable`;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
sections.push(...renderedUnassigned);
|
|
|
|
sections.push(...renderedUnassigned);
|
|
|
|
|
|
|
|
|
|
|
|
@ -341,7 +341,7 @@ export class CommandService {
|
|
|
|
const renderedUnassigned = unassigned.map((t) => {
|
|
|
|
const renderedUnassigned = unassigned.map((t) => {
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
return `- ${codeId(t.id)} _${t.description || '(sin descripción)'}_${datePart} — ${ICONS.unassigned} sin responsable`;
|
|
|
|
return `- ${t.id}) _${t.description || '(sin descripción)'}_${datePart} — ${ICONS.unassigned} sin responsable`;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
sections.push(...renderedUnassigned);
|
|
|
|
sections.push(...renderedUnassigned);
|
|
|
|
|
|
|
|
|
|
|
|
@ -407,7 +407,7 @@ export class CommandService {
|
|
|
|
: `${t.assignees!.length > 1 ? '👥' : '👤'} ${names.join(', ')}`;
|
|
|
|
: `${t.assignees!.length > 1 ? '👥' : '👤'} ${names.join(', ')}`;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
return `- ${codeId(t.id)} _${t.description || '(sin descripción)'}_${datePart} — ${owner}`;
|
|
|
|
return `- ${t.id}) _${t.description || '(sin descripción)'}_${datePart} — ${owner}`;
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
|
|
const total = TaskService.countGroupPending(context.groupId);
|
|
|
|
const total = TaskService.countGroupPending(context.groupId);
|
|
|
|
@ -458,7 +458,7 @@ export class CommandService {
|
|
|
|
: `${t.assignees!.length > 1 ? '👥' : '👤'} ${names.join(', ')}`;
|
|
|
|
: `${t.assignees!.length > 1 ? '👥' : '👤'} ${names.join(', ')}`;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const isOverdue = t.due_date ? t.due_date < todayYMD : false;
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
const datePart = t.due_date ? ` — ${isOverdue ? `${ICONS.warn} ` : ''}${ICONS.date} ${formatDDMM(t.due_date)}` : '';
|
|
|
|
return `- ${codeId(t.id)} _${t.description || '(sin descripción)'}_${datePart} — ${owner}`;
|
|
|
|
return `- ${t.id}) _${t.description || '(sin descripción)'}_${datePart} — ${owner}`;
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
sections.push(...rendered);
|
|
|
|
sections.push(...rendered);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -518,7 +518,7 @@ export class CommandService {
|
|
|
|
const due = res.task?.due_date ? ` — ${ICONS.date} ${formatDDMM(res.task?.due_date)}` : '';
|
|
|
|
const due = res.task?.due_date ? ` — ${ICONS.date} ${formatDDMM(res.task?.due_date)}` : '';
|
|
|
|
return [{
|
|
|
|
return [{
|
|
|
|
recipient: context.sender,
|
|
|
|
recipient: context.sender,
|
|
|
|
message: `${ICONS.complete} ${codeId(id)} completada — _${res.task?.description || '(sin descripción)'}_${due}`
|
|
|
|
message: `${ICONS.complete} ${id} completada — _${res.task?.description || '(sin descripción)'}_${due}`
|
|
|
|
}];
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -789,7 +789,7 @@ export class CommandService {
|
|
|
|
? `${ICONS.unassigned} sin responsable${groupName ? ` (${groupName})` : ''}`
|
|
|
|
? `${ICONS.unassigned} sin responsable${groupName ? ` (${groupName})` : ''}`
|
|
|
|
: `${assignmentUserIds.length > 1 ? '👥' : '👤'} ${assignedDisplayNames.join(', ')}`;
|
|
|
|
: `${assignmentUserIds.length > 1 ? '👥' : '👤'} ${assignedDisplayNames.join(', ')}`;
|
|
|
|
const ackParts = [
|
|
|
|
const ackParts = [
|
|
|
|
`${ICONS.create} ${codeId(taskId)} _${description || '(sin descripción)'}_`,
|
|
|
|
`${ICONS.create} ${taskId} _${description || '(sin descripción)'}_`,
|
|
|
|
dueFmt ? `${ICONS.date} ${dueFmt}` : null,
|
|
|
|
dueFmt ? `${ICONS.date} ${dueFmt}` : null,
|
|
|
|
ownerPart
|
|
|
|
ownerPart
|
|
|
|
].filter(Boolean);
|
|
|
|
].filter(Boolean);
|
|
|
|
|