Agenda
Every meeting has one agenda which consists of agenda_item
models. Each agenda item has a content_object
, so it is a representation for the content object in the agenda. Content object collections can be motion
, assignment
and so on. Not every content object must have an agenda item, see Agenda#creation-and-deletion-of-agenda-item-models.
One special collection is topic
. If someone wants to create a stand-alone agenda item, the collection topic
is used. It is required, that every topic always has an agenda item, otherwise these objects wouldn't be accessible.
The agenda items of an agenda are ordered in a tree-like way with the keys parent_id
(reverse: children_ids
) and weight
. See Models#models-ordered-in-trees how the order is composed and how to sort those items. The calculated field level
is also available, being 0 for the top layer, 1 for the first, and so on.
If an content object is deleted, the corresponsing agenda_item
is deleted, too. The parent_id
of children will be set to null
, so they are moved into the root.
Agenda items have a visibility stored in the field type
:
-
common
: Can by seen by users havingagenda_item.can_see
-
internal
: Can be seen by users havingagenda_item.can_see_internal
-
hidden
: Can be seen by users havingagenda_item.can_manage
The visibility of an agenda item propagates through the tree: E.g. if a parent has type="internal"
, the child has this visibility, too, except if the child has type="hidden"
, since it is more restrictive. It is calculated for every agenda item: is_hidden
/is_internal
is true, if one parent or the agenda item itself has the corresponding type.
For topics, an agenda item is automatically created and deleted together with topics. There are no options to control this behavior.
All other content objects are optionally in the agenda. When creating e.g. an assignment, it can be controlled, if an agenda item should be created. During the creation of an content object, additional fields can be given to modify the behavior of the created agenda item:
agenda_create: boolean;
agenda_type: number;
agenda_parent_id: number;
agenda_comment: string;
-
agenda_duration: number;
// in sec. agenda_weight: number;
Regarding agenda_create
: This field indicates, if the agenda item should be created (true
), should not be created (false
) or use the default (undefined
/null
). There is a setting (meeting/agenda_item_creation
) which takes precedence over this field:
-
always
: force setagenda_create
to true -
never
: force setagenda_create
to false -
default_yes
: setagenda_create
to true, if it was undefined/null -
default_no
: force setagenda_create
to false, if it was undefined/null
All other fields are used for the created agenda item directly.
The actions agenda_item.create
and agenda_item.delete
can be used to remove/add agenda_items to content objects. The user experience this as "removing X from the agenda"/"adding X to the agenda". Note that removing an agenda item for an topic, it will be deleted, too.
- DE:Konzept OpenSlides 4
- Update Workflow
- Architecture
- Introduction to functionality
- Restrictions
- Buildsystem
- Development organization
- Services
- Technical details
- Potential Optimizations
- Best practices for developers