v1.6.5: fix attendance unique constraint, schema sync, seed script
- Change attendance idx_attendance_user_date from unique to index (allow multiple shifts per day) - Reset migrations to single baseline init migration - Add seed script with admin user (admin/admin) - Update CLAUDE.md with migration workflow documentation - Various frontend fixes (queries, pages, hooks) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -22,7 +22,7 @@ export default async function scopeTemplatesRoutes(
|
||||
// Legacy ?action= dispatcher for item templates
|
||||
fastify.get(
|
||||
"/",
|
||||
{ preHandler: requirePermission("settings.manage") },
|
||||
{ preHandler: requirePermission("settings.templates") },
|
||||
async (request, reply) => {
|
||||
const query = request.query as Record<string, unknown>;
|
||||
const action = query.action ? String(query.action) : null;
|
||||
@@ -53,7 +53,7 @@ export default async function scopeTemplatesRoutes(
|
||||
// Item template CRUD via ?action=item
|
||||
fastify.post(
|
||||
"/",
|
||||
{ preHandler: requirePermission("settings.manage") },
|
||||
{ preHandler: requirePermission("settings.templates") },
|
||||
async (request, reply) => {
|
||||
const query = request.query as Record<string, unknown>;
|
||||
|
||||
@@ -121,7 +121,7 @@ export default async function scopeTemplatesRoutes(
|
||||
// Item template delete via DELETE ?action=item&id=X
|
||||
fastify.delete(
|
||||
"/",
|
||||
{ preHandler: requirePermission("settings.manage") },
|
||||
{ preHandler: requirePermission("settings.templates") },
|
||||
async (request, reply) => {
|
||||
const query = request.query as Record<string, unknown>;
|
||||
|
||||
@@ -140,7 +140,7 @@ export default async function scopeTemplatesRoutes(
|
||||
|
||||
fastify.get<{ Params: { id: string } }>(
|
||||
"/:id",
|
||||
{ preHandler: requirePermission("settings.manage") },
|
||||
{ preHandler: requirePermission("settings.templates") },
|
||||
async (request, reply) => {
|
||||
const id = parseId(request.params.id, reply);
|
||||
if (id === null) return;
|
||||
@@ -161,7 +161,7 @@ export default async function scopeTemplatesRoutes(
|
||||
|
||||
fastify.put<{ Params: { id: string } }>(
|
||||
"/:id",
|
||||
{ preHandler: requirePermission("settings.manage") },
|
||||
{ preHandler: requirePermission("settings.templates") },
|
||||
async (request, reply) => {
|
||||
const id = parseId(request.params.id, reply);
|
||||
if (id === null) return;
|
||||
@@ -210,7 +210,7 @@ export default async function scopeTemplatesRoutes(
|
||||
|
||||
fastify.delete<{ Params: { id: string } }>(
|
||||
"/:id",
|
||||
{ preHandler: requirePermission("settings.manage") },
|
||||
{ preHandler: requirePermission("settings.templates") },
|
||||
async (request, reply) => {
|
||||
const id = parseId(request.params.id, reply);
|
||||
if (id === null) return;
|
||||
|
||||
Reference in New Issue
Block a user