feat(scope+vvt): Datenkategorien in Scope Block 9 verschieben, VVT Generator-Tab entfernen
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Failing after 36s
CI / test-python-backend-compliance (push) Successful in 36s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 20s
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Failing after 36s
CI / test-python-backend-compliance (push) Successful in 36s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 20s
- ScopeQuestionBlockId um 'datenkategorien_detail' erweitert - Block 9 mit 6 Abteilungs-Datenkategorie-Fragen (dk_dept_hr, dk_dept_recruiting, etc.) - ScopeWizardTab: aufklappbare Kacheln fuer Block 9, gefiltert nach Block 8 Abteilungswahl - VVT: Generator-Tab komplett entfernt (3 statt 4 Tabs) - VVT Verzeichnis: "Aus Scope-Analyse generieren" Button mit Preview + Uebernehmen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import type {
|
||||
ComplianceScopeState,
|
||||
} from './compliance-scope-types'
|
||||
import type { CompanyProfile } from './types'
|
||||
import { DEPARTMENT_DATA_CATEGORIES } from './vvt-profiling'
|
||||
|
||||
/**
|
||||
* Block 1: Organisation & Reife
|
||||
@@ -579,6 +580,97 @@ const BLOCK_8_VVT: ScopeQuestionBlock = {
|
||||
],
|
||||
}
|
||||
|
||||
/**
|
||||
* Block 9: Datenkategorien pro Abteilung
|
||||
* Generiert Fragen dynamisch aus DEPARTMENT_DATA_CATEGORIES
|
||||
*/
|
||||
const BLOCK_9_DATENKATEGORIEN: ScopeQuestionBlock = {
|
||||
id: 'datenkategorien_detail',
|
||||
title: 'Datenkategorien pro Abteilung',
|
||||
description: 'Detaillierte Erfassung der Datenkategorien je Abteilung — basierend auf Ihrer Abteilungswahl in Block 8',
|
||||
order: 9,
|
||||
questions: [
|
||||
{
|
||||
id: 'dk_dept_hr',
|
||||
type: 'multi',
|
||||
question: 'Welche Datenkategorien verarbeitet Ihre Personalabteilung?',
|
||||
helpText: 'Waehlen Sie alle zutreffenden Datenkategorien fuer den HR-Bereich',
|
||||
required: false,
|
||||
options: DEPARTMENT_DATA_CATEGORIES.dept_hr.categories.map(c => ({
|
||||
value: c.id,
|
||||
label: `${c.label}${c.isArt9 ? ' (Art. 9)' : ''}`,
|
||||
})),
|
||||
scoreWeights: { risk: 6, complexity: 4, assurance: 5 },
|
||||
mapsToVVTQuestion: 'dept_hr_categories',
|
||||
},
|
||||
{
|
||||
id: 'dk_dept_recruiting',
|
||||
type: 'multi',
|
||||
question: 'Welche Datenkategorien verarbeitet Ihr Recruiting?',
|
||||
helpText: 'Waehlen Sie alle zutreffenden Datenkategorien fuer das Bewerbermanagement',
|
||||
required: false,
|
||||
options: DEPARTMENT_DATA_CATEGORIES.dept_recruiting.categories.map(c => ({
|
||||
value: c.id,
|
||||
label: `${c.label}${c.isArt9 ? ' (Art. 9)' : ''}`,
|
||||
})),
|
||||
scoreWeights: { risk: 5, complexity: 3, assurance: 4 },
|
||||
mapsToVVTQuestion: 'dept_recruiting_categories',
|
||||
},
|
||||
{
|
||||
id: 'dk_dept_finance',
|
||||
type: 'multi',
|
||||
question: 'Welche Datenkategorien verarbeitet Ihre Finanzabteilung?',
|
||||
helpText: 'Waehlen Sie alle zutreffenden Datenkategorien fuer Finanzen & Buchhaltung',
|
||||
required: false,
|
||||
options: DEPARTMENT_DATA_CATEGORIES.dept_finance.categories.map(c => ({
|
||||
value: c.id,
|
||||
label: `${c.label}${c.isArt9 ? ' (Art. 9)' : ''}`,
|
||||
})),
|
||||
scoreWeights: { risk: 6, complexity: 4, assurance: 5 },
|
||||
mapsToVVTQuestion: 'dept_finance_categories',
|
||||
},
|
||||
{
|
||||
id: 'dk_dept_sales',
|
||||
type: 'multi',
|
||||
question: 'Welche Datenkategorien verarbeitet Ihr Vertrieb?',
|
||||
helpText: 'Waehlen Sie alle zutreffenden Datenkategorien fuer Vertrieb & CRM',
|
||||
required: false,
|
||||
options: DEPARTMENT_DATA_CATEGORIES.dept_sales.categories.map(c => ({
|
||||
value: c.id,
|
||||
label: `${c.label}${c.isArt9 ? ' (Art. 9)' : ''}`,
|
||||
})),
|
||||
scoreWeights: { risk: 5, complexity: 4, assurance: 4 },
|
||||
mapsToVVTQuestion: 'dept_sales_categories',
|
||||
},
|
||||
{
|
||||
id: 'dk_dept_marketing',
|
||||
type: 'multi',
|
||||
question: 'Welche Datenkategorien verarbeitet Ihr Marketing?',
|
||||
helpText: 'Waehlen Sie alle zutreffenden Datenkategorien fuer Marketing',
|
||||
required: false,
|
||||
options: DEPARTMENT_DATA_CATEGORIES.dept_marketing.categories.map(c => ({
|
||||
value: c.id,
|
||||
label: `${c.label}${c.isArt9 ? ' (Art. 9)' : ''}`,
|
||||
})),
|
||||
scoreWeights: { risk: 6, complexity: 5, assurance: 5 },
|
||||
mapsToVVTQuestion: 'dept_marketing_categories',
|
||||
},
|
||||
{
|
||||
id: 'dk_dept_support',
|
||||
type: 'multi',
|
||||
question: 'Welche Datenkategorien verarbeitet Ihr Kundenservice?',
|
||||
helpText: 'Waehlen Sie alle zutreffenden Datenkategorien fuer Support',
|
||||
required: false,
|
||||
options: DEPARTMENT_DATA_CATEGORIES.dept_support.categories.map(c => ({
|
||||
value: c.id,
|
||||
label: `${c.label}${c.isArt9 ? ' (Art. 9)' : ''}`,
|
||||
})),
|
||||
scoreWeights: { risk: 5, complexity: 3, assurance: 4 },
|
||||
mapsToVVTQuestion: 'dept_support_categories',
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
/**
|
||||
* All question blocks in order
|
||||
*/
|
||||
@@ -591,6 +683,7 @@ export const SCOPE_QUESTION_BLOCKS: ScopeQuestionBlock[] = [
|
||||
BLOCK_6_PRODUCT,
|
||||
BLOCK_7_AI_SYSTEMS,
|
||||
BLOCK_8_VVT,
|
||||
BLOCK_9_DATENKATEGORIEN,
|
||||
]
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user