Skip to content

Lifecycle configuration mask lacks descriptive helper texts (esp. Dormancy & Vernalization toggles) #633

Description

@nolte

Summary

The "Lebenszyklus-Konfiguration" tab on the species detail page (/stammdaten/species/:id#lifecycle) is not self-explanatory. Several fields — most notably the "Dormanz & Vernalisation" toggles — have no descriptive helper text, and domain terms (Dormanz, Vernalisation, Photoperiode) are not explained. A user without botanical background cannot tell what "Winterruhe erforderlich" / "Vernalisation erforderlich" actually control.

This follows the project convention that UI fields should carry descriptive texts and explanations of technical terms.

Affected screen

Component: src/frontend/src/pages/pflanzen/LifecycleConfigSection.tsx (rendered as the lifecycle tab via SpeciesDetailPage.tsx:319-320). Three panels: Lebenszyklus, Photoperiode, Dormanz & Vernalisation.

Gaps (what has helper text vs. what doesn't)

Fields missing a descriptive helper text:

Field Location Status
Zyklustyp (cycle_type) LifecycleConfigSection.tsx:164-172 missing — the only select without a helper
Toggle "Winterruhe erforderlich" (dormancy_required) LifecycleConfigSection.tsx:261-271 missing — raw inline FormControlLabel+Switch, label only
Toggle "Vernalisation erforderlich" (vernalization_required) LifecycleConfigSection.tsx:272-282 missing — raw inline FormControlLabel+Switch, label only

Fields that already have a helper (for reference / consistency): Lebensdauer (lifespanYearsHelper), Anbau-Zyklustyp (cultivationCycleTypeHelper), Blühstrategie (floweringStrategyHelper), Photoperioden-Typ (photoperiodTypeHelper), Kritische Tageslänge (criticalDayLengthHelper), Vernalisation (Tage) (vernalizationDaysHelper). i18n namespace: pages.lifecycle.*, helper keys use the ...Helper suffix — de/translation.json & en/translation.json block ~L2517-2535.

The core problem: the whole "Dormanz & Vernalisation" section has both toggles unexplained, so the section as a whole reads as jargon.

Proposed changes

1. Add helper texts (consistency with the rest of the form)

  • Convert the two inline Controller+Switch toggles to the existing src/frontend/src/components/form/FormSwitchField.tsx wrapper (it already renders helperText under the switch, L38-42).
  • Add new i18n keys pages.lifecycle.dormancyHelper and pages.lifecycle.vernalizationHelper (DE + EN) explaining, in plain language, what each toggle means and when to enable it (e.g. dormancy = the plant needs a winter rest period; vernalization = it needs a cold spell to trigger flowering).
  • Add the missing pages.lifecycle.cycleTypeHelper for the Zyklustyp select.

2. Explain the technical terms (glossary tooltips)

  • Attach HelpTooltip info-icons (src/frontend/src/components/common/HelpTooltip.tsx) to the "Dormanz & Vernalisation" section header and/or the toggle labels, giving beginner-friendly definitions of Dormanz, Vernalisation and (optionally) Photoperiode.
  • This requires new glossary entries glossary.dormancy.*, glossary.vernalization.* (and optionally glossary.photoperiod.*) in DE + EN — the glossary namespace currently has no such terms. Usage examples of HelpTooltip: WaterTestDialog.tsx:112-145 (iconOnly), EquipmentDialog.tsx:199-203.

Option 1 is the minimum to make the mask self-explanatory; option 2 additionally teaches the domain terms and matches the HelpTooltip pattern used elsewhere. Ideally both.

Acceptance criteria

  1. The "Winterruhe erforderlich" and "Vernalisation erforderlich" toggles each show a plain-language helper text (DE + EN).
  2. The "Zyklustyp" select has a helper text (DE + EN).
  3. Domain terms in the Dormanz & Vernalisation section are explained (helper text and/or HelpTooltip glossary entry) so a non-expert understands what the toggles do.
  4. No hardcoded strings — all new texts go through pages.lifecycle.* / glossary.* i18n keys, mirrored in de + en.

Notes

Relates to REQ-003 (lifecycle / phase configuration) and the project's descriptive-UI-text convention. Mobile-first: helper texts must not break the layout on small screens.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions