diff --git a/src/model/data_form.rs b/src/model/data_form.rs index 0737672..ac6d74b 100644 --- a/src/model/data_form.rs +++ b/src/model/data_form.rs @@ -160,6 +160,9 @@ pub struct DataForm { guid: String, #[serde(rename = "Revision")] revision: u16, + #[serde(rename = "maxAnzahl")] + #[serde(skip_serializing_if = "Option::is_none")] + max_anzahl: Option, #[serde(rename = "VerknuepftGUID")] #[serde(skip_serializing_if = "Option::is_none")] verknuepft_guid: Option, @@ -302,6 +305,7 @@ impl Requires for DataForm { .last() .unwrap_or_default() } + fn requires_subform(&self, name: &str) -> bool { self.entries .entry @@ -317,6 +321,7 @@ impl Requires for DataForm { .last() .unwrap_or_default() } + fn get_required_entries<'a>(&'a self, all: &'a OnkostarEditor) -> Vec { let mut result = self .data_catalogues @@ -698,6 +703,7 @@ impl Sortable for Entry { #[serde(deny_unknown_fields)] pub struct DataFormEntries { #[serde(rename = "EntryName")] + #[serde(skip_serializing_if = "Option::is_none")] entry_name: Option>, } diff --git a/src/model/unterformular.rs b/src/model/unterformular.rs index c6cb114..bdb1dd7 100644 --- a/src/model/unterformular.rs +++ b/src/model/unterformular.rs @@ -62,7 +62,8 @@ pub struct Unterformular { #[serde(rename = "TudokPosition")] tudok_position: String, #[serde(rename = "Aktenbereich")] - aktenbereich: String, + #[serde(skip_serializing_if = "Option::is_none")] + aktenbereich: Option, #[serde(rename = "BefragungRelevant")] #[serde(skip_serializing_if = "Option::is_none")] befragung_relevant: Option, @@ -74,7 +75,8 @@ pub struct Unterformular { #[serde(rename = "BigSummary")] big_summary: String, #[serde(rename = "KalenderSchnipsel")] - kalender_schnipsel: String, + #[serde(skip_serializing_if = "Option::is_none")] + kalender_schnipsel: Option, #[serde(rename = "EmailTemplate")] #[serde(skip_serializing_if = "Option::is_none")] mail_template: Option, @@ -94,7 +96,8 @@ pub struct Unterformular { #[serde(skip_serializing_if = "Option::is_none")] erkrankung_big_summary: Option, #[serde(rename = "Kontext")] - kontext: String, + #[serde(skip_serializing_if = "Option::is_none")] + kontext: Option, #[serde(rename = "Datenart")] #[serde(skip_serializing_if = "Option::is_none")] datenart: Option, @@ -102,22 +105,32 @@ pub struct Unterformular { #[serde(skip_serializing_if = "Option::is_none")] show_history_button: Option, #[serde(rename = "TudokReadonly")] - tudok_readonly: bool, + #[serde(skip_serializing_if = "Option::is_none")] + tudok_readonly: Option, #[serde(rename = "VitalstatusRelevant")] - vitalstatus_relevant: bool, + #[serde(skip_serializing_if = "Option::is_none")] + vitalstatus_relevant: Option, #[serde(rename = "AutoNummerierung")] - auto_nummerierung: bool, + #[serde(skip_serializing_if = "Option::is_none")] + auto_nummerierung: Option, #[serde(rename = "Zwischenspeichern")] - zwischenspeichern: bool, + #[serde(skip_serializing_if = "Option::is_none")] + zwischenspeichern: Option, #[serde(rename = "Zurueckblaettern")] - zurueckblaettern: bool, + #[serde(skip_serializing_if = "Option::is_none")] + zurueckblaettern: Option, #[serde(rename = "Datenbankexport")] - datenbankexport: bool, + #[serde(skip_serializing_if = "Option::is_none")] + datenbankexport: Option, #[serde(rename = "DatenschutzRelevant")] #[serde(skip_serializing_if = "Option::is_none")] datenschutz_relevant: Option, #[serde(rename = "KonferenzRelevant")] - konferenz_relevant: bool, + #[serde(skip_serializing_if = "Option::is_none")] + konferenz_relevant: Option, + #[serde(rename = "Drucken")] + #[serde(skip_serializing_if = "Option::is_none")] + drucken: Option, #[serde(rename = "hatUnterformulare")] hat_unterformulare: bool, #[serde(rename = "ScriptBeimSchliessen")] @@ -292,6 +305,7 @@ impl Requires for Unterformular { .last() .unwrap_or_default() } + fn requires_subform(&self, name: &str) -> bool { self.entries .entry