polish(detail): TODO review — calendar intro, drop abundance, collapse seed-saving
From the owner's TODO.org review of the shipped features: - Crop calendar now says the months are YOUR notes: a hint line in the editor (cropCalendar.editorHint) and a caption under the 'this month' screen (calendar.selfNote) — it read as if the app knew when to sow. - Dropped the 'how much I have' (abundance) input + display: it competed with the lot quantity as a second 'how much'. Removed from the lot sheet and the lot summary; the DB column + backup/CSV/catalog plumbing stay dormant (no destructive migration). offer_status carries 'do I share'. - Seed-saving guidance moved into a collapsed expander (detail.seedSaving) — reference facts about the species shouldn't sit open among the grower's own records; opt-in depth, per progressive disclosure. - Condition checks already live behind the collapsed 'advanced' expander (seed lots only) — left as the discreet power-user surface. Tests: dropped the obsolete abundance→share nudge test; the seed-saving section test now expands before asserting. analyze clean; suites green.
This commit is contained in:
parent
00db9d4b6a
commit
6898e385e8
13 changed files with 73 additions and 124 deletions
|
|
@ -30,6 +30,7 @@
|
|||
"calendar": {
|
||||
"title": "Esti mes",
|
||||
"filterChip": "Esti mes",
|
||||
"selfNote": "Lo qu'anotasti nes tos variedaes.",
|
||||
"nothing": "Nada anotao pa {month}."
|
||||
},
|
||||
"app": {
|
||||
|
|
@ -342,6 +343,7 @@
|
|||
"flowering": "Floriamientu",
|
||||
"fruiting": "Fructificación",
|
||||
"seedHarvest": "Coyecha de simiente",
|
||||
"editorHint": "Anota tú los meses típicos d'esta variedá na to zona — son notes tuyes.",
|
||||
"unset": "—"
|
||||
},
|
||||
"needsReproduction": {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
"calendar": {
|
||||
"title": "This month",
|
||||
"filterChip": "This month",
|
||||
"selfNote": "What you've noted in your varieties.",
|
||||
"nothing": "Nothing noted for {month}."
|
||||
},
|
||||
"app": {
|
||||
|
|
@ -343,6 +344,7 @@
|
|||
"flowering": "Flowering",
|
||||
"fruiting": "Fruiting",
|
||||
"seedHarvest": "Seed harvest",
|
||||
"editorHint": "Note the months typical for this variety in your area — these are your own notes.",
|
||||
"unset": "—"
|
||||
},
|
||||
"needsReproduction": {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
"calendar": {
|
||||
"title": "Este mes",
|
||||
"filterChip": "Este mes",
|
||||
"selfNote": "Lo que has anotado en tus variedades.",
|
||||
"nothing": "Nada anotado para {month}."
|
||||
},
|
||||
"app": {
|
||||
|
|
@ -342,6 +343,7 @@
|
|||
"flowering": "Floración",
|
||||
"fruiting": "Fructificación",
|
||||
"seedHarvest": "Cosecha de semilla",
|
||||
"editorHint": "Anota tú los meses típicos de esta variedad en tu zona — son tus propias notas.",
|
||||
"unset": "—"
|
||||
},
|
||||
"needsReproduction": {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
"calendar": {
|
||||
"title": "Este mês",
|
||||
"filterChip": "Este mês",
|
||||
"selfNote": "O que anotaste nas tuas variedades.",
|
||||
"nothing": "Nada anotado para {month}."
|
||||
},
|
||||
"app": {
|
||||
|
|
@ -339,6 +340,7 @@
|
|||
"flowering": "Floração",
|
||||
"fruiting": "Frutificação",
|
||||
"seedHarvest": "Colheita de semente",
|
||||
"editorHint": "Anota tu os meses típicos desta variedade na tua zona — são as tuas notas.",
|
||||
"unset": "—"
|
||||
},
|
||||
"needsReproduction": {
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 4
|
||||
/// Strings: 2008 (502 per locale)
|
||||
/// Strings: 2016 (504 per locale)
|
||||
///
|
||||
/// Built on 2026-07-11 at 11:29 UTC
|
||||
/// Built on 2026-07-11 at 12:07 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ class _Translations$calendar$ast extends Translations$calendar$en {
|
|||
// Translations
|
||||
@override String get title => 'Esti mes';
|
||||
@override String get filterChip => 'Esti mes';
|
||||
@override String get selfNote => 'Lo qu\'anotasti nes tos variedaes.';
|
||||
@override String nothing({required Object month}) => 'Nada anotao pa ${month}.';
|
||||
}
|
||||
|
||||
|
|
@ -602,6 +603,7 @@ class _Translations$cropCalendar$ast extends Translations$cropCalendar$en {
|
|||
@override String get flowering => 'Floriamientu';
|
||||
@override String get fruiting => 'Fructificación';
|
||||
@override String get seedHarvest => 'Coyecha de simiente';
|
||||
@override String get editorHint => 'Anota tú los meses típicos d\'esta variedá na to zona — son notes tuyes.';
|
||||
@override String get unset => '—';
|
||||
}
|
||||
|
||||
|
|
@ -1320,6 +1322,7 @@ extension on TranslationsAst {
|
|||
'seedSaving.sourcePrefix' => 'Fonte',
|
||||
'calendar.title' => 'Esti mes',
|
||||
'calendar.filterChip' => 'Esti mes',
|
||||
'calendar.selfNote' => 'Lo qu\'anotasti nes tos variedaes.',
|
||||
'calendar.nothing' => ({required Object month}) => 'Nada anotao pa ${month}.',
|
||||
'app.title' => 'Tanemaki',
|
||||
'bootstrap.failed' => 'Tanemaki nun pudo aniciar',
|
||||
|
|
@ -1566,6 +1569,7 @@ extension on TranslationsAst {
|
|||
'cropCalendar.flowering' => 'Floriamientu',
|
||||
'cropCalendar.fruiting' => 'Fructificación',
|
||||
'cropCalendar.seedHarvest' => 'Coyecha de simiente',
|
||||
'cropCalendar.editorHint' => 'Anota tú los meses típicos d\'esta variedá na to zona — son notes tuyes.',
|
||||
'cropCalendar.unset' => '—',
|
||||
'needsReproduction.label' => 'Reproducir esta temporada',
|
||||
'needsReproduction.hint' => 'Cultívala enantes de que s\'acabe la simiente',
|
||||
|
|
|
|||
|
|
@ -187,6 +187,9 @@ class Translations$calendar$en {
|
|||
/// en: 'This month'
|
||||
String get filterChip => 'This month';
|
||||
|
||||
/// en: 'What you've noted in your varieties.'
|
||||
String get selfNote => 'What you\'ve noted in your varieties.';
|
||||
|
||||
/// en: 'Nothing noted for {month}.'
|
||||
String nothing({required Object month}) => 'Nothing noted for ${month}.';
|
||||
}
|
||||
|
|
@ -1113,6 +1116,9 @@ class Translations$cropCalendar$en {
|
|||
/// en: 'Seed harvest'
|
||||
String get seedHarvest => 'Seed harvest';
|
||||
|
||||
/// en: 'Note the months typical for this variety in your area — these are your own notes.'
|
||||
String get editorHint => 'Note the months typical for this variety in your area — these are your own notes.';
|
||||
|
||||
/// en: '—'
|
||||
String get unset => '—';
|
||||
}
|
||||
|
|
@ -2311,6 +2317,7 @@ extension on Translations {
|
|||
'seedSaving.sourcePrefix' => 'Source',
|
||||
'calendar.title' => 'This month',
|
||||
'calendar.filterChip' => 'This month',
|
||||
'calendar.selfNote' => 'What you\'ve noted in your varieties.',
|
||||
'calendar.nothing' => ({required Object month}) => 'Nothing noted for ${month}.',
|
||||
'app.title' => 'Tanemaki',
|
||||
'bootstrap.failed' => 'Tanemaki couldn\'t start',
|
||||
|
|
@ -2558,6 +2565,7 @@ extension on Translations {
|
|||
'cropCalendar.flowering' => 'Flowering',
|
||||
'cropCalendar.fruiting' => 'Fruiting',
|
||||
'cropCalendar.seedHarvest' => 'Seed harvest',
|
||||
'cropCalendar.editorHint' => 'Note the months typical for this variety in your area — these are your own notes.',
|
||||
'cropCalendar.unset' => '—',
|
||||
'needsReproduction.label' => 'To regrow this season',
|
||||
'needsReproduction.hint' => 'Grow it out before the seed runs out',
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ class _Translations$calendar$es extends Translations$calendar$en {
|
|||
// Translations
|
||||
@override String get title => 'Este mes';
|
||||
@override String get filterChip => 'Este mes';
|
||||
@override String get selfNote => 'Lo que has anotado en tus variedades.';
|
||||
@override String nothing({required Object month}) => 'Nada anotado para ${month}.';
|
||||
}
|
||||
|
||||
|
|
@ -602,6 +603,7 @@ class _Translations$cropCalendar$es extends Translations$cropCalendar$en {
|
|||
@override String get flowering => 'Floración';
|
||||
@override String get fruiting => 'Fructificación';
|
||||
@override String get seedHarvest => 'Cosecha de semilla';
|
||||
@override String get editorHint => 'Anota tú los meses típicos de esta variedad en tu zona — son tus propias notas.';
|
||||
@override String get unset => '—';
|
||||
}
|
||||
|
||||
|
|
@ -1322,6 +1324,7 @@ extension on TranslationsEs {
|
|||
'seedSaving.sourcePrefix' => 'Fuente',
|
||||
'calendar.title' => 'Este mes',
|
||||
'calendar.filterChip' => 'Este mes',
|
||||
'calendar.selfNote' => 'Lo que has anotado en tus variedades.',
|
||||
'calendar.nothing' => ({required Object month}) => 'Nada anotado para ${month}.',
|
||||
'app.title' => 'Tanemaki',
|
||||
'bootstrap.failed' => 'Tanemaki no pudo arrancar',
|
||||
|
|
@ -1568,6 +1571,7 @@ extension on TranslationsEs {
|
|||
'cropCalendar.flowering' => 'Floración',
|
||||
'cropCalendar.fruiting' => 'Fructificación',
|
||||
'cropCalendar.seedHarvest' => 'Cosecha de semilla',
|
||||
'cropCalendar.editorHint' => 'Anota tú los meses típicos de esta variedad en tu zona — son tus propias notas.',
|
||||
'cropCalendar.unset' => '—',
|
||||
'needsReproduction.label' => 'Reproducir esta temporada',
|
||||
'needsReproduction.hint' => 'Cultívala antes de que se acabe la semilla',
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ class _Translations$calendar$pt extends Translations$calendar$en {
|
|||
// Translations
|
||||
@override String get title => 'Este mês';
|
||||
@override String get filterChip => 'Este mês';
|
||||
@override String get selfNote => 'O que anotaste nas tuas variedades.';
|
||||
@override String nothing({required Object month}) => 'Nada anotado para ${month}.';
|
||||
}
|
||||
|
||||
|
|
@ -599,6 +600,7 @@ class _Translations$cropCalendar$pt extends Translations$cropCalendar$en {
|
|||
@override String get flowering => 'Floração';
|
||||
@override String get fruiting => 'Frutificação';
|
||||
@override String get seedHarvest => 'Colheita de semente';
|
||||
@override String get editorHint => 'Anota tu os meses típicos desta variedade na tua zona — são as tuas notas.';
|
||||
@override String get unset => '—';
|
||||
}
|
||||
|
||||
|
|
@ -1319,6 +1321,7 @@ extension on TranslationsPt {
|
|||
'seedSaving.sourcePrefix' => 'Fonte',
|
||||
'calendar.title' => 'Este mês',
|
||||
'calendar.filterChip' => 'Este mês',
|
||||
'calendar.selfNote' => 'O que anotaste nas tuas variedades.',
|
||||
'calendar.nothing' => ({required Object month}) => 'Nada anotado para ${month}.',
|
||||
'app.title' => 'Tanemaki',
|
||||
'bootstrap.failed' => 'O Tanemaki não conseguiu iniciar',
|
||||
|
|
@ -1562,6 +1565,7 @@ extension on TranslationsPt {
|
|||
'cropCalendar.flowering' => 'Floração',
|
||||
'cropCalendar.fruiting' => 'Frutificação',
|
||||
'cropCalendar.seedHarvest' => 'Colheita de semente',
|
||||
'cropCalendar.editorHint' => 'Anota tu os meses típicos desta variedade na tua zona — são as tuas notas.',
|
||||
'cropCalendar.unset' => '—',
|
||||
'needsReproduction.label' => 'Reproduzir nesta época',
|
||||
'needsReproduction.hint' => 'Cultiva-a antes que a semente acabe',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue