diff --git a/.diagrams/architecture/announcements/states.mermaid b/.diagrams/architecture/announcements/states.mermaid new file mode 100644 index 000000000..37963cb2a --- /dev/null +++ b/.diagrams/architecture/announcements/states.mermaid @@ -0,0 +1,18 @@ +--- +config: + layout: elk + elk: + nodePlacementStrategy: NETWORK_SIMPLEX +--- +flowchart TD + draft>draft] + published>published] + expired>expired] + archived>archived] + + published --Save as--> published + expired & draft --Save as--> draft & published + published -.On
expires_on
date.-> expired + draft & published & expired --Archive--> archived + archived & expired -.Scheduled
task.-> delete[Delete after 90 days] + published --Unpublish--> draft \ No newline at end of file diff --git a/.diagrams/architecture/announcements/states.mermaid.png b/.diagrams/architecture/announcements/states.mermaid.png new file mode 100644 index 000000000..2ab83db34 Binary files /dev/null and b/.diagrams/architecture/announcements/states.mermaid.png differ diff --git a/.diagrams/architecture/announcements/user-actions.mermaid b/.diagrams/architecture/announcements/user-actions.mermaid new file mode 100644 index 000000000..b73281c8c --- /dev/null +++ b/.diagrams/architecture/announcements/user-actions.mermaid @@ -0,0 +1,42 @@ +flowchart TD + start([Admin User]) + + %% Nodes - Actions + active[Publicly available] + email[Send email 14 days before expire_on date] + scheduleExpire[Automatically expire announcement after expire_on date] + scheduleDelete[Automatically delete announcement after 90 days] + + %% Nodes - decisions + choice{Actions} + saveAny{Save As} + saveP{Save As} + + %% Nodes - Data objects + draft>fa:fa-file Draft Announcement] + published>fa:fa-file Published Announcement] + expired>fa:fa-file Expired Announcement] + archive>fa:fa-file Archived Announcement] + + %% New workflow + start --> choice + choice --New--> saveAny + + %% Existing workflows + choice --Edit draft/expired--> saveAny + choice --Edit published--> saveP + choice --Unpublish--> draft + published -.Scheduled task.-> email + + %% Saving workflow + saveAny --Draft--> draft + saveAny & saveP --Publish--> published + published -.After active_on date.-> active + + %% Expire workflows + published -.Scheduled task.-> scheduleExpire + scheduleExpire --> expired + + %% Delete workflows + choice --Archive--> archive + expired & archive -.Scheduled task.-> scheduleDelete \ No newline at end of file