Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
050fb34fb0 | ||
|
|
b86a12e5df | ||
|
|
2f04c82c89 | ||
|
|
00449916a3 | ||
|
|
41db6093e5 |
@@ -3,6 +3,26 @@
|
||||
One line per change, grouped by the release that shipped it. Newest
|
||||
first. Each release names the portal tag it is built against.
|
||||
|
||||
## 0.5.10 (2026-09-30) - portal v0.5.10
|
||||
|
||||
- Matches portal v0.5.10 (released by portal's publish job).
|
||||
|
||||
## 0.5.9 (2026-09-30) - portal v0.5.9
|
||||
|
||||
- Matches portal v0.5.9 (released by portal's publish job).
|
||||
|
||||
## 0.5.8 (2026-09-30) - portal v0.5.8
|
||||
|
||||
- Matches portal v0.5.8 (released by portal's publish job).
|
||||
|
||||
## 0.5.7 (2026-09-30) - portal v0.5.7
|
||||
|
||||
- Matches portal v0.5.7 (released by portal's publish job).
|
||||
|
||||
## Unreleased
|
||||
|
||||
- The effort budget counts what a person fills in: a `type: record` field (the case an answer is about, carried on the link) and a `hidden` preset are not asked and no longer count. An objection page whose form carried the application's id used to be one field over.
|
||||
|
||||
## 0.5.6 (2026-09-30) - portal v0.5.6
|
||||
|
||||
- Matches portal v0.5.6 (released by portal's publish job).
|
||||
|
||||
Generated
+3
-3
@@ -2287,7 +2287,7 @@ checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0"
|
||||
|
||||
[[package]]
|
||||
name = "iris"
|
||||
version = "0.5.6"
|
||||
version = "0.5.10"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-nats",
|
||||
@@ -3406,8 +3406,8 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "portal"
|
||||
version = "0.5.6"
|
||||
source = "git+https://project.uhhm.no/uhhm/portal.git?tag=v0.5.6#b9327a170f34daab3d47f9ffd307d3767e82fc1b"
|
||||
version = "0.5.10"
|
||||
source = "git+https://project.uhhm.no/uhhm/portal.git?tag=v0.5.10#cb31995299a61fd3bf8a245e5b1d943e3c073043"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "iris"
|
||||
version = "0.5.6"
|
||||
version = "0.5.10"
|
||||
edition = "2021"
|
||||
description = "The iris over a portal site: nothing from a content repo comes through until it checks out"
|
||||
license = "MIT"
|
||||
@@ -10,7 +10,7 @@ repository = "https://project.uhhm.no/uhhm/iris"
|
||||
# The site's own content types and loaders, so iris reads a repo exactly
|
||||
# the way the running site does. Pinned to the portal release it
|
||||
# matches; bumping this tag is what a new iris release is.
|
||||
portal = { git = "https://project.uhhm.no/uhhm/portal.git", tag = "v0.5.6", features = ["ssr"] }
|
||||
portal = { git = "https://project.uhhm.no/uhhm/portal.git", tag = "v0.5.10", features = ["ssr"] }
|
||||
anyhow = "1"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
+17
-1
@@ -157,11 +157,14 @@ fn visible(q: &Question, as_group: Option<&str>) -> bool {
|
||||
}
|
||||
}
|
||||
|
||||
/// What a person has to fill in: required fields, less the ones that
|
||||
/// carry rather than ask - a `record` naming the case an answer is
|
||||
/// about, a `hidden` preset - which cost nobody anything.
|
||||
fn required_fields(alt: &Alternative) -> usize {
|
||||
alt.features
|
||||
.iter()
|
||||
.flat_map(|f| &f.requirements)
|
||||
.filter(|r| !r.optional)
|
||||
.filter(|r| !r.optional && r.kind != "record" && r.kind != "hidden")
|
||||
.count()
|
||||
}
|
||||
|
||||
@@ -860,6 +863,19 @@ mod tests {
|
||||
let (questions, aggregates) = site(FULL_DESK);
|
||||
let findings = check(&needs(" max_fields: 1\n"), &questions, &aggregates);
|
||||
assert_eq!(fails(&findings), vec!["the path asks for 2 required field(s), over the budget of 1"]);
|
||||
// A field that carries rather than asks is not effort: the
|
||||
// record an answer is about arrives on the link.
|
||||
let (mut questions, aggregates) = site(FULL_DESK);
|
||||
let front = questions.get_mut("/").unwrap();
|
||||
let brief = &mut front.alternatives[0].features[0].requirements;
|
||||
let mut carrier = brief[0].clone();
|
||||
carrier.name = "case".into();
|
||||
carrier.kind = "record".into();
|
||||
carrier.of = Some("projects".into());
|
||||
carrier.optional = false;
|
||||
brief.push(carrier);
|
||||
let findings = check(&needs(" max_fields: 2\n"), &questions, &aggregates);
|
||||
assert!(fails(&findings).is_empty(), "{findings:?}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user