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:
@ -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 {
|
||||||
|
@ -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) {
|
||||||
|
Reference in New Issue
Block a user