feat: tickets backlog + TPV toggle sidebar
This commit is contained in:
@@ -7723,6 +7723,38 @@
|
||||
"close": true
|
||||
},
|
||||
"completed_at": "2026-08-24T06:42:41Z"
|
||||
},
|
||||
{
|
||||
"id": "F-204",
|
||||
"type": "fix",
|
||||
"title": "Storefront: Live search no funciona",
|
||||
"description": "Live search no funciona -> net::ERR_ADDRESS_UNREACHABLE. El endpoint suggest no existe o no está ruteado.",
|
||||
"priority": "med",
|
||||
"risk": "low",
|
||||
"status": "pending",
|
||||
"created_at": "2026-08-24",
|
||||
"gates": {
|
||||
"reviewer": false,
|
||||
"security": false,
|
||||
"qa": false
|
||||
},
|
||||
"phase": "storefront"
|
||||
},
|
||||
{
|
||||
"id": "F-205",
|
||||
"type": "feature",
|
||||
"title": "POS: Toggle columna izquierda",
|
||||
"description": "Permitir ocultar/mostrar columna izquierda (pendientes/día) en el TPV.",
|
||||
"priority": "high",
|
||||
"risk": "low",
|
||||
"status": "pending",
|
||||
"created_at": "2026-08-24",
|
||||
"gates": {
|
||||
"reviewer": false,
|
||||
"security": false,
|
||||
"qa": false
|
||||
},
|
||||
"phase": "pos"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
7750
backlog/features.json.bak
Normal file
7750
backlog/features.json.bak
Normal file
File diff suppressed because it is too large
Load Diff
7768
backlog/features.json.working
Normal file
7768
backlog/features.json.working
Normal file
File diff suppressed because it is too large
Load Diff
@@ -114,6 +114,7 @@ export default function RegisterPage() {
|
||||
const [todaySales, setTodaySales] = useState<PosPendingSale[]>([]);
|
||||
const [loadingPending, setLoadingPending] = useState(false);
|
||||
const [salesTab, setSalesTab] = useState<'pending' | 'day'>('day');
|
||||
const [showSidebar, setShowSidebar] = useState(true);
|
||||
const [printingSaleId, setPrintingSaleId] = useState<string | null>(null);
|
||||
const [restPaymentFor, setRestPaymentFor] = useState<PosPendingSale | null>(null);
|
||||
const [processingRest, setProcessingRest] = useState(false);
|
||||
@@ -902,6 +903,7 @@ export default function RegisterPage() {
|
||||
|
||||
return (
|
||||
<div className="flex h-screen" style={{ '--color-primary': '#2D6A4F' } as React.CSSProperties}>
|
||||
{showSidebar && (
|
||||
<aside
|
||||
className="hidden w-[380px] shrink-0 flex-col border-r bg-gray-50 p-3 lg:flex"
|
||||
aria-label="Pedidos"
|
||||
@@ -1163,6 +1165,7 @@ export default function RegisterPage() {
|
||||
</>
|
||||
)}
|
||||
</aside>
|
||||
)}
|
||||
{/* POS-FIX-4: product added toast */}
|
||||
{addedToast && (
|
||||
<div className="pointer-events-none fixed top-6 right-6 z-50 animate-in slide-in-from-top-2 fade-in duration-200">
|
||||
@@ -1182,6 +1185,14 @@ export default function RegisterPage() {
|
||||
<span className="rounded-full bg-green-100 px-2 py-0.5 text-xs text-green-700">
|
||||
Caja abierta
|
||||
</span>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setShowSidebar((v) => !v)}
|
||||
title={showSidebar ? 'Ocultar panel' : 'Mostrar panel'}
|
||||
className="ml-2 rounded-lg border border-gray-300 bg-white px-2 py-1 text-xs font-medium text-gray-600 hover:bg-gray-50"
|
||||
>
|
||||
{showSidebar ? '◀' : '▶'} Panel
|
||||
</button>
|
||||
{!config?.terminal?.settings?.selfpayMode && (
|
||||
<button
|
||||
type="button"
|
||||
|
||||
@@ -97,10 +97,11 @@ def main():
|
||||
p.add_argument('--description', default='Need change')
|
||||
p.add_argument('--priority', choices=LEVEL_CHOICES, default='med')
|
||||
p.add_argument('--risk', choices=LEVEL_CHOICES, default='low')
|
||||
p.add_argument('--phase', default=None)
|
||||
ns, _ = p.parse_known_args(cli_args)
|
||||
fid = ns.id or next_id(features)
|
||||
features = data['features']
|
||||
features.append({
|
||||
fid = ns.id or next_id(features)
|
||||
new_feature = {
|
||||
'id': fid,
|
||||
'type': ns.type,
|
||||
'title': ns.title,
|
||||
@@ -110,7 +111,10 @@ def main():
|
||||
'status': 'pending',
|
||||
'created_at': str(date.today()),
|
||||
'gates': {'reviewer': False, 'security': False, 'qa': False},
|
||||
})
|
||||
}
|
||||
if ns.phase:
|
||||
new_feature['phase'] = ns.phase
|
||||
features.append(new_feature)
|
||||
data['features'] = features
|
||||
BACKLOG.write_text(json.dumps(data, indent=2, ensure_ascii=False) + '\n', encoding='utf-8')
|
||||
print(f'Created {fid}: {ns.title}')
|
||||
|
||||
Reference in New Issue
Block a user