feat(app): show each batch's story as a composite timeline
The Movement log (history + provenance DAG) was recorded but invisible. A new history sheet on every lot tile narrates the batch: movements, germination tests, storage checks and how it entered the collection (origin attached), most-recent first. Two one-tap chips record 'sown today' / 'harvested today' — the first UI door to the sown/harvested movement types. No schema change; one-shot reads only (no live subscriptions in a transient sheet).
This commit is contained in:
parent
11cbdf3022
commit
92fd84590b
10 changed files with 835 additions and 2 deletions
|
|
@ -85,6 +85,7 @@ class TranslationsEs extends Translations with BaseTranslations<AppLocale, Trans
|
|||
@override late final _Translations$notifications$es notifications = _Translations$notifications$es._(_root);
|
||||
@override late final _Translations$plantare$es plantare = _Translations$plantare$es._(_root);
|
||||
@override late final _Translations$handover$es handover = _Translations$handover$es._(_root);
|
||||
@override late final _Translations$history$es history = _Translations$history$es._(_root);
|
||||
@override late final _Translations$sale$es sale = _Translations$sale$es._(_root);
|
||||
@override late final _Translations$legal$es legal = _Translations$legal$es._(_root);
|
||||
@override late final _Translations$marketGate$es marketGate = _Translations$marketGate$es._(_root);
|
||||
|
|
@ -1021,6 +1022,32 @@ class _Translations$handover$es extends Translations$handover$en {
|
|||
@override String get promiseReceived => 'Devolveré semilla';
|
||||
}
|
||||
|
||||
// Path: history
|
||||
class _Translations$history$es extends Translations$history$en {
|
||||
_Translations$history$es._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Historia de este lote';
|
||||
@override String get tooltip => 'Historia';
|
||||
@override String get sowToday => 'Sembrado hoy';
|
||||
@override String get harvestToday => 'Cosechado hoy';
|
||||
@override String get sownRecorded => 'Siembra anotada';
|
||||
@override String get harvestRecorded => 'Cosecha anotada';
|
||||
@override String get movementReceived => 'Recibido';
|
||||
@override String get movementGiven => 'Regalado';
|
||||
@override String get movementSown => 'Sembrado';
|
||||
@override String get movementHarvested => 'Cosechado';
|
||||
@override String get movementGerminationTest => 'Prueba de germinación';
|
||||
@override String get movementSplit => 'Repartido en lotes';
|
||||
@override String get movementDiscarded => 'Descartado';
|
||||
@override String get created => 'Entró en tu colección';
|
||||
@override String from({required Object origin}) => 'De ${origin}';
|
||||
@override String germinationResult({required Object percent}) => 'Prueba de germinación — ${percent}%';
|
||||
@override String get linkedEarlier => 'Viene de un lote anterior';
|
||||
}
|
||||
|
||||
// Path: sale
|
||||
class _Translations$sale$es extends Translations$sale$en {
|
||||
_Translations$sale$es._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
|
@ -2011,6 +2038,23 @@ extension on TranslationsEs {
|
|||
'handover.paymentChip' => 'Hubo dinero por medio',
|
||||
'handover.promiseGave' => 'Me devolverán semilla',
|
||||
'handover.promiseReceived' => 'Devolveré semilla',
|
||||
'history.title' => 'Historia de este lote',
|
||||
'history.tooltip' => 'Historia',
|
||||
'history.sowToday' => 'Sembrado hoy',
|
||||
'history.harvestToday' => 'Cosechado hoy',
|
||||
'history.sownRecorded' => 'Siembra anotada',
|
||||
'history.harvestRecorded' => 'Cosecha anotada',
|
||||
'history.movementReceived' => 'Recibido',
|
||||
'history.movementGiven' => 'Regalado',
|
||||
'history.movementSown' => 'Sembrado',
|
||||
'history.movementHarvested' => 'Cosechado',
|
||||
'history.movementGerminationTest' => 'Prueba de germinación',
|
||||
'history.movementSplit' => 'Repartido en lotes',
|
||||
'history.movementDiscarded' => 'Descartado',
|
||||
'history.created' => 'Entró en tu colección',
|
||||
'history.from' => ({required Object origin}) => 'De ${origin}',
|
||||
'history.germinationResult' => ({required Object percent}) => 'Prueba de germinación — ${percent}%',
|
||||
'history.linkedEarlier' => 'Viene de un lote anterior',
|
||||
'sale.title' => 'Ventas',
|
||||
'sale.help' => 'Registra semilla vendida o comprada — dinero, Ğ1 o cualquier moneda. Un modelo aparte del regalo y del Plantare. Nunca se cobra comisión por las semillas.',
|
||||
'sale.add' => 'Registrar venta',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue