From 7ab5523f3c2b9516bd1d156591734ad46c9e27a0 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 8 Nov 2023 12:35:58 +0100 Subject: [PATCH] Add more checks shown before in list subcommand --- src/checks/osc.rs | 2 +- src/model/data_form.rs | 19 +++++++++++++++++++ src/model/unterformular.rs | 13 +++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/checks/osc.rs b/src/checks/osc.rs index 440b731..86ca634 100644 --- a/src/checks/osc.rs +++ b/src/checks/osc.rs @@ -76,7 +76,7 @@ fn check_line(line: usize, content: String) -> Vec { if content.contains(" ") { result.append(&mut vec![CheckNotice::ErrorWithCode { - code: "2023-0001".to_string(), + code: "2023-0003".to_string(), description: "Leerzeichen am Ende der Plausibilitätsregel-Bezeichnung (OSTARSUPP-13334)" .to_string(), diff --git a/src/model/data_form.rs b/src/model/data_form.rs index fa94852..92ed545 100644 --- a/src/model/data_form.rs +++ b/src/model/data_form.rs @@ -28,6 +28,7 @@ use std::collections::HashSet; use console::style; use serde::{Deserialize, Serialize}; +use crate::checks::CheckNotice::ErrorWithCode; use crate::checks::{CheckNotice, Checkable}; use crate::model::onkostar_editor::OnkostarEditor; use crate::model::requirements::{Requirement, Requires}; @@ -386,6 +387,24 @@ impl FolderContent for DataForm { impl Checkable for DataForm { fn check(&self) -> Vec { + if self + .entries + .entry + .iter() + .filter(|entry| entry.procedure_date_status != "none") + .count() + == 0 + { + return vec![ErrorWithCode { + code: "2023-0002".to_string(), + description: format!( + "Formular '{}' hat keine Angabe zum Prozedurdatum", + self.name + ), + line: None, + example: None, + }]; + } vec![] } } diff --git a/src/model/unterformular.rs b/src/model/unterformular.rs index fd96e47..1709c1b 100644 --- a/src/model/unterformular.rs +++ b/src/model/unterformular.rs @@ -25,6 +25,7 @@ use std::cmp::Ordering; use std::collections::HashSet; +use crate::checks::CheckNotice::ErrorWithCode; use crate::checks::{CheckNotice, Checkable}; use console::style; use serde::{Deserialize, Serialize}; @@ -383,6 +384,18 @@ impl FolderContent for Unterformular { impl Checkable for Unterformular { fn check(&self) -> Vec { + if self.hat_unterformulare { + return vec![ErrorWithCode { + code: "2023-0001".to_string(), + description: format!( + "Unterformular '{}' mit Markierung 'hat Unterformulare'", + self.name + ), + line: None, + example: None, + }]; + } + vec![] } }