Add bilingual native_range and wildlife_value fields (DE/EN) to species
Migration 011 adds native_range_de, native_range_en, wildlife_value_de, wildlife_value_en columns. Backend INSERT/UPDATE queries updated ($64→$68). Frontend species and cultivar detail pages use pick_desc() for language selection.
This commit is contained in:
@@ -848,8 +848,8 @@ pub fn CultivarDetail(slug: String) -> Element {
|
||||
let sp_food = pick_desc(¤t_lang, &sp.food_uses_de, &sp.food_uses_en, &sp.food_uses);
|
||||
let sp_med = pick_desc(¤t_lang, &sp.medicinal_uses_de, &sp.medicinal_uses_en, &sp.medicinal_uses);
|
||||
let sp_other = pick_desc(¤t_lang, &sp.other_uses_de, &sp.other_uses_en, &sp.other_uses);
|
||||
let sp_wildlife = opt_str(&sp.wildlife_value);
|
||||
let sp_native = opt_str(&sp.native_range);
|
||||
let sp_wildlife = pick_desc(¤t_lang, &sp.wildlife_value_de, &sp.wildlife_value_en, &sp.wildlife_value);
|
||||
let sp_native = pick_desc(¤t_lang, &sp.native_range_de, &sp.native_range_en, &sp.native_range);
|
||||
rsx! {
|
||||
table { class: "attr-table",
|
||||
tbody {
|
||||
|
||||
@@ -510,8 +510,8 @@ pub fn SpeciesDetail(slug: String) -> Element {
|
||||
// Ecology
|
||||
let layer = s.plant_layer.as_deref().map(|v| t_val(l, v).to_string()).unwrap_or_else(|| em.to_string());
|
||||
let succession = s.succession_stage.as_deref().map(|v| t_val(l, v).to_string()).unwrap_or_else(|| em.to_string());
|
||||
let wildlife = os(&s.wildlife_value);
|
||||
let native = os(&s.native_range);
|
||||
let wildlife = pick_desc(¤t_lang, &s.wildlife_value_de, &s.wildlife_value_en, &s.wildlife_value);
|
||||
let native = pick_desc(¤t_lang, &s.native_range_de, &s.native_range_en, &s.native_range);
|
||||
let pollination = s.pollination_type.as_deref().map(|v| t_val(l, v).to_string()).unwrap_or_else(|| em.to_string());
|
||||
|
||||
// Growing requirements
|
||||
|
||||
@@ -52,12 +52,16 @@ pub struct Species {
|
||||
pub other_uses_de: Option<String>,
|
||||
pub other_uses_en: Option<String>,
|
||||
pub native_range: Option<String>,
|
||||
pub native_range_de: Option<String>,
|
||||
pub native_range_en: Option<String>,
|
||||
pub plant_layer: Option<String>,
|
||||
pub nitrogen_fixer: Option<bool>,
|
||||
pub dynamic_accumulator: Option<bool>,
|
||||
pub attracts_pollinators: Option<bool>,
|
||||
pub attracts_beneficial_insects: Option<bool>,
|
||||
pub wildlife_value: Option<String>,
|
||||
pub wildlife_value_de: Option<String>,
|
||||
pub wildlife_value_en: Option<String>,
|
||||
pub mulch_plant: Option<bool>,
|
||||
pub ground_cover_quality: Option<String>,
|
||||
pub allelopathic: Option<bool>,
|
||||
|
||||
Reference in New Issue
Block a user