OpenSlides/docs/models.yml

2956 lines
66 KiB
YAML
Raw Normal View History

---
2020-09-18 18:00:08 +02:00
# Types:
# - Nativ datatypes: string, number, boolean, JSON
2020-10-01 14:14:09 +02:00
# - HTMLStrict: A string with HTML content.
# - HTMLPermissive: A string with HTML content (with video tags).
# - float: Numbers that are expected to be non-integer. Formatted as in rfc7159.
# - decimal(X): Decimal values represented as a string with X decimal places.
# At the moment we support only X == 6.
2020-10-01 14:14:09 +02:00
# - timestamp: Datetime as a unix timestamp. Why a number? This enables queries
2020-09-18 18:00:08 +02:00
# in the DB. And we do not need more precision than 1 second.
# - <T>[]: This indicates and arbitrary array of the given type. At the moment
# we support only some types. You can add JSON Schema properties for items
# using the extra property `items`
2021-02-16 10:18:09 +01:00
# - color: string that must match ^#[0-9a-f]{6}$
2020-09-18 18:00:08 +02:00
# Relations:
# - We have the following types: `relation`, `relation-list`, `generic-relation`
# and `generic-relation-list`.
# - Non-generic relations: The simple syntax for such a field
# `to: <collection>/<field>`. This is a reference to a collection. The reverse
# relation field in this collection is <field>. E. g. in a motion the field
# `category_id` links to one category where the field `motion_ids` contains the
# motion id. The simple notation for the field is `motion_category/motion_ids`.
# The reverse field has type `relation-list` and is related back to
# `motion/category_id`. The type indicates that there are many
# motion ids.
# - Generic relations: The difference to non-generic relations is that you have a
# list of possible fields, so `to` can either hold multiple collections (if the
# field name is the same):
# to:
# collections:
# - agenda_item
# - assignment
# - ...
# field: tag_ids
# Or `to` can be a list of collection fields:
# to:
# - motion/option_ids
# - user/option_$_ids
2020-10-01 14:14:09 +02:00
# - on_delete: This fields determines what should happen with the foreign model if
# this model gets deleted. Possible values are:
# - SET_NULL (default): delete the id from the foreign key
2021-01-02 21:30:28 +01:00
# - PROTECT: if the foreign key is not empty, throw an error instead of
2020-10-01 14:14:09 +02:00
# deleting the object
# - CASCADE: also delete all models in this foreign key
# Structured fields:
2020-09-18 18:00:08 +02:00
# - There are template fields (see autoupdate service interface) with a `$` as
# the placeholder.
# - The type `template` describes a structured field for the given model. If the
2021-04-26 13:20:30 +02:00
# property `replacement_collection` is given, it describes which model the
# replacement ids are belonging to (=> structured relation). If it is not given,
# the field is a structured tag. The property `fields` contains the definition
# for all the fields that come from the template field.
# JSON Schema Properties:
2021-01-06 20:26:22 +01:00
# - You can add JSON Schema properties to the fields like `enum`, `description`,
# `items`, `maxLength` and `minimum`
2021-01-06 20:26:22 +01:00
# Additional properties:
# - The property `read_only` describes a field that can not be changed by an action.
# - The property `default` describes the default value that is used for new objects.
# - The property `required` describes that this field can not be null or an empty
# string. If this field is given it must have some content.
# - The property `equal_fields` describes fields that must have the same value in
# the instance and the related instance.
# Restriction Mode:
# The field `restriction_mode` is required for every field. It puts the field into a
# restriction group. See https://github.com/OpenSlides/OpenSlides/wiki/Restrictions-Overview
organization:
id:
type: number
restriction_mode: A
name:
type: string
restriction_mode: A
description:
type: HTMLStrict
restriction_mode: A
2020-09-18 18:00:08 +02:00
# Settings (configurable by the client)
legal_notice:
type: string
restriction_mode: A
privacy_policy:
type: string
restriction_mode: A
login_text:
type: string
restriction_mode: A
theme:
type: string
restriction_mode: A
reset_password_verbose_errors:
type: boolean
restriction_mode: B
# Configuration (only for the server owner)
enable_electronic_voting:
type: boolean
restriction_mode: B
2020-09-18 18:00:08 +02:00
committee_ids:
type: relation-list
restriction_mode: B
to: committee/organization_id
2020-09-18 18:00:08 +02:00
resource_ids:
type: relation-list
restriction_mode: A
to: resource/organization_id
organization_tag_ids:
2021-04-08 13:47:25 +02:00
type: relation-list
restriction_mode: B
to: organization_tag/organization_id
2020-09-18 18:00:08 +02:00
user:
id:
type: number
restriction_mode: A
2021-04-14 15:29:28 +02:00
username:
type: string
required: true
restriction_mode: A
title:
type: string
restriction_mode: A
first_name:
type: string
restriction_mode: A
last_name:
type: string
restriction_mode: A
is_active:
type: boolean
restriction_mode: D
2020-11-03 11:33:23 +01:00
is_physical_person:
type: boolean
default: true
restriction_mode: A
password:
type: string
restriction_mode: G
default_password:
type: string
restriction_mode: D
can_change_own_password:
type: boolean
default: true
restriction_mode: D
2021-07-23 12:55:27 +02:00
gender:
type: string
enum:
- male
- female
- diverse
restriction_mode: A
email:
type: string
restriction_mode: C
default_number:
type: string
restriction_mode: A
default_structure_level:
type: string
restriction_mode: A
2021-03-08 14:22:16 +01:00
default_vote_weight:
type: decimal(6)
2021-03-18 08:47:45 +01:00
default: "1.000000"
restriction_mode: A
last_email_send:
type: timestamp
restriction_mode: D
is_demo_user:
type: boolean
restriction_mode: A
2020-09-18 18:00:08 +02:00
# Organization, meeting and committee
organization_management_level:
type: string
description: Hierarchical permission level for the whole organization.
enum:
- superadmin
- can_manage_organization
- can_manage_users
restriction_mode: E
2020-09-18 18:00:08 +02:00
is_present_in_meeting_ids:
type: relation-list
to: meeting/present_user_ids
restriction_mode: A
2021-04-26 13:20:30 +02:00
committee_ids:
2020-09-18 18:00:08 +02:00
type: relation-list
2021-04-26 13:20:30 +02:00
to: committee/user_ids
restriction_mode: E
2021-04-26 13:20:30 +02:00
# committee specific permissions
committee_$_management_level:
type: template
replacement_collection: committee
description: Hierarchical permission level for the each committee organization.
2021-05-06 09:10:04 +02:00
fields:
type: string
enum:
- can_manage
restriction_mode: E
2020-09-18 18:00:08 +02:00
# Meeting specific personal data
comment_$:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields: HTMLStrict
restriction_mode: D
number_$:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields: string
restriction_mode: A
structure_level_$:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields: string
restriction_mode: A
about_me_$:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields: HTMLStrict
restriction_mode: A
vote_weight_$:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields: decimal(6)
restriction_mode: A
2020-09-18 18:00:08 +02:00
# All foreign keys are meeting-specific:
# - Keys are smaller (Space is in O(n^2) for n keys
# in the relation), so this saves storagespace
# - This makes quering things like this possible:
# "Give me all groups for User X in Meeting Y" without
# the need to get all groups and filter them for the meeting
group_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
to: group/user_ids
restriction_mode: C
2020-09-18 18:00:08 +02:00
speaker_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
to: speaker/user_id
2021-07-15 16:06:47 +02:00
on_delete: CASCADE
restriction_mode: A
2020-09-18 18:00:08 +02:00
personal_note_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
to: personal_note/user_id
2021-07-15 16:06:47 +02:00
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
supported_motion_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
to: motion/supporter_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
submitted_motion_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
to: motion_submitter/user_id
restriction_mode: A
2020-11-11 12:02:23 +01:00
poll_voted_$_ids:
2020-09-18 18:00:08 +02:00
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
2020-11-11 12:02:23 +01:00
to: poll/voted_ids
restriction_mode: A
2020-11-11 12:02:23 +01:00
option_$_ids:
2020-09-18 18:00:08 +02:00
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
2020-11-11 12:02:23 +01:00
to: option/content_object_id
restriction_mode: A
2020-11-11 12:02:23 +01:00
vote_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields:
type: relation-list
2020-11-11 12:02:23 +01:00
to: vote/user_id
restriction_mode: A
2020-11-11 12:02:23 +01:00
vote_delegated_vote_$_ids:
2020-09-18 18:00:08 +02:00
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-09-18 18:00:08 +02:00
fields:
type: relation-list
2020-11-11 12:02:23 +01:00
to: vote/delegated_user_id
restriction_mode: A
2020-11-11 12:02:23 +01:00
assignment_candidate_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields:
type: relation-list
2020-11-11 12:02:23 +01:00
to: assignment_candidate/user_id
restriction_mode: A
2020-12-01 13:45:29 +01:00
projection_$_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
2020-12-01 13:45:29 +01:00
fields:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
restriction_mode: A
vote_delegated_$_to_id:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields:
type: relation
to: user/vote_delegations_$_from_ids
restriction_mode: C
vote_delegations_$_from_ids:
type: template
2021-04-26 13:20:30 +02:00
replacement_collection: meeting
fields:
type: relation-list
to: user/vote_delegated_$_to_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
2021-04-26 13:20:30 +02:00
meeting_ids:
type: number[]
2021-05-11 10:16:16 +02:00
description: Calculated. All ids from group_$_ids as integers.
2021-04-26 13:20:30 +02:00
read_only: true
restriction_mode: E
2021-04-26 13:20:30 +02:00
2020-09-18 18:00:08 +02:00
# New: Resource
# Resources are organsation wide "mediafiles", like logos for the organisatio or
# organization-wide fonts. Therefore, no permission checks are done and the user
2020-09-18 18:00:08 +02:00
# must not be logged in to retrieve files. A resource has a token, e.g. `web_header`
# or `pdf_font_italic`, so the client knowns, where to put the resource.
resource:
id:
type: number
restriction_mode: A
token:
type: string
restriction_mode: A
filesize:
type: number
restriction_mode: A
mimetype:
type: string
restriction_mode: A
2020-09-18 18:00:08 +02:00
organization_id:
2020-09-18 18:00:08 +02:00
type: relation
to: organization/resource_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
organization_tag:
id:
type: number
restriction_mode: A
2021-04-08 13:47:25 +02:00
name:
type: string
required: True
restriction_mode: A
2021-04-08 13:47:25 +02:00
color:
type: color
required: True
restriction_mode: A
2021-04-08 13:47:25 +02:00
tagged_ids:
type: generic-relation-list
to:
collections:
- committee
- meeting
field: organization_tag_ids
restriction_mode: A
organization_id:
2021-04-08 13:47:25 +02:00
type: relation
to: organization/organization_tag_ids
restriction_mode: A
2021-04-08 13:47:25 +02:00
2020-09-18 18:00:08 +02:00
committee:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
description:
type: HTMLStrict
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_ids:
type: relation-list
to: meeting/committee_id
on_delete: PROTECT
restriction_mode: A
2020-09-18 18:00:08 +02:00
template_meeting_id:
type: relation
to: meeting/template_for_committee_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
default_meeting_id:
type: relation
to: meeting/default_meeting_for_committee_id
restriction_mode: A
2021-04-26 13:20:30 +02:00
user_ids:
2020-09-18 18:00:08 +02:00
type: relation-list
2021-04-26 13:20:30 +02:00
to: user/committee_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
forward_to_committee_ids:
type: relation-list
to: committee/receive_forwardings_from_committee_ids
restriction_mode: B
2020-09-18 18:00:08 +02:00
receive_forwardings_from_committee_ids:
type: relation-list
to: committee/forward_to_committee_ids
restriction_mode: B
organization_tag_ids:
2021-04-08 13:47:25 +02:00
type: relation-list
to: organization_tag/tagged_ids
restriction_mode: A
organization_id:
2020-09-18 18:00:08 +02:00
type: relation
to: organization/committee_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting:
id:
type: number
restriction_mode: A
welcome_title:
type: string
default: Welcome to OpenSlides
restriction_mode: C
welcome_text:
type: HTMLPermissive
default: Space for your welcome text.
restriction_mode: C
2020-09-18 18:00:08 +02:00
# General
name:
type: string
maxLength: 100
default: OpenSlides
restriction_mode: A
description:
type: string
maxLength: 100
default: Presentation and assembly system
restriction_mode: B
location:
type: string
restriction_mode: B
start_time:
type: timestamp
restriction_mode: B
end_time:
type: timestamp
restriction_mode: B
imported_at:
type: timestamp
restriction_mode: B
# Configuration (only for the server owner)
jitsi_domain:
type: string
restriction_mode: B
jitsi_room_name:
type: string
restriction_mode: B
jitsi_room_password:
type: string
restriction_mode: B
2021-06-07 11:16:07 +02:00
enable_chat:
type: boolean
restriction_mode: B
2020-09-18 18:00:08 +02:00
# System
url_name:
type: string
description: For unique urls.
restriction_mode: B
2020-09-18 18:00:08 +02:00
template_for_committee_id:
type: relation
to: committee/template_meeting_id
restriction_mode: B
enable_anonymous:
type: boolean
default: False
restriction_mode: A
custom_translations:
type: JSON
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Jitsi/Livestream settings
conference_show:
type: boolean
default: False
restriction_mode: C
conference_auto_connect:
type: boolean
default: False
restriction_mode: C
conference_los_restriction:
type: boolean
default: False
restriction_mode: C
conference_stream_url:
type: string
restriction_mode: C
conference_stream_poster_url:
type: string
restriction_mode: C
conference_open_microphone:
type: boolean
default: False
restriction_mode: C
conference_open_video:
type: boolean
default: False
restriction_mode: C
2021-01-13 11:23:24 +01:00
conference_auto_connect_next_speakers:
type: number
default: 0
restriction_mode: C
conference_enable_helpdesk:
type: boolean
default: False
restriction_mode: C
applause_enable:
type: boolean
default: False
restriction_mode: C
applause_type:
type: string
enum:
- applause-type-bar
- applause-type-particles
default: applause-type-bar
restriction_mode: C
applause_show_level:
type: boolean
default: False
restriction_mode: C
applause_min_amount:
type: number
default: 1
minimum: 0
restriction_mode: C
applause_max_amount:
type: number
default: 0
minimum: 0
restriction_mode: C
applause_timeout:
type: number
default: 5
minimum: 0
restriction_mode: C
applause_particle_image_url:
type: string
restriction_mode: C
2020-09-18 18:00:08 +02:00
2021-03-08 13:55:34 +01:00
# Projector countdown
projector_countdown_default_time:
2021-01-13 11:23:24 +01:00
type: number
default: 60
2021-04-15 10:39:04 +02:00
required: true
restriction_mode: B
projector_countdown_warning_time:
type: number
minimum: 0
2021-01-13 11:23:24 +01:00
default: 0
2021-04-15 10:39:04 +02:00
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Exports
export_csv_encoding:
type: string
enum:
- utf-8
- iso-8859-15
default: utf-8
restriction_mode: B
export_csv_separator:
type: string
2021-01-13 11:23:24 +01:00
default: ","
restriction_mode: B
export_pdf_pagenumber_alignment:
type: string
enum:
- left
- right
- center
default: center
restriction_mode: B
export_pdf_fontsize:
type: number
enum:
- 10
- 11
- 12
default: 10
restriction_mode: B
export_pdf_pagesize:
type: string
enum:
- A4
- A5
default: A4
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Agenda
agenda_show_subtitles:
type: boolean
default: False
restriction_mode: B
agenda_enable_numbering:
type: boolean
default: True
restriction_mode: B
agenda_number_prefix:
type: string
maxLength: 20
restriction_mode: B
agenda_numeral_system:
type: string
enum:
- arabic
- roman
default: arabic
restriction_mode: B
agenda_item_creation:
type: string
enum:
- always
- never
- default_yes
- default_no
default: default_yes
restriction_mode: B
agenda_new_items_default_visibility:
2021-01-02 21:30:28 +01:00
type: string
enum:
2021-01-02 21:30:28 +01:00
- common
- internal
- hidden
default: internal
restriction_mode: B
agenda_show_internal_items_on_projector:
type: boolean
default: True
restriction_mode: B
2020-09-18 18:00:08 +02:00
# List of speakers
list_of_speakers_amount_last_on_projector:
type: number
minimum: -1
default: 0
restriction_mode: B
list_of_speakers_amount_next_on_projector:
2021-01-13 11:23:24 +01:00
type: number
minimum: -1
2021-01-13 11:23:24 +01:00
default: -1
restriction_mode: B
list_of_speakers_couple_countdown:
type: boolean
default: True
restriction_mode: B
2021-01-13 11:23:24 +01:00
list_of_speakers_show_amount_of_speakers_on_slide:
type: boolean
default: True
restriction_mode: B
list_of_speakers_present_users_only:
type: boolean
default: False
restriction_mode: B
list_of_speakers_show_first_contribution:
type: boolean
default: False
restriction_mode: B
list_of_speakers_enable_point_of_order_speakers:
type: boolean
default: False
restriction_mode: B
2021-04-29 12:00:53 +02:00
list_of_speakers_enable_pro_contra_speech:
type: boolean
default: False
restriction_mode: B
2021-04-29 12:09:40 +02:00
list_of_speakers_can_set_contribution_self:
2021-04-29 12:00:53 +02:00
type: boolean
default: False
restriction_mode: B
2021-04-29 12:00:53 +02:00
list_of_speakers_speaker_note_for_everyone:
type: boolean
default: False
restriction_mode: B
2021-03-11 08:59:30 +01:00
list_of_speakers_initially_closed:
type: boolean
default: False
restriction_mode: B
2020-09-18 18:00:08 +02:00
2021-04-29 12:00:53 +02:00
2020-09-18 18:00:08 +02:00
# Motions
motions_default_workflow_id:
type: relation
to: motion_workflow/default_workflow_meeting_id
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
motions_default_amendment_workflow_id:
type: relation
to: motion_workflow/default_amendment_workflow_meeting_id
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
motions_default_statute_amendment_workflow_id:
type: relation
to: motion_workflow/default_statute_amendment_workflow_meeting_id
required: true
restriction_mode: B
motions_preamble:
type: string
2021-07-27 17:12:15 +02:00
default: "The assembly may decide:"
restriction_mode: B
motions_default_line_numbering:
type: string
enum:
- outside
- inline
- none
default: outside
restriction_mode: B
motions_line_length:
type: number
2021-04-29 12:00:53 +02:00
minimum: 40
default: 85
restriction_mode: B
motions_reason_required:
type: boolean
default: False
restriction_mode: B
motions_enable_text_on_projector:
type: boolean
default: True
restriction_mode: B
motions_enable_reason_on_projector:
type: boolean
default: True
restriction_mode: B
motions_enable_sidebox_on_projector:
type: boolean
default: False
restriction_mode: B
motions_enable_recommendation_on_projector:
type: boolean
default: True
restriction_mode: B
motions_show_referring_motions:
type: boolean
default: True
restriction_mode: B
motions_show_sequential_number:
type: boolean
default: True
restriction_mode: B
motions_recommendations_by:
type: string
restriction_mode: B
motions_statute_recommendations_by:
type: string
restriction_mode: B
motions_recommendation_text_mode:
type: string
enum:
- original
- changed
- diff
- agreed
default: diff
restriction_mode: B
motions_default_sorting:
type: string
enum:
- number
- weight
default: number
restriction_mode: B
motions_number_type:
type: string
enum:
- per_category
- serially_numbered
- manually
2021-01-13 11:23:24 +01:00
default: per_category
restriction_mode: B
motions_number_min_digits:
type: number
default: 1
restriction_mode: B
motions_number_with_blank:
type: boolean
default: False
restriction_mode: B
motions_statutes_enabled:
type: boolean
default: False
restriction_mode: B
motions_amendments_enabled:
type: boolean
default: False
restriction_mode: B
motions_amendments_in_main_list:
type: boolean
default: True
restriction_mode: B
motions_amendments_of_amendments:
type: boolean
default: False
restriction_mode: B
motions_amendments_prefix:
type: string
default: "-"
restriction_mode: B
motions_amendments_text_mode:
type: string
enum:
- freestyle
- fulltext
- paragraph
default: paragraph
restriction_mode: B
motions_amendments_multiple_paragraphs:
type: boolean
default: True
restriction_mode: B
motions_supporters_min_amount:
type: number
minimum: 0
default: 0
restriction_mode: B
motions_export_title:
type: string
default: Motions
restriction_mode: B
motions_export_preamble:
type: string
restriction_mode: B
motions_export_submitter_recommendation:
type: boolean
default: False
restriction_mode: B
motions_export_follow_recommendation:
2021-01-13 11:23:24 +01:00
type: boolean
default: False
restriction_mode: B
2020-09-18 18:00:08 +02:00
2020-11-11 12:02:23 +01:00
# Motion poll
motion_poll_ballot_paper_selection:
type: string
enum:
- NUMBER_OF_DELEGATES
- NUMBER_OF_ALL_PARTICIPANTS
- CUSTOM_NUMBER
default: CUSTOM_NUMBER
restriction_mode: B
motion_poll_ballot_paper_number:
type: number
default: 8
restriction_mode: B
2021-01-13 11:23:24 +01:00
motion_poll_default_type:
type: string
default: analog
restriction_mode: B
2021-01-13 11:23:24 +01:00
motion_poll_default_100_percent_base:
type: string
default: YNA
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_poll_default_group_ids:
type: relation-list
to: group/used_as_motion_poll_default_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Users
users_sort_by:
type: string
enum:
- first_name
- last_name
- number
default: first_name
restriction_mode: B
users_enable_presence_view:
type: boolean
default: False
restriction_mode: B
users_enable_vote_weight:
type: boolean
default: False
restriction_mode: B
2021-01-13 11:23:24 +01:00
users_allow_self_set_present:
type: boolean
default: False
restriction_mode: B
users_pdf_welcometitle:
type: string
default: Welcome to OpenSlides
restriction_mode: B
users_pdf_welcometext:
type: string
default: "[Place for your welcome and help text.]"
restriction_mode: B
users_pdf_url:
type: string
default: http://example.com:8000
restriction_mode: B
users_pdf_wlan_ssid:
type: string
restriction_mode: B
users_pdf_wlan_password:
type: string
restriction_mode: B
users_pdf_wlan_encryption:
type: string
enum:
- ""
- WEP
- WPA
- nopass
restriction_mode: B
users_email_sender:
type: string
default: OpenSlides
restriction_mode: B
users_email_replyto:
type: string
restriction_mode: B
users_email_subject:
type: string
default: OpenSlides access data
restriction_mode: B
users_email_body:
type: string
default: >-
Dear {name},
this is your personal OpenSlides login:
{url}
username: {username}
password: {password}
This email was generated automatically.
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Assignments
assignments_export_title:
type: string
default: Elections
restriction_mode: B
assignments_export_preamble:
type: string
restriction_mode: B
2020-09-18 18:00:08 +02:00
2020-11-11 12:02:23 +01:00
# Assignment polls
assignment_poll_ballot_paper_selection:
type: string
enum:
- NUMBER_OF_DELEGATES
- NUMBER_OF_ALL_PARTICIPANTS
- CUSTOM_NUMBER
default: CUSTOM_NUMBER
restriction_mode: B
assignment_poll_ballot_paper_number:
type: number
default: 8
restriction_mode: B
assignment_poll_add_candidates_to_list_of_speakers:
type: boolean
default: True
restriction_mode: B
assignment_poll_sort_poll_result_by_votes:
type: boolean
default: True
restriction_mode: B
2021-01-13 11:23:24 +01:00
assignment_poll_default_type:
type: string
default: analog
restriction_mode: B
assignment_poll_default_method:
type: string
restriction_mode: B
2021-01-13 11:23:24 +01:00
assignment_poll_default_100_percent_base:
type: string
default: valid
restriction_mode: B
2020-09-18 18:00:08 +02:00
assignment_poll_default_group_ids:
type: relation-list
to: group/used_as_assignment_poll_default_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
2020-11-11 12:02:23 +01:00
# Polls
poll_ballot_paper_selection:
type: string
enum:
- NUMBER_OF_DELEGATES
- NUMBER_OF_ALL_PARTICIPANTS
- CUSTOM_NUMBER
restriction_mode: B
poll_ballot_paper_number:
type: number
restriction_mode: B
poll_sort_poll_result_by_votes:
type: boolean
restriction_mode: B
2021-01-13 11:23:24 +01:00
poll_default_type:
type: string
default: analog
restriction_mode: B
poll_default_method:
type: string
restriction_mode: B
2021-01-13 11:23:24 +01:00
poll_default_100_percent_base:
type: string
default: YNA
restriction_mode: B
2020-11-11 12:02:23 +01:00
poll_default_group_ids:
type: relation-list
to: group/used_as_poll_default_id
restriction_mode: B
2021-03-08 13:55:34 +01:00
poll_couple_countdown:
type: boolean
default: True
restriction_mode: B
2020-11-11 12:02:23 +01:00
# Relations
2020-09-18 18:00:08 +02:00
projector_ids:
type: relation-list
to: projector/meeting_id
on_delete: CASCADE
restriction_mode: B
2021-02-16 10:18:09 +01:00
all_projection_ids:
2020-11-11 12:02:23 +01:00
type: relation-list
to: projection/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
projector_message_ids:
type: relation-list
to: projector_message/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
projector_countdown_ids:
type: relation-list
to: projector_countdown/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
tag_ids:
type: relation-list
to: tag/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
agenda_item_ids:
type: relation-list
to: agenda_item/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
list_of_speakers_ids:
type: relation-list
to: list_of_speakers/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
speaker_ids:
type: relation-list
to: speaker/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
topic_ids:
type: relation-list
to: topic/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
group_ids:
type: relation-list
to: group/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
mediafile_ids:
type: relation-list
to: mediafile/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_ids:
type: relation-list
to: motion/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_comment_section_ids:
type: relation-list
to: motion_comment_section/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_category_ids:
type: relation-list
to: motion_category/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_block_ids:
type: relation-list
to: motion_block/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_workflow_ids:
type: relation-list
to: motion_workflow/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_statute_paragraph_ids:
type: relation-list
to: motion_statute_paragraph/meeting_id
on_delete: CASCADE
restriction_mode: B
motion_comment_ids:
type: relation-list
to: motion_comment/meeting_id
on_delete: CASCADE
restriction_mode: B
motion_submitter_ids:
type: relation-list
to: motion_submitter/meeting_id
on_delete: CASCADE
restriction_mode: B
motion_change_recommendation_ids:
type: relation-list
to: motion_change_recommendation/meeting_id
on_delete: CASCADE
restriction_mode: B
motion_state_ids:
type: relation-list
to: motion_state/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
poll_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: poll/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
option_ids:
type: relation-list
to: option/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
vote_ids:
type: relation-list
to: vote/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
assignment_ids:
type: relation-list
to: assignment/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
assignment_candidate_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: assignment_candidate/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-11-11 12:02:23 +01:00
personal_note_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: personal_note/meeting_id
on_delete: CASCADE
restriction_mode: B
2021-06-07 11:16:07 +02:00
chat_group_ids:
type: relation-list
to: chat_group/meeting_id
on_delete: CASCADE
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Logos and Fonts
logo_$_id:
type: template
fields:
type: relation
to: mediafile/used_as_logo_$_in_meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
font_$_id:
type: template
fields:
type: relation
to: mediafile/used_as_font_$_in_meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
# The client can define these resources. There is no need
# to have whitelist/blacklist on the server. The places must
# be checked: They must match `[a-z]([a-z_]*[a-z])?` and must
# not be longer than 32 characters.
# Other relations
committee_id:
type: relation
to: committee/meeting_ids
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
default_meeting_for_committee_id:
type: relation
to: committee/default_meeting_id
restriction_mode: B
organization_tag_ids:
2021-04-08 13:47:25 +02:00
type: relation-list
to: organization_tag/tagged_ids
restriction_mode: B
2020-09-18 18:00:08 +02:00
present_user_ids:
type: relation-list
to: user/is_present_in_meeting_ids
restriction_mode: B
user_ids:
type: number[]
2021-05-11 10:16:16 +02:00
description: Calculated. All user ids from all users assigned to groups of this meeting.
read_only: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
reference_projector_id:
type: relation
to: projector/used_as_reference_projector_meeting_id
required: true
restriction_mode: B
2021-03-08 13:55:34 +01:00
list_of_speakers_countdown_id:
type: relation
to: projector_countdown/used_as_list_of_speaker_countdown_meeting_id
restriction_mode: B
2021-03-08 13:55:34 +01:00
poll_countdown_id:
type: relation
to: projector_countdown/used_as_poll_countdown_meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
2021-02-16 10:18:09 +01:00
default_projector_$_id:
type: template
fields:
type: relation
to: projector/used_as_default_$_in_meeting_id
restriction_mode: B
2021-02-16 10:18:09 +01:00
# Available template field replacements:
# - agenda_all_items
# - topics
# - list_of_speakers
# - current_list_of_speakers
# - motion
# - amendment
# - motion_block
# - assignment
# - user
# - mediafile
# - projector_message
# - projector_countdowns
# - assignment_poll
# - motion_poll
# - poll
projection_ids:
type: relation-list
to: projection/content_object_id
restriction_mode: B
2021-02-16 10:18:09 +01:00
2020-09-18 18:00:08 +02:00
default_group_id:
type: relation
to: group/default_group_for_meeting_id
required: true
restriction_mode: B
admin_group_id:
2020-09-18 18:00:08 +02:00
type: relation
to: group/admin_group_for_meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
group:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
2021-01-30 13:29:52 +01:00
permissions:
type: string[]
items:
enum:
- agenda_item.can_manage
- agenda_item.can_see
- agenda_item.can_see_internal
- assignment.can_manage
- assignment.can_nominate_other
- assignment.can_nominate_self
- assignment.can_see
- chat.can_manage
2021-01-30 13:29:52 +01:00
- list_of_speakers.can_be_speaker
- list_of_speakers.can_manage
- list_of_speakers.can_see
- mediafile.can_manage
- mediafile.can_see
- meeting.can_manage_logos_and_fonts
- meeting.can_manage_settings
- meeting.can_see_autopilot
- meeting.can_see_frontpage
- meeting.can_see_history
- meeting.can_see_livestream
- motion.can_create
- motion.can_create_amendments
- motion.can_manage
- motion.can_manage_metadata
- motion.can_manage_polls
- motion.can_see
- motion.can_see_internal
- motion.can_support
- poll.can_manage
2021-01-30 13:29:52 +01:00
- projector.can_manage
- projector.can_see
- tag.can_manage
- user.can_manage
- user.can_see
- user.can_see_extra_data
restriction_mode: A
2021-01-30 13:29:52 +01:00
2020-09-18 18:00:08 +02:00
user_ids:
type: relation-list
to: user/group_$_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
default_group_for_meeting_id:
type: relation
to: meeting/default_group_id
on_delete: PROTECT
restriction_mode: A
admin_group_for_meeting_id:
2020-09-18 18:00:08 +02:00
type: relation
to: meeting/admin_group_id
on_delete: PROTECT
restriction_mode: A
2020-09-18 18:00:08 +02:00
mediafile_access_group_ids:
type: relation-list
to: mediafile/access_group_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
mediafile_inherited_access_group_ids:
type: relation-list
to: mediafile/inherited_access_group_ids
description: Calculated field.
read_only: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
read_comment_section_ids:
type: relation-list
to: motion_comment_section/read_group_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
write_comment_section_ids:
type: relation-list
to: motion_comment_section/write_group_ids
equal_fields: meeting_id
restriction_mode: A
2021-06-07 11:16:07 +02:00
read_chat_group_ids:
type: relation-list
to: chat_group/read_group_ids
equal_fields: meeting_id
restriction_mode: A
2021-06-07 11:16:07 +02:00
write_chat_group_ids:
type: relation-list
to: chat_group/write_group_ids
equal_fields: meeting_id
restriction_mode: A
2020-11-11 12:02:23 +01:00
poll_ids:
2020-09-18 18:00:08 +02:00
type: relation-list
2020-11-11 12:02:23 +01:00
to: poll/entitled_group_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
used_as_motion_poll_default_id:
type: relation
to: meeting/motion_poll_default_group_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
used_as_assignment_poll_default_id:
type: relation
to: meeting/assignment_poll_default_group_ids
restriction_mode: A
2020-11-11 12:02:23 +01:00
used_as_poll_default_id:
type: relation
to: meeting/poll_default_group_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/group_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
personal_note:
id:
type: number
restriction_mode: A
note:
type: HTMLStrict
restriction_mode: A
star:
type: boolean
restriction_mode: A
2020-09-18 18:00:08 +02:00
user_id:
type: relation
to: user/personal_note_$_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
content_object_id:
type: generic-relation
to:
2020-11-11 12:02:23 +01:00
collections:
2020-09-18 18:00:08 +02:00
- motion
field: personal_note_ids
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
to: meeting/personal_note_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
tag:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
tagged_ids:
type: generic-relation-list
to:
2020-11-11 12:02:23 +01:00
collections:
2020-09-18 18:00:08 +02:00
- agenda_item
- assignment
- motion
- topic
field: tag_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/tag_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
agenda_item:
id:
type: number
restriction_mode: A
item_number:
type: string
restriction_mode: A
comment:
type: string
restriction_mode: C
closed:
type: boolean
default: false
restriction_mode: A
type:
2021-01-02 21:30:28 +01:00
type: string
enum:
2021-01-02 21:30:28 +01:00
- common
- internal
- hidden
default: common
restriction_mode: A
duration:
type: number
description: Given in seconds
minimum: 0
restriction_mode: B
is_internal:
type: boolean
description: Calculated by the server
read_only: true
restriction_mode: A
is_hidden:
type: boolean
description: Calculated by the server
read_only: true
restriction_mode: A
level:
type: number
description: Calculated by the server
read_only: true
restriction_mode: A
weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: A
2020-09-18 18:00:08 +02:00
content_object_id:
type: generic-relation
to:
2020-11-11 12:02:23 +01:00
collections:
2020-09-18 18:00:08 +02:00
- motion
- motion_block
- assignment
- topic
field: agenda_item_id
required: true
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
parent_id:
type: relation
to: agenda_item/child_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
child_ids:
type: relation-list
to: agenda_item/parent_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
tag_ids:
type: relation-list
to: tag/tagged_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/agenda_item_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
list_of_speakers:
id:
type: number
restriction_mode: A
closed:
type: boolean
default: false
restriction_mode: A
2020-09-18 18:00:08 +02:00
content_object_id:
type: generic-relation
to:
2020-11-11 12:02:23 +01:00
collections:
2020-09-18 18:00:08 +02:00
- motion
- motion_block
- assignment
- topic
- mediafile
field: list_of_speakers_id
required: true
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
speaker_ids:
type: relation-list
to: speaker/list_of_speakers_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/list_of_speakers_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
speaker:
id:
type: number
restriction_mode: A
begin_time:
2020-10-01 14:14:09 +02:00
type: timestamp
read_only: true
restriction_mode: A
end_time:
2020-10-01 14:14:09 +02:00
type: timestamp
read_only: true
restriction_mode: A
weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: A
2021-04-29 12:09:40 +02:00
speech_state:
type: string
enum:
- contribution
- pro
- contra
restriction_mode: A
2021-04-29 12:00:53 +02:00
note:
type: string
maxLength: 250
restriction_mode: A
point_of_order:
type: boolean
restriction_mode: A
2020-09-18 18:00:08 +02:00
list_of_speakers_id:
type: relation
to: list_of_speakers/speaker_ids
required: true
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
user_id:
type: relation
to: user/speaker_$_ids
required: true
2021-03-11 15:28:19 +01:00
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
to: meeting/speaker_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
topic:
id:
type: number
restriction_mode: A
title:
type: string
required: true
restriction_mode: A
text:
type: HTMLPermissive
restriction_mode: B
2020-09-18 18:00:08 +02:00
attachment_ids:
type: relation-list
to: mediafile/attachment_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
agenda_item_id:
type: relation
to: agenda_item/content_object_id
required: true
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
list_of_speakers_id:
type: relation
to: list_of_speakers/content_object_id
required: true
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-11-11 12:02:23 +01:00
option_ids:
type: relation-list
to: option/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
tag_ids:
type: relation-list
to: tag/tagged_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-28 15:12:17 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/topic_ids
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion:
id:
type: number
restriction_mode: A
number:
type: string
restriction_mode: A
number_value:
type: number
description: The number value of this motion. This number is auto-generated and read-only.
read_only: true
restriction_mode: D
sequential_number:
type: number
description: The (positive) serial number of this motion. This number is auto-generated and read-only.
read_only: true
restriction_mode: C
title:
type: string
required: true
restriction_mode: A
text:
type: HTMLStrict
restriction_mode: C
2020-09-18 18:00:08 +02:00
amendment_paragraph_$:
type: template
2020-10-01 14:14:09 +02:00
fields: HTMLStrict
restriction_mode: C
modified_final_version:
type: HTMLStrict
restriction_mode: C
reason:
type: HTMLStrict
restriction_mode: C
category_weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: C
state_extension:
type: string
restriction_mode: C
recommendation_extension:
type: string
restriction_mode: C
sort_weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: C
created:
2020-10-01 14:14:09 +02:00
type: timestamp
read_only: true
restriction_mode: C
last_modified:
2020-10-01 14:14:09 +02:00
type: timestamp
read_only: true
restriction_mode: C
2020-09-18 18:00:08 +02:00
lead_motion_id:
type: relation
to: motion/amendment_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
amendment_ids:
type: relation-list
to: motion/lead_motion_id
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
sort_parent_id:
type: relation
to: motion/sort_child_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
sort_child_ids:
type: relation-list
to: motion/sort_parent_id
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
origin_id:
type: relation
to: motion/derived_motion_ids # Note: The related motions may not be in the same meeting
restriction_mode: B
2020-09-18 18:00:08 +02:00
derived_motion_ids:
type: relation-list
to: motion/origin_id # Note: The related motions may not be in the same meeting
restriction_mode: B
all_origin_ids:
type: number[] # Calculated: All parents (origin_id), grandparents, etc. of this motion.
restriction_mode: B
all_derived_motion_ids:
type: number[] # Calculated: All children (derived_motion_ids), grandchildren, etc. of this motion.
restriction_mode: B
2020-09-18 18:00:08 +02:00
state_id:
type: relation
to: motion_state/motion_ids
required: true
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
recommendation_id:
type: relation
to: motion_state/motion_recommendation_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
recommendation_extension_reference_ids:
type: generic-relation-list
to:
2020-11-11 12:02:23 +01:00
collections:
2020-09-18 18:00:08 +02:00
- motion
field: referenced_in_motion_recommendation_extension_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
referenced_in_motion_recommendation_extension_ids:
type: relation-list
to: motion/recommendation_extension_reference_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
category_id:
type: relation
to: motion_category/motion_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
block_id:
type: relation
to: motion_block/motion_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
submitter_ids:
type: relation-list
to: motion_submitter/motion_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
supporter_ids:
type: relation-list
to: user/supported_motion_$_ids
restriction_mode: C
2020-09-18 18:00:08 +02:00
poll_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: poll/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-11-11 12:02:23 +01:00
option_ids:
type: relation-list
to: option/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
change_recommendation_ids:
type: relation-list
to: motion_change_recommendation/motion_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
statute_paragraph_id:
type: relation
to: motion_statute_paragraph/motion_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
comment_ids:
type: relation-list
to: motion_comment/motion_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
agenda_item_id:
type: relation
to: agenda_item/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
list_of_speakers_id:
type: relation
to: list_of_speakers/content_object_id
required: true
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
tag_ids:
type: relation-list
to: tag/tagged_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
attachment_ids:
type: relation-list
to: mediafile/attachment_ids
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: C
2020-09-18 18:00:08 +02:00
personal_note_ids:
type: relation-list
to: personal_note/content_object_id
equal_fields: meeting_id
on_delete: CASCADE
restriction_mode: C
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/motion_ids
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_submitter:
id:
type: number
restriction_mode: A
weight:
type: number
restriction_mode: A
2020-09-18 18:00:08 +02:00
user_id:
type: relation
to: user/submitted_motion_$_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_id:
type: relation
to: motion/submitter_ids
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
to: meeting/motion_submitter_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_comment:
id:
type: number
restriction_mode: A
comment:
type: HTMLStrict
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_id:
type: relation
to: motion/comment_ids
required: true
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
section_id:
type: relation
to: motion_comment_section/comment_ids
required: true
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
to: meeting/motion_comment_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_comment_section:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: A
2020-09-18 18:00:08 +02:00
comment_ids:
type: relation-list
to: motion_comment/section_id
2020-10-01 14:14:09 +02:00
on_delete: PROTECT
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
read_group_ids:
type: relation-list
to: group/read_comment_section_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
write_group_ids:
type: relation-list
to: group/write_comment_section_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/motion_comment_section_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_category:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
prefix:
type: string
restriction_mode: A
weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: A
level:
type: number
description: Calculated field.
read_only: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
parent_id:
type: relation
to: motion_category/child_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
child_ids:
type: relation-list
to: motion_category/parent_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_ids:
type: relation-list
to: motion/category_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/motion_category_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_block:
id:
type: number
restriction_mode: A
title:
type: string
required: true
restriction_mode: A
internal:
type: boolean
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_ids:
type: relation-list
to: motion/block_id
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
agenda_item_id:
type: relation
to: agenda_item/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
list_of_speakers_id:
type: relation
to: list_of_speakers/content_object_id
required: true
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/motion_block_ids
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
motion_change_recommendation:
id:
type: number
restriction_mode: A
rejected:
type: boolean
default: false
restriction_mode: A
internal:
type: boolean
default: false
restriction_mode: A
type:
2021-01-02 21:30:28 +01:00
type: string
enum:
2021-01-02 21:30:28 +01:00
- replacement
- insertion
- deletion
- other
default: replacement
restriction_mode: A
other_description:
type: string
restriction_mode: A
line_from:
type: number
minimum: 0
restriction_mode: A
line_to:
type: number
minimum: 0
restriction_mode: A
text:
type: HTMLStrict
restriction_mode: A
creation_time:
2020-10-01 14:14:09 +02:00
type: timestamp
read_only: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_id:
type: relation
to: motion/change_recommendation_ids
required: true
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
to: meeting/motion_change_recommendation_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_state:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
recommendation_label:
type: string
restriction_mode: A
css_class:
type: string
enum:
- grey
- red
- green
- lightblue
- yellow
2021-01-02 21:30:28 +01:00
default: lightblue
2021-03-18 11:51:03 +01:00
required: true
restriction_mode: A
restrictions:
type: string[]
items:
enum:
2021-01-02 21:30:28 +01:00
- motion.can_see_internal
- motion.can_manage_metadata
- motion.can_manage
- is_submitter
default: []
restriction_mode: A
allow_support:
type: boolean
default: false
restriction_mode: A
allow_create_poll:
type: boolean
default: false
restriction_mode: A
allow_submitter_edit:
type: boolean
default: false
restriction_mode: A
set_number:
type: boolean
default: true
restriction_mode: A
show_state_extension_field:
type: boolean
default: false
restriction_mode: A
merge_amendment_into_final:
2021-01-02 21:30:28 +01:00
type: string
enum:
2021-01-02 21:30:28 +01:00
- do_not_merge
- undefined
- do_merge
default: undefined
restriction_mode: A
show_recommendation_extension_field:
type: boolean
default: false
restriction_mode: A
2020-09-18 18:00:08 +02:00
next_state_ids:
type: relation-list
to: motion_state/previous_state_ids
equal_fields:
- meeting_id
- workflow_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
previous_state_ids:
type: relation-list
to: motion_state/next_state_ids
equal_fields:
- meeting_id
- workflow_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_ids:
type: relation-list
to: motion/state_id
on_delete: PROTECT
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_recommendation_ids:
type: relation-list
to: motion/recommendation_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
workflow_id:
type: relation
to: motion_workflow/state_ids
required: true
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
first_state_of_workflow_id:
type: relation
to: motion_workflow/first_state_id
2020-11-05 17:35:32 +01:00
on_delete: PROTECT
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
to: meeting/motion_state_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_workflow:
id:
type: number
restriction_mode: A
name:
type: string
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
state_ids:
type: relation-list
to: motion_state/workflow_id
2020-10-01 14:14:09 +02:00
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
first_state_id:
type: relation
to: motion_state/first_state_of_workflow_id
required: true
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
default_workflow_meeting_id:
type: relation
to: meeting/motions_default_workflow_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
default_amendment_workflow_meeting_id:
type: relation
to: meeting/motions_default_amendment_workflow_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
default_statute_amendment_workflow_meeting_id:
type: relation
to: meeting/motions_default_statute_amendment_workflow_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/motion_workflow_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_statute_paragraph:
id:
type: number
restriction_mode: A
title:
type: string
required: true
restriction_mode: A
text:
type: HTMLStrict
restriction_mode: A
weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: A
2020-09-18 18:00:08 +02:00
motion_ids:
type: relation-list
to: motion/statute_paragraph_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/motion_statute_paragraph_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
2020-11-11 12:02:23 +01:00
poll:
id:
type: number
restriction_mode: A
description:
type: string
restriction_mode: A
2020-11-11 12:02:23 +01:00
title:
type: string
required: true
restriction_mode: A
2020-11-11 12:02:23 +01:00
type:
type: string
required: true
enum:
- analog
- named
- pseudoanonymous
restriction_mode: A
2021-04-19 09:22:55 +02:00
backend:
type: string
required: True
default: long
enum:
- long
- fast
restriction_mode: A
is_pseudoanonymized:
type: boolean
restriction_mode: A
2020-11-11 12:02:23 +01:00
pollmethod:
type: string
required: true
enum:
- "Y"
- "YN"
- "YNA"
- "N"
restriction_mode: A
2020-11-11 12:02:23 +01:00
state:
2021-01-02 21:30:28 +01:00
type: string
2020-11-11 12:02:23 +01:00
enum:
2021-01-02 21:30:28 +01:00
- created
- started
- finished
- published
default: created
restriction_mode: A
2020-11-11 12:02:23 +01:00
min_votes_amount:
type: number
default: 1
restriction_mode: A
2020-11-11 12:02:23 +01:00
max_votes_amount:
type: number
default: 1
restriction_mode: A
2020-11-11 12:02:23 +01:00
global_yes:
type: boolean
2021-03-17 11:46:43 +01:00
default: false
restriction_mode: A
2020-11-11 12:02:23 +01:00
global_no:
type: boolean
2021-03-17 11:46:43 +01:00
default: false
restriction_mode: A
2020-11-11 12:02:23 +01:00
global_abstain:
type: boolean
2021-03-17 11:46:43 +01:00
default: false
restriction_mode: A
2020-11-11 12:02:23 +01:00
onehundred_percent_base:
type: string
required: true
enum:
- "Y"
- "YN"
- "YNA"
- "N"
- "valid"
- "cast"
- "entitled"
- "disabled"
default: disabled
restriction_mode: A
votesvalid:
type: decimal(6)
restriction_mode: B
votesinvalid:
type: decimal(6)
restriction_mode: B
votescast:
type: decimal(6)
restriction_mode: D
entitled_users_at_stop:
type: JSON
restriction_mode: A
2020-09-18 18:00:08 +02:00
content_object_id: # Note: must not be set - it is allowed to have standalone polls
2020-11-11 12:02:23 +01:00
type: generic-relation
to:
collections:
- motion
- assignment
field: poll_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
option_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: option/poll_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: A
2020-12-03 10:40:47 +01:00
global_option_id:
type: relation
to: option/used_as_global_option_in_poll_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
voted_ids:
type: relation-list
to: user/poll_voted_$_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
entitled_group_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: group/poll_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
2020-11-11 12:02:23 +01:00
to: meeting/poll_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
2020-11-11 12:02:23 +01:00
option:
id:
type: number
restriction_mode: A
2020-11-11 12:02:23 +01:00
weight:
type: number
default: 10000
restriction_mode: A
text:
type: HTMLStrict
restriction_mode: A
"yes":
type: decimal(6)
restriction_mode: B
"no":
type: decimal(6)
restriction_mode: B
abstain:
type: decimal(6)
restriction_mode: B
2020-09-18 18:00:08 +02:00
poll_id:
type: relation
2020-11-11 12:02:23 +01:00
to: poll/option_ids
equal_fields: meeting_id
restriction_mode: A
2020-12-03 10:40:47 +01:00
used_as_global_option_in_poll_id:
type: relation
to: poll/global_option_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
vote_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: vote/option_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: A
2020-11-11 12:02:23 +01:00
content_object_id:
type: generic-relation
to:
- motion/option_ids
- topic/option_ids
- user/option_$_ids
2020-11-11 12:02:23 +01:00
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
2020-11-11 12:02:23 +01:00
to: meeting/option_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
2020-11-11 12:02:23 +01:00
vote:
id:
type: number
restriction_mode: A
weight:
type: decimal(6)
restriction_mode: A
value:
type: string
restriction_mode: A
2021-04-06 11:01:51 +02:00
user_token:
type: string
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
option_id:
type: relation
2020-11-11 12:02:23 +01:00
to: option/vote_ids
equal_fields: meeting_id
2020-11-11 12:02:23 +01:00
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
user_id:
type: relation
to: user/vote_$_ids
restriction_mode: A
delegated_user_id:
type: relation
to: user/vote_delegated_vote_$_ids
restriction_mode: A
meeting_id:
type: relation
2020-11-11 12:02:23 +01:00
to: meeting/vote_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
assignment:
id:
type: number
restriction_mode: A
title:
type: string
required: true
restriction_mode: A
description:
type: HTMLStrict
restriction_mode: B
open_posts:
type: number
minimum: 0
2020-10-13 17:16:35 +02:00
default: 0
restriction_mode: B
phase:
2021-01-02 21:30:28 +01:00
type: string
enum:
2021-01-02 21:30:28 +01:00
- search
- voting
- finished
default: search
restriction_mode: B
default_poll_description:
type: string
restriction_mode: B
number_poll_candidates:
type: boolean
restriction_mode: B
2020-09-18 18:00:08 +02:00
candidate_ids:
type: relation-list
to: assignment_candidate/assignment_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
poll_ids:
type: relation-list
2020-11-11 12:02:23 +01:00
to: poll/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
agenda_item_id:
type: relation
to: agenda_item/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
list_of_speakers_id:
type: relation
to: list_of_speakers/content_object_id
required: true
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
tag_ids:
type: relation-list
to: tag/tagged_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
attachment_ids:
type: relation-list
to: mediafile/attachment_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/assignment_ids
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
assignment_candidate:
id:
type: number
restriction_mode: A
weight:
type: number
2020-10-13 17:16:35 +02:00
default: 10000
restriction_mode: A
2020-09-18 18:00:08 +02:00
assignment_id:
type: relation
to: assignment/candidate_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
user_id:
type: relation
to: user/assignment_candidate_$_ids
restriction_mode: A
meeting_id:
type: relation
to: meeting/assignment_candidate_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
# Mediafiles are delivered by the mediafile server with the URL
# `<media-prefix>/media/<meeting_id>/path`
mediafile:
id:
type: number
restriction_mode: A
title:
type: string
description: Title and parent_id must be unique.
restriction_mode: A
is_directory:
type: boolean
restriction_mode: B
filesize:
type: number
description: In bytes, not the human readable format anymore.
read_only: true
restriction_mode: B
filename:
type: string
description: The uploaded filename. Will be used for downloading. Only writeable on create.
restriction_mode: B
mimetype:
type: string
restriction_mode: B
pdf_information:
type: JSON
restriction_mode: B
create_timestamp:
type: timestamp
restriction_mode: B
2020-11-05 17:35:32 +01:00
is_public:
type: boolean
2020-11-05 17:35:32 +01:00
description: "Calculated field. inherited_access_group_ids == [] can have two causes: cancelling access groups (=> is_public := false) or no access groups at all (=> is_public := true)"
read_only: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
inherited_access_group_ids:
type: relation-list
to: group/mediafile_inherited_access_group_ids
description: Calculated field.
read_only: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
access_group_ids:
type: relation-list
to: group/mediafile_access_group_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
parent_id:
type: relation
to: mediafile/child_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
child_ids:
type: relation-list
to: mediafile/parent_id
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
list_of_speakers_id:
type: relation
to: list_of_speakers/content_object_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
attachment_ids:
type: generic-relation-list
to:
2020-11-11 12:02:23 +01:00
collections:
2020-09-18 18:00:08 +02:00
- motion
- topic
- assignment
field: attachment_ids
equal_fields: meeting_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/mediafile_ids
required: true
restriction_mode: B
2020-09-18 18:00:08 +02:00
# Reverse relations for meetings, if a mediafile is used as a special resource
used_as_logo_$_in_meeting_id:
type: template
fields:
type: relation
to: meeting/logo_$_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
used_as_font_$_in_meeting_id:
type: template
fields:
type: relation
to: meeting/font_$_id
restriction_mode: B
2020-09-18 18:00:08 +02:00
projector:
id:
type: number
restriction_mode: A
name:
type: string
restriction_mode: A
2021-02-16 10:18:09 +01:00
scale:
type: number
default: 0
restriction_mode: A
2021-02-16 10:18:09 +01:00
scroll:
type: number
default: 0
restriction_mode: A
2021-02-16 10:18:09 +01:00
width:
type: number
minimum: 1
2021-02-16 10:18:09 +01:00
default: 1200
restriction_mode: A
2021-02-16 10:18:09 +01:00
aspect_ratio_numerator:
type: number
minimum: 1
2021-02-16 10:18:09 +01:00
default: 16
restriction_mode: A
2021-02-16 10:18:09 +01:00
aspect_ratio_denominator:
type: number
minimum: 1
2021-02-16 10:18:09 +01:00
default: 9
restriction_mode: A
2021-02-16 10:18:09 +01:00
color:
type: color
default: "#000000"
restriction_mode: A
2021-02-16 10:18:09 +01:00
background_color:
type: color
default: "#ffffff"
restriction_mode: A
2021-02-16 10:18:09 +01:00
header_background_color:
type: color
default: "#317796"
restriction_mode: A
2021-02-16 10:18:09 +01:00
header_font_color:
type: color
default: "#f5f5f5"
restriction_mode: A
2021-02-16 10:18:09 +01:00
header_h1_color:
type: color
default: "#317796"
restriction_mode: A
2021-02-16 10:18:09 +01:00
chyron_background_color:
type: color
default: "#317796"
restriction_mode: A
2021-02-16 10:18:09 +01:00
chyron_font_color:
type: color
default: "#ffffff"
restriction_mode: A
2021-02-16 10:18:09 +01:00
show_header_footer:
type: boolean
default: true
restriction_mode: A
show_title:
2021-02-16 10:18:09 +01:00
type: boolean
default: true
restriction_mode: A
show_logo:
2021-02-16 10:18:09 +01:00
type: boolean
default: true
restriction_mode: A
show_clock:
2021-02-16 10:18:09 +01:00
type: boolean
default: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
current_projection_ids:
type: relation-list
to: projection/current_projector_id
on_delete: CASCADE
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
preview_projection_ids:
type: relation-list
to: projection/preview_projector_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
history_projection_ids:
type: relation-list
to: projection/history_projector_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
used_as_reference_projector_meeting_id:
type: relation
to: meeting/reference_projector_id
restriction_mode: A
2021-02-16 10:18:09 +01:00
used_as_default_$_in_meeting_id:
type: template
fields:
type: relation
to: meeting/default_projector_$_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/projector_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
# A projection is a M2M model between an element that is assigned to a
# projector. This element can either be the current one projected, in the
# preview, or in the history, but not more than one once. A projection is
# projector-specific, meaning that once a projection is created for a projector
# and element, these references will not change.
projection:
id:
type: number
restriction_mode: A
options:
type: JSON
restriction_mode: A
2021-02-16 10:18:09 +01:00
stable:
type: boolean
default: false
restriction_mode: A
weight:
type: number
restriction_mode: A
type:
type: string
restriction_mode: A
2020-09-18 18:00:08 +02:00
content:
type: JSON
calculated: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
current_projector_id:
type: relation
to: projector/current_projection_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
preview_projector_id:
type: relation
to: projector/preview_projection_ids
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
history_projector_id:
type: relation
to: projector/history_projection_ids
equal_fields: meeting_id
restriction_mode: A
2021-02-16 10:18:09 +01:00
content_object_id:
2020-09-18 18:00:08 +02:00
type: generic-relation
to:
2021-02-16 10:18:09 +01:00
- meeting/projection_ids
- motion/projection_ids
- mediafile/projection_ids
- list_of_speakers/projection_ids
- motion_block/projection_ids
- assignment/projection_ids
- agenda_item/projection_ids
- topic/projection_ids
- poll/projection_ids
- projector_message/projection_ids
- projector_countdown/projection_ids
- user/projection_$_ids
equal_fields: meeting_id
restriction_mode: A
meeting_id:
type: relation
2021-02-16 10:18:09 +01:00
to: meeting/all_projection_ids
required: true
restriction_mode: A
2020-09-18 18:00:08 +02:00
projector_message:
id:
type: number
restriction_mode: A
message:
type: HTMLStrict
restriction_mode: A
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/projector_message_ids
restriction_mode: A
2020-09-18 18:00:08 +02:00
projector_countdown:
id:
type: number
restriction_mode: A
2021-02-25 10:58:51 +01:00
title:
type: string
required: true
restriction_mode: A
2021-02-25 10:58:51 +01:00
description:
type: string
default: ""
restriction_mode: A
2021-02-25 10:58:51 +01:00
default_time:
type: number
restriction_mode: A
2021-02-25 10:58:51 +01:00
countdown_time:
type: float
default: 60
restriction_mode: A
2021-02-25 10:58:51 +01:00
running:
type: boolean
default: false
restriction_mode: A
2020-09-18 18:00:08 +02:00
projection_ids:
type: relation-list
2021-02-16 10:18:09 +01:00
to: projection/content_object_id
equal_fields: meeting_id
restriction_mode: A
2021-03-08 13:55:34 +01:00
used_as_list_of_speaker_countdown_meeting_id:
type: relation
to: meeting/list_of_speakers_countdown_id
restriction_mode: A
2021-03-08 13:55:34 +01:00
used_as_poll_countdown_meeting_id:
type: relation
to: meeting/poll_countdown_id
restriction_mode: A
2020-09-18 18:00:08 +02:00
meeting_id:
type: relation
to: meeting/projector_countdown_ids
restriction_mode: A
2021-06-07 11:16:07 +02:00
chat_group:
id:
type: number
restriction_mode: A
2021-06-07 11:16:07 +02:00
name:
type: string
required: true
restriction_mode: A
2021-06-07 11:16:07 +02:00
weight:
type: number
default: 10000
restriction_mode: A
2021-06-07 11:16:07 +02:00
read_group_ids:
type: relation-list
to: group/read_chat_group_ids
equal_fields: meeting_id
restriction_mode: A
2021-06-07 11:16:07 +02:00
write_group_ids:
type: relation-list
to: group/write_chat_group_ids
equal_fields: meeting_id
restriction_mode: A
2021-06-07 11:16:07 +02:00
meeting_id:
type: relation
to: meeting/chat_group_ids
required: true
restriction_mode: A