Add constant rich text placeholders
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
2026-08-30 23:23:48 +02:00
parent 28469bf547
commit 527c186090
15 changed files with 529 additions and 15 deletions
@@ -54,8 +54,8 @@ public partial class SettingsViewModel
private LetterTemplateListItem CreateItem(InstalledTemplate template)
{
var loaded = _letterTemplates.Load(template);
return new(template, loaded.Manifest.SchemaVersion, loaded.Manifest.Placeholders.Count,
loaded.Manifest.Placeholders.Count(x => x.Required));
return new(template, loaded.Manifest.SchemaVersion, loaded.Manifest.Placeholders.Count(x => !x.IsConstant),
loaded.Manifest.Placeholders.Count(x => !x.IsConstant && x.Required));
}
}
@@ -77,7 +77,8 @@ public partial class CreateLetterDialogViewModel : ObservableObject
var loaded = _templates.Load(SelectedTemplate.Model); var values = BuildValues();
var validation = new TemplateLoader().Validate(loaded, values.ToDictionary(x => x.Key, x => x.Value.Type));
foreach (var issue in validation.Issues) Issues.Add(new(issue.Message, issue.Severity == ValidationSeverity.Error));
foreach (var required in loaded.Manifest.Placeholders.Where(x => x.Required && values.TryGetValue(x.Name, out var value) && IsEmpty(value)))
foreach (var required in loaded.Manifest.Placeholders.Where(x => !x.IsConstant && x.Required
&& values.TryGetValue(x.Name, out var value) && IsEmpty(value)))
Issues.Add(new($"Für das Pflichtfeld „{required.Name}“ ist kein Wert vorhanden.", true));
}
catch (Exception ex) when (ex is IOException or InvalidDataException or TemplateValidationException)