48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
---
|
|
title: "Pendientes"
|
|
description: "El tablero de pendientes del equipo: por hacer, en curso, bloqueado y hecho."
|
|
template: tablero.html
|
|
hide:
|
|
- toc
|
|
---
|
|
|
|
<div class="tb tb-pendientes">
|
|
<header class="tb-cab">
|
|
<div class="tb-cab__t"><h1>Pendientes</h1><span class="meta" id="meta">Ingeniería, producción, mecánica, compras y campo</span></div>
|
|
<div class="tb-cab__acc"><span id="acciones-kb"></span></div>
|
|
</header>
|
|
|
|
<details class="info tb-como">
|
|
<summary>Cómo se usa</summary>
|
|
<ol>
|
|
<li>Cada tarjeta del tablero es un <b>pendiente</b> (no confundir con la tarjeta EinarBoard). Léelo antes de empezar el trabajo.</li>
|
|
<li>Arrastra el pendiente a la columna que corresponda; en el teléfono usa <b>Mover a…</b>. El tablero anota quién lo movió y cuándo.</li>
|
|
<li>Toca el título para ver el detalle: descripción, enlaces, de qué depende y su historial. Ahí mismo edita y guarda.</li>
|
|
<li><b>Nuevo pendiente</b>: título corto, pista, responsable y fecha límite. Si depende de otro, márcalo en «Bloqueado por».</li>
|
|
<li>Columna <b>Bloqueado</b>: solo si no puedes avanzar. Escribe en la descripción qué falta y quién lo destraba.</li>
|
|
<li>Al terminar, muévelo a <b>Hecho</b>. No lo borres: solo el administrador borra, y el historial sirve de bitácora.</li>
|
|
<li>Rojo = vencido. Filtra por pista, responsable o versión de tarjeta; los filtros no cambian nada en el servidor.</li>
|
|
</ol>
|
|
</details>
|
|
|
|
<div id="kb"></div>
|
|
</div>
|
|
|
|
<script>
|
|
(function () {
|
|
Kanban.montar(document.getElementById('kb'), {
|
|
filtros: true,
|
|
botonNuevoEn: document.getElementById('acciones-kb'),
|
|
onCargado: (tareas, meta) => {
|
|
const abiertas = tareas.filter(t => t.estado !== 'hecho').length;
|
|
const venc = tareas.filter(t => t.vencida).length;
|
|
const bloq = tareas.filter(t => t.estado === 'bloqueado').length;
|
|
const n = (k, uno, varios) => k + ' ' + (k === 1 ? uno : varios);
|
|
document.getElementById('meta').textContent = [n(abiertas, 'abierto', 'abiertos'), n(bloq, 'bloqueado', 'bloqueados'), n(venc, 'vencido', 'vencidos')].join(' · ')
|
|
+ ' · al día a las ' + new Date().toLocaleTimeString('es-MX', { hour: '2-digit', minute: '2-digit', hour12: false })
|
|
+ (meta.user ? ' · ' + meta.user + (meta.admin ? ' (admin)' : '') : '');
|
|
}
|
|
});
|
|
})();
|
|
</script>
|