Agenda - OpenSlides/OpenSlides GitHub Wiki

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 having agenda_item.can_see
  • internal: Can be seen by users having agenda_item.can_see_internal
  • hidden: Can be seen by users having agenda_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.

Creation and deletion of agenda item models

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 set agenda_create to true
  • never: force set agenda_create to false
  • default_yes: set agenda_create to true, if it was undefined/null
  • default_no: force set agenda_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.

⚠️ **GitHub.com Fallback** ⚠️