feat: complete CMS v2 with Docker, Fischerei, Meetings, Verband modules + UX audit fixes
Major changes: - Docker Compose: full Supabase stack (11 services) equivalent to supabase CLI - Fischerei module: 16 DB tables, waters/species/stocking/catch books/competitions - Sitzungsprotokolle module: meeting protocols, agenda items, task tracking - Verbandsverwaltung module: federation management, member clubs, contacts, fees - Per-account module activation via Modules page toggle - Site Builder: live CMS data in Puck blocks (courses, events, membership registration) - Public registration APIs: course signup, event registration, membership application - Document generation: PDF member cards, Excel reports, HTML labels - Landing page: real Com.BISS content (no filler text) - UX audit fixes: AccountNotFound component, shared status badges, confirm dialog, pagination, duplicate heading removal, emoji→badge replacement, a11y fixes - QA: healthcheck fix, API auth fix, enum mismatch fix, password required attribute
This commit is contained in:
@@ -51,6 +51,9 @@ const FeatureFlagsSchema = z.object({
|
||||
enableNewsletter: z.boolean().default(true),
|
||||
enableGdprCompliance: z.boolean().default(true),
|
||||
enableSiteBuilder: z.boolean().default(true),
|
||||
enableFischerei: z.boolean().default(false),
|
||||
enableMeetingProtocols: z.boolean().default(false),
|
||||
enableVerbandsverwaltung: z.boolean().default(false),
|
||||
});
|
||||
|
||||
const featuresFlagConfig = FeatureFlagsSchema.parse({
|
||||
@@ -137,6 +140,18 @@ const featuresFlagConfig = FeatureFlagsSchema.parse({
|
||||
process.env.NEXT_PUBLIC_ENABLE_SITE_BUILDER,
|
||||
true,
|
||||
),
|
||||
enableFischerei: getBoolean(
|
||||
process.env.NEXT_PUBLIC_ENABLE_FISCHEREI,
|
||||
false,
|
||||
),
|
||||
enableMeetingProtocols: getBoolean(
|
||||
process.env.NEXT_PUBLIC_ENABLE_MEETING_PROTOCOLS,
|
||||
false,
|
||||
),
|
||||
enableVerbandsverwaltung: getBoolean(
|
||||
process.env.NEXT_PUBLIC_ENABLE_VERBANDSVERWALTUNG,
|
||||
false,
|
||||
),
|
||||
} satisfies z.output<typeof FeatureFlagsSchema>);
|
||||
|
||||
export default featuresFlagConfig;
|
||||
|
||||
@@ -31,6 +31,9 @@ const PathsSchema = z.object({
|
||||
accountDocuments: z.string().min(1),
|
||||
accountNewsletter: z.string().min(1),
|
||||
accountSiteBuilder: z.string().min(1),
|
||||
accountFischerei: z.string().min(1),
|
||||
accountMeetings: z.string().min(1),
|
||||
accountVerband: z.string().min(1),
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -65,6 +68,9 @@ const pathsConfig = PathsSchema.parse({
|
||||
accountDocuments: `/home/[account]/documents`,
|
||||
accountNewsletter: `/home/[account]/newsletter`,
|
||||
accountSiteBuilder: `/home/[account]/site-builder`,
|
||||
accountFischerei: `/home/[account]/fischerei`,
|
||||
accountMeetings: '/home/[account]/meetings',
|
||||
accountVerband: '/home/[account]/verband',
|
||||
},
|
||||
} satisfies z.output<typeof PathsSchema>);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user