~~**As** **As** a project members~~ members ~~**I **I want to** build meeting agendas, add invitees and document important information and decisions~~ decisions ~~**so **so that** our meetings are more efficient and key information is documented and easy to find.~~ find.
### ~~Note~~ Note
~~These These define the functional scope (the what) of the feature and do not yet go into the specifics of~~ _~~how~~_ ~~different of _how_ different parts will be implemented. Once this feature is set to specified, UX and Front-end will co-create the UI/UX of the feature using existing Primer ViewComponents as much as possible.~~ possible.
### ~~Acceptance criteria~~ Acceptance criteria
~~A A new Meetings module (based on Primer) will replace the existing one:~~ one:
* ~~**A **A meeting consists of meeting details, agenda items and invitees.**~~ invitees.** * ~~**Meeting **Meeting details are:**~~ are:** * ~~Title Title of the meeting (required)~~ (required) * ~~Status~~ Status * ~~Date (required)~~ Date (required) * ~~Time Time (eg. 1 PM – 3 PM, optional)~~ optional) * ~~Duration Duration (manually set)~~ set) * ~~Duration Duration is marked in red if the set duration is longer than the sum of the duration of agenda items~~ items * ~~Place Place or Link (optional)~~ (optional) * ~~**Invitees** **Invitees** can have one of three roles (note: link with Klaus' work on roles/permissions)~~ roles/permissions) * ~~**moderator** **moderator** (no limitation on #)~~ #) * ~~author author is by default a moderator or~~ or * ~~any any participant designated as such by a moderator~~ moderator * ~~**participant**~~ **participant** * ~~invitees~~ invitees * ~~**viewer**~~ **viewer** * ~~everyone everyone else in the project who is not a moderator or participant~~ participant * ~~Meeting Meeting participants can have one of three roles:~~ roles: * ~~**Meeting editor**~~ **Meeting editor** * ~~Add Add and edit meeting details~~ details * ~~Manage Manage participants (invite, remove...)~~ remove...) * ~~Add/remove Add/remove and re-order agenda items~~ items * ~~Change Change agenda item type (simple and work package)~~ package) * ~~Add/remove Add/remove open points~~ points * ~~Can Can designate invitees as editors~~ editors * ~~**Meeting invitee**~~ **Meeting invitee** * ~~They They are visible under "invitees"~~ "invitees" * ~~**Meeting viewer**~~ **Meeting viewer** * ~~Has Has access to view the meeting but is not "involved in any way~~ way * ~~A A meeting can of one of two statuses:~~ statuses: * ~~**Open** **Open** (default state, name potentially unrequired)~~ unrequired) * ~~All All actions possible (based on available permissions)~~ permissions) * ~~**Closed**~~ **Closed** * ~~Read-only Read-only for everyone but~~ but * ~~Editors Editors can re-open meetings to edit it~~ it * ~~**Sections (optional)**~~
* ~~Group of agenda items~~
* ~~**Agenda items:**~~ **Agenda items:** * ~~Meetings Meetings consist of agenda items.~~ items. * ~~At At their most basic, agenda items have:~~ have: * ~~Title (required)~~ Title (required) * ~~Responsible (optional)~~ Responsible (optional) * ~~Just Just a user object that's displayed; no functional implication~~ implication * ~~Duration (optional)~~ Duration (optional) * ~~Integer Integer field, in minutes~~ minutes * _~~Risk: _Risk: if some agenda items have duration and others don't; the total duration will be misleading since some items will have a duration of zero~~_ zero_ * ~~Description:~~ Description: * ~~Text Text area: CKEditor~~ CKEditor * _~~restrictive? _restrictive? with basic bold, italic, maybe links... maybe no tables or images?~~_ images?_ * ~~The The meeting title can also be replaced with a work package:~~ package: * ~~By By default, the type is "Title" but the user can alternatively select other types with a drop down:~~ down: * ~~Title~~ Title * ~~Work package~~ Work package * ~~Turns Turns the input field into a search bar, and typing keywords displays results in a drop modal.~~ modal. * ~~The The user can select the corresponding work package.~~ package. * _~~\[open\] _\[open\] Power user: Typing "#" in the title field selects work package.~~_ package._ * _~~\[open\] _\[open\] OG: Work package search thing we have is Angular, we have to see how to make it work with Primer.~~_ Primer._ * ~~If If the selected work package already has unresolved open points:~~ points: * ~~Ask Ask the user to select which ones (if any) they would like to add to the meeting~~ meeting * ~~The The selected ones will be added to that agenda item (references those items)~~ items) * ~~In In the "Open Points" tab of the work package, those points that have been added to the meeting, will show this relation~~ relation * ~~An An open point added to this agenda item (refering a work package), will then also be added to the "Open Points" tab of that work package~~ package * ~~The The title is now replaced with the work package details (id, Subject, type, status)~~ status) * ~~Clicking Clicking on the work package title opens it in a new tab.~~ tab. * ~~Users Users should be able to "remove" the work package by selecting a basic title field instead in Edit mode.~~ mode. * ~~The The title is empty (to make it absolutely clear that there's no connection to the WP).~~ WP). * ~~Functionally, Functionally, other agenda elements (duration, responsible, description) are unrelated to the work package and do not affect it.~~ it. * ~~Open Open points are the only exception, see ###49578~~ ###49578 * ~~Agenda Agenda items have two states, display and edit:~~ edit: * ~~In In display state, agenda details cannot be edited but moderators can drag them up and down to to change the order (mode allowing).~~ allowing). * ~~In In edit state, these fields are visible:~~ visible: * ~~Title Title (text field, typing # turns it into a search field)~~ field) * ~~Duration Duration in minutes (integer)~~ (integer) * ~~Responsible Responsible (user search)~~ search) * ~~Buttons Buttons to add an open point, and a remove button once each is added:~~ added: * ~~This This can be an "Open point" or a "Resolved open point" when resolved~~ resolved * ~~(Define (Define what an open point in an agenda item looks like)~~ like) * ~~Save button.~~ Save button. * ~~Agenda Agenda items have hover actions, depending on status:~~ status: * ~~Drag~~ Drag * ~~Edit~~ Edit * ~~More~~ More * ~~**Mobile**: **Mobile**: Viewing meetings is a priority.~~ priority. * ~~**Journalising:**~~ **Journalising:** * ~~Modifications Modifications to a meeting are journalised~~ journalised * ~~There There is a link to view meeting journal history~~ history * ~~**Email notifications:**~~ **Email notifications:** * ~~When When someone is invited (send iCal immediately)~~ immediately) * ~~When When meeting dates change (send .ics again)~~ again) * ~~When When meeting status changes~~ changes * ~~When When meeting is sent to invitees manually~~ manually * ~~**Email **Email all participants**~~ participants** * ~~Sends Sends meeting agenda to all invitees via email~~ email * ~~**Calendar **Calendar subscriptions for meeting**~~ meeting** * ~~Automatically Automatically updated when dates or meeting details are modified~~ modified * ~~\[open\] \[open\] **Download .ics for meeting**~~ meeting**
### ~~Open~~ Open
* ~~How How should we handle migration and old meetings?~~ meetings? * ~~Idea: Idea: Decision and issues log?~~ log? * ~~Ways Ways to be able to show relevant meetings from work packages.~~ packages. * ~~Later, Later, possible to show and filter through decisions/clarification needs?~~ needs?
### ~~Out Out of scope~~ scope
~~This This first version of the new Meetings module for version 13.1 will not include:~~ include:
* ~~Duration Duration derived from the duration of agenda items~~ items * ~~The The ability to add clarification needs and decisions are specified in a separate feature:~~ feature: * ~~###49578~~ ###49578 * ~~Extensions Extensions to the agenda items:~~ items: * ~~Notes~~ Notes * ~~Required Required participants for this agenda item~~ item * ~~Meeting invitees:~~ Meeting invitees: * ~~Add Add items to the backlog for the editors to add/remove~~ add/remove * ~~Commenting Commenting and emoji reactions~~ reactions * ~~Comment threads~~ Comment threads * ~~Sections~~ Sections * ~~Designate Designate a person responsible?~~ responsible? * ~~Add duration~~ Add duration * ~~Follow-up Follow-up item: within a meeting, when someone identifies to-dos and tasks, be able to create a work package (or to-do) directly from agenda item~~ item * ~~Agenda Agenda backlog (a set of agenda items that are "parked" and do not show up in the actual meeting, simliar to drafts)~~ drafts) * ~~Send Send existing agenda item to backlog~~ backlog * ~~Send Send backlog item to agenda~~ agenda * _~~\[open\] _\[open\] Clicking on the work package opens the work package in a split screen.~~_ screen._ * _~~In _In the short term, would require having Angular code.~~_ code._ * _~~In _In the long term, Primer offers overlays that slide in from the right side that we could potentially use for this.~~_ this._ * ~~Move Move existing agenda item to another meeting~~ meeting * ~~Meeting Meeting series (recurring)~~ (recurring) * ~~Web Web conference tool~~ tool * ~~In-app notifications:~~ In-app notifications: * ~~Out Out of scope:~~ scope: * ~~Invited Invited to a meeting~~ meeting * ~~Meeting modified~~ Meeting modified * ~~Meeting Meeting status changed~~ changed * ~~Meeting rescheduled~~ Meeting rescheduled * _~~Note: _Note: right now Notifs limited to work packages (so possible to show meetings objects linked to WPs)~~_ WPs)_ * ~~iCal integration~~ iCal integration * ~~Four statuses:~~
* ~~**Draft agenda** (default for new meetings):~~
* ~~Moderators can edit and modify meetings details, add invitees and construct the meeting agenda by adding agenda items. They can also rearrange agenda items by dragging them up or down.~~
* ~~Participants can only add or modify their own agenda items.~~
* ~~Viewers (non invitees) cannot see the meeting yet (?)~~
* ~~**Finalised agenda**: a moderator sets the mode to finalised to lock the agenda before a meeting.~~
* ~~Moderators can change state to draft to change the actual agenda; participants cannot do this.~~
* ~~Moderators can change meeting details (name, time, date...) and add/remove invitees.~~
* ~~Participants can add (but not remove?) invitees.~~
* ~~Viewers can now view the meeting in read-only mode.~~
* ~~**Meeting in Progress**: a moderator sets the mode to In Progress when the meeting actually takes place.~~
* ~~Moderators can once again modify agenda items own items and add/remove additional items to agenda items (clarificatoin need or decision).~~
* ~~Participants can only modify or add/remove additional items to their~~ _~~own~~_ ~~items.~~
* ~~Viewers can view only.~~
* ~~**Meeting closed**~~
* ~~Read-only for everyone but~~
* ~~Moderators can change status to any of the above~~
### ~~Mockup~~ Mockup
~~**Important:** **Important:** Final mockups will be co-designed with front-end devs using Primer View components once the scope is finalised.~~ finalised.
~~For For reference, see existing test Figma mockups: https://www.figma.com/file/4pe9naCoEzlnbco9Ynl9k9/Automatic-Meeting-Agenda?type=design&node-id=1020-21095&mode=design~~ https://www.figma.com/file/4pe9naCoEzlnbco9Ynl9k9/Automatic-Meeting-Agenda?type=design&node-id=1020-21095&mode=design