mirror of https://github.com/cncf/gitvote.git
Add min wait support to close on passing (#555)
Signed-off-by: Daniel Castaño Sánchez <danielcastanosanchez@icloud.com>
This commit is contained in:
parent
3543eec09d
commit
577c3d50a7
|
@ -136,6 +136,23 @@ profiles:
|
|||
#
|
||||
close_on_passing: false
|
||||
|
||||
# Close on passing minimum wait
|
||||
#
|
||||
# When the close on passing feature is activated, voting will conclude once
|
||||
# the pass threshold is met. However, there may be instances where it is
|
||||
# preferable to implement a minimum wait time, even if the vote would
|
||||
# already pass. This allows participants sufficient opportunity to engage
|
||||
# and reflect before the vote is automatically finalized.
|
||||
#
|
||||
# Units supported:
|
||||
#
|
||||
# - day / days
|
||||
# - week / weeks
|
||||
#
|
||||
# close_on_passing_min_wait: "1 week"
|
||||
#
|
||||
close_on_passing_min_wait: null
|
||||
|
||||
# Announcements
|
||||
#
|
||||
# GitVote can announce the results of a vote when it is closed on GitHub
|
||||
|
|
|
@ -84,6 +84,8 @@ pub(crate) struct CfgProfile {
|
|||
pub periodic_status_check: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub close_on_passing: Option<bool>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub close_on_passing_min_wait: Option<String>,
|
||||
}
|
||||
|
||||
impl CfgProfile {
|
||||
|
|
|
@ -190,6 +190,12 @@ impl DB for PgDB {
|
|||
where closed = false
|
||||
and cfg ? 'close_on_passing'
|
||||
and (cfg->>'close_on_passing')::boolean = true
|
||||
and
|
||||
case
|
||||
when cfg ? 'close_on_passing_min_wait' and string_to_interval(cfg->>'close_on_passing_min_wait') is not null then
|
||||
current_timestamp > created_at + (cfg->>'close_on_passing_min_wait')::interval
|
||||
else true
|
||||
end
|
||||
",
|
||||
&[],
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue