fix: convert skill target_level to INTEGER instead of string
- build_skill_assignments() now returns INTEGER (1-5) for target_level
- Previously returned string names ('einsteiger', 'grundlagen', etc.)
- Caused 91/95 import failures with 'invalid input syntax for type integer'
- Remaining 4 failures are wiki pages missing both goal AND execution (invalid data)
Issue: Wiki import - dict-cursor fixes phase 2
This commit is contained in:
parent
97a7fe7cba
commit
e6ce7e241c
|
|
@ -273,7 +273,9 @@ def build_skill_assignments(mapped: dict) -> list[dict]:
|
|||
Erstellt Skill-Zuordnungen aus PrimaryCapability + CapabilityLevel.
|
||||
|
||||
CapabilityLevel [3, 2] korrespondiert mit PrimaryCapability [Schnellkraft, Schnelligkeitsausdauer]
|
||||
→ ergibt: [{skill: Schnellkraft, target_level: aufbau}, {skill: Schnelligkeitsausdauer, target_level: grundlagen}]
|
||||
→ ergibt: [{skill: Schnellkraft, target_level: 3}, {skill: Schnelligkeitsausdauer, target_level: 2}]
|
||||
|
||||
WICHTIG: target_level ist INTEGER (1-5), nicht String!
|
||||
"""
|
||||
skills = mapped.get("skill_names", [])
|
||||
levels = mapped.get("skill_levels_raw", [])
|
||||
|
|
@ -281,9 +283,15 @@ def build_skill_assignments(mapped: dict) -> list[dict]:
|
|||
assignments = []
|
||||
for idx, skill_name in enumerate(skills):
|
||||
level_str = levels[idx] if idx < len(levels) else "1"
|
||||
# Konvertiere zu INTEGER statt String-Namen
|
||||
try:
|
||||
target_level = int(level_str.strip())
|
||||
except (ValueError, AttributeError):
|
||||
target_level = 1 # Fallback
|
||||
|
||||
assignments.append({
|
||||
"skill_name": skill_name,
|
||||
"target_level": map_capability_level(level_str),
|
||||
"target_level": target_level, # INTEGER 1-5
|
||||
"required_level": None, # Nicht im Wiki spezifiziert
|
||||
"intensity": None, # Nicht im Wiki spezifiziert
|
||||
"is_primary": idx == 0,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user