1
0
mirror of https://github.com/pcvolkmer/osc-variant.git synced 2025-07-01 16:32:54 +00:00

feat: add minimal form references for given profile

This commit is contained in:
2025-05-17 11:24:38 +02:00
parent c47e690c76
commit e55768b6d9
2 changed files with 82 additions and 2 deletions

View File

@ -586,6 +586,72 @@ impl Checkable for Form<UnterformularType> {
} }
} }
impl Form<DataFormReferenceType> {
/// Create a new minimal form reference with given form name
pub fn new_form_reference(reference_name: &str) -> Self {
Self {
_type: PhantomData::<DataFormReferenceType>,
data_catalogues: None,
category: "0".to_string(),
name: reference_name.to_string(),
version: None,
menu_entry: None,
title: None,
description: None,
note: None,
readonly: false,
active: None,
tudok_position: "0".to_string(),
aktenbereich: None,
befragung_relevant: None,
hotkey: None,
summary: None,
big_summary: None,
kalender_schnipsel: None,
mail_template: None,
erkrankung_text: None,
erkrankung_text_long: None,
erkrankung_prozedur_text: None,
erkrankung_summary: None,
erkrankung_big_summary: None,
kontext: None,
datenart: None,
show_history_button: None,
tudok_readonly: None,
vitalstatus_relevant: None,
auto_nummerierung: None,
zwischenspeichern: None,
zurueckblaettern: None,
datenbankexport: None,
datenschutz_relevant: None,
konferenz_relevant: None,
drucken: None,
hat_unterformulare: false,
script_beim_schliessen: None,
script_beim_speichern: None,
script_beim_neuanlegen: None,
script_beim_bearbeiten: None,
script_beim_kopieren: None,
script_beim_import: None,
script_beim_anonymisieren: None,
sid: "".to_string(),
guid: "".to_string(),
revision: 0,
max_anzahl: None,
verknuepft_guid: None,
seitenanzahl_sichtbar: None,
entries: None,
plausibility_rules: None,
haeufigkeiten: None,
kennzahlen: None,
ordner: None,
menu_category: None,
punkte_kategorien: None,
ansichten: None,
}
}
}
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)] #[serde(deny_unknown_fields)]
pub struct DataCatalogues { pub struct DataCatalogues {

View File

@ -19,7 +19,7 @@
*/ */
use crate::model::form::{DataFormReferenceType, Form}; use crate::model::form::{DataFormReferenceType, Form};
use crate::model::{Ansicht, Filter, FormEntry, Ordner, RefEntries, Script, Sortable}; use crate::model::{Ansicht, Comparable, Filter, FormEntry, Ordner, RefEntries, Script, Sortable};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
// Ablaufschema ... // Ablaufschema ...
@ -519,7 +519,21 @@ impl FormEntry for Entry {
} }
fn update_referenced_data_form(&mut self, value: String) { fn update_referenced_data_form(&mut self, value: String) {
self.referenced_data_form = Some(value); self.referenced_data_form = Some(value.to_string());
// Add new minimal form reference if not already present
if let Some(ref mut form) = self.data_form_references {
if !form
.referenced_data_form
.iter()
.map(super::Comparable::get_name)
.collect::<Vec<String>>()
.contains(&value)
{
form.referenced_data_form
.push(Form::new_form_reference(&value));
}
}
} }
fn update_anzeige(&mut self, value: String) { fn update_anzeige(&mut self, value: String) {