From 8c6edaf4b0ff665b72f7af7fec1ae5915375655c Mon Sep 17 00:00:00 2001 From: Ralf Peschke Date: Mon, 1 Nov 2021 18:51:58 +0100 Subject: [PATCH] BAIssue1008: models.yml etc. deleted from repo --- docker/initial-data.json | 1152 --------- docs/example-data.json | 3384 ------------------------- docs/models.yml | 3199 ----------------------- docs/modelsvalidator/requirements.txt | 1 - docs/modelsvalidator/setup.cfg | 6 - docs/modelsvalidator/validate.py | 375 --- docs/permission.yml | 61 - 7 files changed, 8178 deletions(-) delete mode 100644 docker/initial-data.json delete mode 100644 docs/example-data.json delete mode 100644 docs/models.yml delete mode 100644 docs/modelsvalidator/requirements.txt delete mode 100644 docs/modelsvalidator/setup.cfg delete mode 100644 docs/modelsvalidator/validate.py delete mode 100644 docs/permission.yml diff --git a/docker/initial-data.json b/docker/initial-data.json deleted file mode 100644 index 04255b6e8..000000000 --- a/docker/initial-data.json +++ /dev/null @@ -1,1152 +0,0 @@ -{ - "_migration_index": 8, - "organization": { - "1": { - "id": 1, - "name": "[Your organization]", - "description": "", - "legal_notice": "OpenSlides is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly. The event organizer is resposible for the content.", - "privacy_policy": "", - "login_text": "Welcome to OpenSlides. Please login.", - "reset_password_verbose_errors": false, - "enable_electronic_voting": false, - "limit_of_meetings": 0, - "limit_of_users": 0, - "committee_ids": [ - 1 - ], - "active_meeting_ids": [ - 1 - ], - "resource_ids": [], - "organization_tag_ids": [], - "theme_id": 1, - "theme_ids": [1, 2, 3] - } - }, - "user": { - "1": { - "id": 1, - "username": "superadmin", - "title": "", - "first_name": "", - "last_name": "Administrator", - "is_active": true, - "is_physical_person": true, - "password": "", - "default_password": "", - "can_change_own_password": true, - "gender": null, - "email": "", - "default_number": "", - "default_structure_level": "", - "default_vote_weight": "1.000000", - "last_email_send": null, - "is_demo_user": false, - "organization_management_level": "superadmin", - "is_present_in_meeting_ids": [], - "committee_ids": [], - "committee_$_management_level": [], - "comment_$": [], - "number_$": [], - "structure_level_$": [], - "about_me_$": [], - "vote_weight_$": [], - "group_$_ids": [], - "speaker_$_ids": [], - "personal_note_$_ids": [], - "supported_motion_$_ids": [], - "submitted_motion_$_ids": [], - "poll_voted_$_ids": [], - "option_$_ids": [], - "vote_$_ids": [], - "vote_delegated_vote_$_ids": [], - "assignment_candidate_$_ids": [], - "projection_$_ids": [], - "vote_delegated_$_to_id": [], - "vote_delegations_$_from_ids": [], - "meeting_ids": [] - } - }, - "resource": {}, - "organization_tag": {}, - "theme": { - "1": { - "id": 1, - "name": "OpenSlides Blue", - "accent_500": "#2196f3", - "primary_500": "#317796", - "warn_500": "#f06400", - "organization_id": 1, - "theme_for_organization_id": 1, - "accent_100": null, - "accent_200": null, - "accent_300": null, - "accent_400": null, - "accent_50": null, - "accent_600": null, - "accent_700": null, - "accent_800": null, - "accent_900": null, - "accent_a100": null, - "accent_a200": null, - "accent_a400": null, - "accent_a700": null, - "primary_100": null, - "primary_200": null, - "primary_300": null, - "primary_400": null, - "primary_50": null, - "primary_600": null, - "primary_700": null, - "primary_800": null, - "primary_900": null, - "primary_a100": null, - "primary_a200": null, - "primary_a400": null, - "primary_a700": null, - "warn_100": null, - "warn_200": null, - "warn_300": null, - "warn_400": null, - "warn_50": null, - "warn_600": null, - "warn_700": null, - "warn_800": null, - "warn_900": null, - "warn_a100": null, - "warn_a200": null, - "warn_a400": null, - "warn_a700": null - }, - "2": { - "id": 2, - "name": "OpenSlides Red", - "accent_500": "#03a9f4", - "primary_500": "#c31c23", - "warn_500": "#11c2a2", - "organization_id": 1, - "theme_for_organization_id": null, - "accent_100": null, - "accent_200": null, - "accent_300": null, - "accent_400": null, - "accent_50": null, - "accent_600": null, - "accent_700": null, - "accent_800": null, - "accent_900": null, - "accent_a100": null, - "accent_a200": null, - "accent_a400": null, - "accent_a700": null, - "primary_100": null, - "primary_200": null, - "primary_300": null, - "primary_400": null, - "primary_50": null, - "primary_600": null, - "primary_700": null, - "primary_800": null, - "primary_900": null, - "primary_a100": null, - "primary_a200": null, - "primary_a400": null, - "primary_a700": null, - "warn_100": null, - "warn_200": null, - "warn_300": null, - "warn_400": null, - "warn_50": null, - "warn_600": null, - "warn_700": null, - "warn_800": null, - "warn_900": null, - "warn_a100": null, - "warn_a200": null, - "warn_a400": null, - "warn_a700": null - }, - "3": { - "id": 3, - "name": "OpenSlides Green", - "accent_500": "#55c3b6", - "primary_500": "#46962c", - "warn_500": "#e359ce", - "organization_id": 1, - "theme_for_organization_id": null, - "accent_100": null, - "accent_200": null, - "accent_300": null, - "accent_400": null, - "accent_50": null, - "accent_600": null, - "accent_700": null, - "accent_800": null, - "accent_900": null, - "accent_a100": null, - "accent_a200": null, - "accent_a400": null, - "accent_a700": null, - "primary_100": null, - "primary_200": null, - "primary_300": null, - "primary_400": null, - "primary_50": null, - "primary_600": null, - "primary_700": null, - "primary_800": null, - "primary_900": null, - "primary_a100": null, - "primary_a200": null, - "primary_a400": null, - "primary_a700": null, - "warn_100": null, - "warn_200": null, - "warn_300": null, - "warn_400": null, - "warn_50": null, - "warn_600": null, - "warn_700": null, - "warn_800": null, - "warn_900": null, - "warn_a100": null, - "warn_a200": null, - "warn_a400": null, - "warn_a700": null - } - }, - "committee": { - "1": { - "id": 1, - "name": "Default committee", - "description": "", - "meeting_ids": [ - 1 - ], - "template_meeting_id": null, - "default_meeting_id": 1, - "user_ids": [], - "forward_to_committee_ids": [], - "receive_forwardings_from_committee_ids": [], - "organization_tag_ids": [], - "organization_id": 1 - } - }, - "meeting": { - "1": { - "id": 1, - "welcome_title": "Welcome to OpenSlides", - "welcome_text": "[Space for your welcome text]", - "name": "Default meeting", - "is_active_in_organization_id": 1, - "description": "", - "location": "", - "start_time": 0, - "end_time": 0, - "imported_at": null, - "jitsi_domain": "", - "jitsi_room_name": "", - "jitsi_room_password": "", - "enable_chat": false, - "url_name": "", - "template_for_committee_id": null, - "enable_anonymous": false, - "custom_translations": {}, - "conference_show": false, - "conference_auto_connect": false, - "conference_los_restriction": false, - "conference_stream_url": "", - "conference_stream_poster_url": "", - "conference_open_microphone": true, - "conference_open_video": true, - "conference_auto_connect_next_speakers": 0, - "conference_enable_helpdesk": false, - "applause_enable": false, - "applause_type": "applause-type-bar", - "applause_show_level": false, - "applause_min_amount": 1, - "applause_max_amount": 0, - "applause_timeout": 5, - "applause_particle_image_url": "", - "projector_countdown_default_time": 60, - "projector_countdown_warning_time": 0, - "export_csv_encoding": "utf-8", - "export_csv_separator": ",", - "export_pdf_pagenumber_alignment": "center", - "export_pdf_fontsize": 10, - "export_pdf_pagesize": "A4", - "agenda_show_subtitles": false, - "agenda_enable_numbering": true, - "agenda_number_prefix": "", - "agenda_numeral_system": "arabic", - "agenda_item_creation": "default_yes", - "agenda_new_items_default_visibility": "internal", - "agenda_show_internal_items_on_projector": false, - "list_of_speakers_amount_last_on_projector": 1, - "list_of_speakers_amount_next_on_projector": -1, - "list_of_speakers_couple_countdown": true, - "list_of_speakers_show_amount_of_speakers_on_slide": true, - "list_of_speakers_present_users_only": false, - "list_of_speakers_show_first_contribution": false, - "list_of_speakers_enable_point_of_order_speakers": false, - "list_of_speakers_enable_pro_contra_speech": false, - "list_of_speakers_can_set_contribution_self": false, - "list_of_speakers_speaker_note_for_everyone": false, - "list_of_speakers_initially_closed": false, - "motions_default_workflow_id": 1, - "motions_default_amendment_workflow_id": 1, - "motions_default_statute_amendment_workflow_id": 1, - "motions_preamble": "The assembly may decide:", - "motions_default_line_numbering": "none", - "motions_line_length": 90, - "motions_reason_required": false, - "motions_enable_text_on_projector": true, - "motions_enable_reason_on_projector": true, - "motions_enable_sidebox_on_projector": false, - "motions_enable_recommendation_on_projector": true, - "motions_show_referring_motions": true, - "motions_show_sequential_number": true, - "motions_recommendations_by": "", - "motions_statute_recommendations_by": "", - "motions_recommendation_text_mode": "original", - "motions_default_sorting": "number", - "motions_number_type": "per_category", - "motions_number_min_digits": 1, - "motions_number_with_blank": false, - "motions_statutes_enabled": true, - "motions_amendments_enabled": true, - "motions_amendments_in_main_list": true, - "motions_amendments_of_amendments": false, - "motions_amendments_prefix": "-", - "motions_amendments_text_mode": "freestyle", - "motions_amendments_multiple_paragraphs": true, - "motions_supporters_min_amount": 1, - "motions_export_title": "Motions", - "motions_export_preamble": "", - "motions_export_submitter_recommendation": false, - "motions_export_follow_recommendation": false, - "motion_poll_ballot_paper_selection": "CUSTOM_NUMBER", - "motion_poll_ballot_paper_number": 8, - "motion_poll_default_type": "analog", - "motion_poll_default_100_percent_base": "YNA", - "motion_poll_default_group_ids": [ - 3 - ], - "users_sort_by": "first_name", - "users_enable_presence_view": true, - "users_enable_vote_weight": true, - "users_allow_self_set_present": true, - "users_pdf_welcometitle": "Welcome to OpenSlides", - "users_pdf_welcometext": "[Place for your welcome and help text]", - "users_pdf_url": "https://example.com", - "users_pdf_wlan_ssid": "", - "users_pdf_wlan_password": "", - "users_pdf_wlan_encryption": "", - "users_email_sender": "OpenSlides", - "users_email_replyto": "", - "users_email_subject": "Your login for {event_name}", - "users_email_body": "Dear {name},\n\nthis is your OpenSlides login for the event {event_name}:\n\n {url}\n username: {username}\n password: {password}\n\nThis email was generated automatically.", - "assignment_poll_ballot_paper_selection": "CUSTOM_NUMBER", - "assignment_poll_ballot_paper_number": 8, - "assignments_export_title": "Elections", - "assignments_export_preamble": "", - "assignment_poll_add_candidates_to_list_of_speakers": true, - "assignment_poll_sort_poll_result_by_votes": true, - "assignment_poll_default_type": "nominal", - "assignment_poll_default_method": "votes", - "assignment_poll_default_100_percent_base": "valid", - "assignment_poll_default_group_ids": [ - 3 - ], - "poll_ballot_paper_selection": "CUSTOM_NUMBER", - "poll_ballot_paper_number": 8, - "poll_sort_poll_result_by_votes": true, - "poll_default_type": "nominal", - "poll_default_method": "votes", - "poll_default_100_percent_base": "valid", - "poll_default_group_ids": [ - 3 - ], - "poll_couple_countdown": true, - "projector_ids": [ - 1 - ], - "all_projection_ids": [], - "projector_message_ids": [], - "projector_countdown_ids": [ - 1, - 2 - ], - "tag_ids": [], - "agenda_item_ids": [], - "list_of_speakers_ids": [], - "speaker_ids": [], - "topic_ids": [], - "group_ids": [ - 1, - 2, - 3, - 4 - ], - "mediafile_ids": [], - "motion_ids": [], - "motion_comment_section_ids": [], - "motion_category_ids": [], - "motion_block_ids": [], - "motion_workflow_ids": [ - 1, - 2 - ], - "motion_statute_paragraph_ids": [], - "motion_comment_ids": [], - "motion_submitter_ids": [], - "motion_change_recommendation_ids": [], - "motion_state_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "poll_ids": [], - "option_ids": [], - "vote_ids": [], - "assignment_ids": [], - "assignment_candidate_ids": [], - "personal_note_ids": [], - "chat_group_ids": [], - "logo_$_id": [], - "font_$_id": [], - "committee_id": 1, - "default_meeting_for_committee_id": 1, - "organization_tag_ids": [], - "present_user_ids": [], - "user_ids": [], - "reference_projector_id": 1, - "list_of_speakers_countdown_id": 1, - "poll_countdown_id": 2, - "default_projector_$_id": [ - "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" - ], - "default_projector_$agenda_all_items_id": 1, - "default_projector_$topics_id": 1, - "default_projector_$list_of_speakers_id": 1, - "default_projector_$current_list_of_speakers_id": 1, - "default_projector_$motion_id": 1, - "default_projector_$amendment_id": 1, - "default_projector_$motion_block_id": 1, - "default_projector_$assignment_id": 1, - "default_projector_$user_id": 1, - "default_projector_$mediafile_id": 1, - "default_projector_$projector_message_id": 1, - "default_projector_$projector_countdowns_id": 1, - "default_projector_$assignment_poll_id": 1, - "default_projector_$motion_poll_id": 1, - "default_projector_$poll_id": 1, - "projection_ids": [], - "default_group_id": 1, - "admin_group_id": 2 - } - }, - "group": { - "1": { - "id": 1, - "name": "Default", - "permissions": [ - "agenda_item.can_see", - "agenda_item.can_see_internal", - "assignment.can_see", - "list_of_speakers.can_see", - "mediafile.can_see", - "meeting.can_see_frontpage", - "meeting.can_see_autopilot", - "motion.can_see", - "projector.can_see", - "user.can_see" - ], - "user_ids": [], - "default_group_for_meeting_id": 1, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Admin", - "permissions": [], - "user_ids": [], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": 1, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - "3": { - "id": 3, - "name": "Delegates", - "permissions": [ - "agenda_item.can_see", - "agenda_item.can_see_internal", - "assignment.can_see", - "assignment.can_nominate_other", - "assignment.can_nominate_self", - "list_of_speakers.can_see", - "list_of_speakers.can_be_speaker", - "mediafile.can_see", - "meeting.can_see_frontpage", - "meeting.can_see_autopilot", - "motion.can_see", - "motion.can_create", - "motion.can_create_amendments", - "motion.can_support", - "projector.can_see", - "user.can_see" - ], - "user_ids": [], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": 1, - "used_as_assignment_poll_default_id": 1, - "used_as_poll_default_id": 1, - "meeting_id": 1 - }, - "4": { - "id": 4, - "name": "Staff", - "permissions": [ - "agenda_item.can_see", - "agenda_item.can_see_internal", - "agenda_item.can_manage", - "assignment.can_see", - "assignment.can_nominate_other", - "assignment.can_manage", - "assignment.can_nominate_self", - "list_of_speakers.can_see", - "list_of_speakers.can_be_speaker", - "list_of_speakers.can_manage", - "mediafile.can_see", - "mediafile.can_manage", - "meeting.can_see_frontpage", - "meeting.can_see_autopilot", - "motion.can_see", - "motion.can_manage", - "motion.can_manage_metadata", - "motion.can_manage_polls", - "motion.can_see_internal", - "motion.can_create", - "motion.can_create_amendments", - "poll.can_manage", - "projector.can_see", - "projector.can_manage", - "tag.can_manage", - "user.can_see", - "user.can_see_extra_data", - "user.can_manage" - ], - "user_ids": [], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - } - }, - "personal_note": {}, - "tag": {}, - "agenda_item": {}, - "list_of_speakers": {}, - "speaker": {}, - "topic": {}, - "motion": {}, - "motion_submitter": {}, - "motion_comment": {}, - "motion_comment_section": {}, - "motion_category": {}, - "motion_block": {}, - "motion_change_recommendation": {}, - "motion_state": { - "1": { - "id": 1, - "name": "submitted", - "weight": 1, - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": true, - "allow_create_poll": true, - "allow_submitter_edit": true, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [ - 2, - 3, - 4 - ], - "previous_state_ids": [], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "accepted", - "weight": 2, - "recommendation_label": "Acceptance", - "css_class": "green", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 1 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "3": { - "id": 3, - "name": "rejected", - "weight": 3, - "recommendation_label": "Rejection", - "css_class": "red", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 1 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "4": { - "id": 4, - "name": "not decided", - "weight": 4, - "recommendation_label": "No decision", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 1 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "5": { - "id": 5, - "name": "in progress", - "weight": 5, - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": true, - "dont_set_identifier": true, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [ - 6, - 10 - ], - "previous_state_ids": [], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": 2, - "meeting_id": 1 - }, - "6": { - "id": 6, - "name": "submitted", - "weight": 6, - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": true, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": true, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [ - 7, - 10, - 15 - ], - "previous_state_ids": [ - 5 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "7": { - "id": 7, - "name": "permitted", - "weight": 7, - "recommendation_label": "Permission", - "css_class": "lightblue", - "restrictions": [], - "allow_support": false, - "allow_create_poll": true, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [ - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ], - "previous_state_ids": [ - 6 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "8": { - "id": 8, - "name": "accepted", - "weight": 8, - "recommendation_label": "Acceptance", - "css_class": "green", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "9": { - "id": 9, - "name": "rejected", - "weight": 9, - "recommendation_label": "Rejection", - "css_class": "red", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "10": { - "id": 10, - "name": "withdrawn", - "weight": 10, - "recommendation_label": null, - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 5, - 6, - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "11": { - "id": 11, - "name": "adjourned", - "weight": 11, - "recommendation_label": "Adjournment", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "12": { - "id": 12, - "name": "not concerned", - "weight": 12, - "recommendation_label": "No concernment", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "13": { - "id": 13, - "name": "referred to committee", - "weight": 13, - "recommendation_label": "Referral to committee", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "14": { - "id": 14, - "name": "needs review", - "weight": 14, - "recommendation_label": null, - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 7 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "15": { - "id": 15, - "name": "rejected (not authorized)", - "weight": 15, - "recommendation_label": "Rejection (not authorized)", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 6 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - } - }, - "motion_workflow": { - "1": { - "id": 1, - "name": "Simple Workflow", - "state_ids": [ - 1, - 2, - 3, - 4 - ], - "first_state_id": 1, - "default_workflow_meeting_id": 1, - "default_amendment_workflow_meeting_id": 1, - "default_statute_amendment_workflow_meeting_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Complex Workflow", - "state_ids": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "first_state_id": 5, - "default_workflow_meeting_id": null, - "default_amendment_workflow_meeting_id": null, - "default_statute_amendment_workflow_meeting_id": null, - "meeting_id": 1 - } - }, - "motion_statute_paragraph": {}, - "poll": {}, - "option": {}, - "vote": {}, - "assignment": {}, - "assignment_candidate": {}, - "mediafile": {}, - "projector": { - "1": { - "id": 1, - "name": "Default projector", - "scale": 0, - "scroll": 0, - "width": 1220, - "aspect_ratio_numerator": 4, - "aspect_ratio_denominator": 3, - "color": "#000000", - "background_color": "#ffffff", - "header_background_color": "#317796", - "header_font_color": "#f5f5f5", - "header_h1_color": "#317796", - "chyron_background_color": "#317796", - "chyron_font_color": "#ffffff", - "show_header_footer": true, - "show_title": true, - "show_logo": true, - "show_clock": true, - "current_projection_ids": [], - "preview_projection_ids": [], - "history_projection_ids": [], - "used_as_reference_projector_meeting_id": 1, - "used_as_default_$_in_meeting_id": [ - "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" - ], - "used_as_default_$agenda_all_items_in_meeting_id": 1, - "used_as_default_$topics_in_meeting_id": 1, - "used_as_default_$list_of_speakers_in_meeting_id": 1, - "used_as_default_$current_list_of_speakers_in_meeting_id": 1, - "used_as_default_$motion_in_meeting_id": 1, - "used_as_default_$amendment_in_meeting_id": 1, - "used_as_default_$motion_block_in_meeting_id": 1, - "used_as_default_$assignment_in_meeting_id": 1, - "used_as_default_$user_in_meeting_id": 1, - "used_as_default_$mediafile_in_meeting_id": 1, - "used_as_default_$projector_message_in_meeting_id": 1, - "used_as_default_$projector_countdowns_in_meeting_id": 1, - "used_as_default_$assignment_poll_in_meeting_id": 1, - "used_as_default_$motion_poll_in_meeting_id": 1, - "used_as_default_$poll_in_meeting_id": 1, - "meeting_id": 1 - } - }, - "projection": {}, - "projector_message": {}, - "projector_countdown": { - "1": { - "id": 1, - "title": "List of speaker countdown", - "description": "", - "default_time": 60, - "countdown_time": 60, - "running": false, - "projection_ids": [], - "used_as_list_of_speaker_countdown_meeting_id": 1, - "used_as_poll_countdown_meeting_id": null, - "meeting_id": 1 - }, - "2": { - "id": 2, - "title": "Voting countdown", - "description": "", - "default_time": 60, - "countdown_time": 60, - "running": false, - "projection_ids": [], - "used_as_list_of_speaker_countdown_meeting_id": null, - "used_as_poll_countdown_meeting_id": 1, - "meeting_id": 1 - } - }, - "chat_group": {} -} diff --git a/docs/example-data.json b/docs/example-data.json deleted file mode 100644 index d3a1e34b9..000000000 --- a/docs/example-data.json +++ /dev/null @@ -1,3384 +0,0 @@ -{ - "_migration_index": -1, - "organization": { - "1": { - "id": 1, - "name": "Test Organization", - "description": "", - "legal_notice": "OpenSlides is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.", - "privacy_policy": "", - "login_text": "Guten Morgen!", - "enable_electronic_voting": true, - "reset_password_verbose_errors": true, - "committee_ids": [ - 1 - ], - "active_meeting_ids": [ - 1 - ], - "limit_of_meetings": 20, - "limit_of_users": 40, - "resource_ids": [ - 1 - ], - "organization_tag_ids": [ - 1 - ], - "theme_id": 1, - "theme_ids": [1, 2, 3] - } - }, - "user": { - "1": { - "id": 1, - "username": "admin", - "title": "", - "first_name": "", - "last_name": "Administrator", - "is_active": true, - "is_physical_person": true, - "password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758flD5BVZAZ8jLy4nYW9iomHcnkXWkfk3PgBjeiTSxjGG7+fBjMBxsaS1vIiAMxYh+K38l0gDW4wcP+i8tgoc4UBg==", - "default_password": "admin", - "can_change_own_password": true, - "gender": "male", - "email": "", - "default_number": "", - "default_structure_level": "", - "default_vote_weight": "1.000000", - "last_email_send": null, - "is_demo_user": false, - "organization_management_level": "superadmin", - "is_present_in_meeting_ids": [ - 1 - ], - "committee_ids": [ - 1 - ], - "committee_$_management_level": [ - "1" - ], - "committee_$1_management_level": "can_manage", - "comment_$": [ - "1" - ], - "comment_$1": "Test comment", - "number_$": [ - "1" - ], - "number_$1": "12345-67890", - "structure_level_$": [ - "1" - ], - "structure_level_$1": "Test structure level", - "about_me_$": [ - "1" - ], - "about_me_$1": "What I want to say about me.", - "vote_weight_$": [ - "1" - ], - "vote_weight_$1": "1.000000", - "group_$_ids": [ - "1" - ], - "group_$1_ids": [ - 2 - ], - "speaker_$_ids": [ - "1" - ], - "speaker_$1_ids": [ - 1, - 5, - 6, - 12 - ], - "personal_note_$_ids": [ - "1" - ], - "personal_note_$1_ids": [ - 1 - ], - "supported_motion_$_ids": [], - "submitted_motion_$_ids": [ - "1" - ], - "submitted_motion_$1_ids": [ - 1, - 2, - 3, - 4 - ], - "assignment_candidate_$_ids": [ - "1" - ], - "assignment_candidate_$1_ids": [ - 1 - ], - "poll_voted_$_ids": [ - "1" - ], - "poll_voted_$1_ids": [ - 5 - ], - "option_$_ids": [ - "1" - ], - "option_$1_ids": [ - 5, - 7 - ], - "vote_$_ids": [ - "1" - ], - "vote_$1_ids": [ - 9 - ], - "projection_$_ids": [], - "vote_delegated_vote_$_ids": [ - "1" - ], - "vote_delegated_vote_$1_ids": [ - 9 - ], - "vote_delegated_$_to_id": [], - "vote_delegations_$_from_ids": [], - "meeting_ids": [ - 1 - ] - }, - "2": { - "id": 2, - "username": "a", - "title": "", - "first_name": "a", - "last_name": "", - "is_active": true, - "is_physical_person": true, - "password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758fDB3tv5HcCtPRREt7bPGqerTf1AbmoKXt/fVFkLY4znDRh2Yy0m3ZjXD0nHI8oa6KrGlHH/cvysfvf8i2fWIzmw==", - "default_password": "a", - "can_change_own_password": true, - "gender": "female", - "email": "", - "default_number": "", - "default_structure_level": "", - "default_vote_weight": "1.000000", - "last_email_send": null, - "is_demo_user": false, - "organization_management_level": null, - "is_present_in_meeting_ids": [], - "committee_ids": [ - 1 - ], - "committee_$_management_level": [], - "comment_$": [ - "1" - ], - "comment_$1": "Test comment a", - "number_$": [ - "1" - ], - "number_$1": "12345-67891", - "structure_level_$": [ - "1" - ], - "structure_level_$1": "Test structure level a", - "about_me_$": [ - "1" - ], - "about_me_$1": "What I want to say about me with a", - "vote_weight_$": [ - "1" - ], - "vote_weight_$1": "1.000000", - "group_$_ids": [ - "1" - ], - "group_$1_ids": [ - 5 - ], - "speaker_$_ids": [ - "1" - ], - "speaker_$1_ids": [ - 2, - 3, - 7, - 10, - 11, - 13 - ], - "personal_note_$_ids": [], - "supported_motion_$_ids": [], - "submitted_motion_$_ids": [], - "poll_voted_$_ids": [], - "assignment_candidate_$_ids": [ - "1" - ], - "assignment_candidate_$1_ids": [ - 3, - 5 - ], - "option_$_ids": [ - "1" - ], - "option_$1_ids": [ - 9, - 12 - ], - "vote_$_ids": [], - "projection_$_ids": [], - "vote_delegated_vote_$_ids": [], - "vote_delegated_$_to_id": [], - "vote_delegations_$_from_ids": [], - "meeting_ids": [ - 1 - ] - }, - "3": { - "id": 3, - "username": "b", - "title": "", - "first_name": "b", - "last_name": "", - "is_active": true, - "is_physical_person": true, - "password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758fIxDxvpkn6dDLRxT9DxJhZ/f04AL2oK2beICRFobSw53CI93U+dfN+w+NaL7BvrcR4JWuMj9NkH4dVjnnI0YTkg==", - "default_password": "jKwSLGCk", - "can_change_own_password": true, - "gender": "diverse", - "email": "", - "default_number": "", - "default_structure_level": "", - "default_vote_weight": "1.000000", - "last_email_send": null, - "is_demo_user": false, - "organization_management_level": null, - "is_present_in_meeting_ids": [], - "committee_ids": [], - "committee_$_management_level": [], - "comment_$": [ - "1" - ], - "comment_$1": "Test comment b as guest", - "number_$": [ - "1" - ], - "number_$1": "12345-67892", - "structure_level_$": [ - "1" - ], - "structure_level_$1": "Test structure level b", - "about_me_$": [ - "1" - ], - "about_me_$1": "What I want to say about me. B", - "vote_weight_$": [ - "1" - ], - "vote_weight_$1": "1.000000", - "group_$_ids": [ - "1" - ], - "group_$1_ids": [ - 5 - ], - "speaker_$_ids": [ - "1" - ], - "speaker_$1_ids": [ - 4, - 8, - 9 - ], - "personal_note_$_ids": [], - "supported_motion_$_ids": [ - "1" - ], - "supported_motion_$1_ids": [ - 3 - ], - "submitted_motion_$_ids": [], - "poll_voted_$_ids": [], - "assignment_candidate_$_ids": [ - "1" - ], - "assignment_candidate_$1_ids": [ - 2, - 4 - ], - "option_$_ids": [ - "1" - ], - "option_$1_ids": [ - 8, - 11 - ], - "vote_$_ids": [], - "projection_$_ids": [], - "vote_delegated_vote_$_ids": [], - "vote_delegated_$_to_id": [], - "vote_delegations_$_from_ids": [], - "meeting_ids": [ - 1 - ] - } - }, - "resource": { - "1": { - "id": 1, - "token": "web_header", - "filesize": 1462, - "mimetype": "image/png", - "organization_id": 1 - } - }, - "theme": { - "1": { - "id": 1, - "name": "OpenSlides Blue", - "accent_500": "#2196f3", - "primary_500": "#317796", - "warn_500": "#f06400", - "organization_id": 1, - "theme_for_organization_id": 1, - "accent_100": null, - "accent_200": null, - "accent_300": null, - "accent_400": null, - "accent_50": null, - "accent_600": null, - "accent_700": null, - "accent_800": null, - "accent_900": null, - "accent_a100": null, - "accent_a200": null, - "accent_a400": null, - "accent_a700": null, - "primary_100": null, - "primary_200": null, - "primary_300": null, - "primary_400": null, - "primary_50": null, - "primary_600": null, - "primary_700": null, - "primary_800": null, - "primary_900": null, - "primary_a100": null, - "primary_a200": null, - "primary_a400": null, - "primary_a700": null, - "warn_100": null, - "warn_200": null, - "warn_300": null, - "warn_400": null, - "warn_50": null, - "warn_600": null, - "warn_700": null, - "warn_800": null, - "warn_900": null, - "warn_a100": null, - "warn_a200": null, - "warn_a400": null, - "warn_a700": null - }, - "2": { - "id": 2, - "name": "OpenSlides Red", - "accent_500": "#03a9f4", - "primary_500": "#c31c23", - "warn_500": "#11c2a2", - "organization_id": 1, - "theme_for_organization_id": null, - "accent_100": null, - "accent_200": null, - "accent_300": null, - "accent_400": null, - "accent_50": null, - "accent_600": null, - "accent_700": null, - "accent_800": null, - "accent_900": null, - "accent_a100": null, - "accent_a200": null, - "accent_a400": null, - "accent_a700": null, - "primary_100": null, - "primary_200": null, - "primary_300": null, - "primary_400": null, - "primary_50": null, - "primary_600": null, - "primary_700": null, - "primary_800": null, - "primary_900": null, - "primary_a100": null, - "primary_a200": null, - "primary_a400": null, - "primary_a700": null, - "warn_100": null, - "warn_200": null, - "warn_300": null, - "warn_400": null, - "warn_50": null, - "warn_600": null, - "warn_700": null, - "warn_800": null, - "warn_900": null, - "warn_a100": null, - "warn_a200": null, - "warn_a400": null, - "warn_a700": null - }, - "3": { - "id": 3, - "name": "OpenSlides Green", - "accent_500": "#55c3b6", - "primary_500": "#46962c", - "warn_500": "#e359ce", - "organization_id": 1, - "theme_for_organization_id": null, - "accent_100": null, - "accent_200": null, - "accent_300": null, - "accent_400": null, - "accent_50": null, - "accent_600": null, - "accent_700": null, - "accent_800": null, - "accent_900": null, - "accent_a100": null, - "accent_a200": null, - "accent_a400": null, - "accent_a700": null, - "primary_100": null, - "primary_200": null, - "primary_300": null, - "primary_400": null, - "primary_50": null, - "primary_600": null, - "primary_700": null, - "primary_800": null, - "primary_900": null, - "primary_a100": null, - "primary_a200": null, - "primary_a400": null, - "primary_a700": null, - "warn_100": null, - "warn_200": null, - "warn_300": null, - "warn_400": null, - "warn_50": null, - "warn_600": null, - "warn_700": null, - "warn_800": null, - "warn_900": null, - "warn_a100": null, - "warn_a200": null, - "warn_a400": null, - "warn_a700": null - } - }, - "organization_tag": { - "1": { - "id": 1, - "name": "Orga Tag 1", - "color": "#317796", - "tagged_ids": [ - "committee/1", - "meeting/1" - ], - "organization_id": 1 - } - }, - "committee": { - "1": { - "id": 1, - "name": "Default committee", - "description": "Add description here", - "meeting_ids": [ - 1 - ], - "template_meeting_id": null, - "default_meeting_id": 1, - "user_ids": [ - 1, - 2 - ], - "forward_to_committee_ids": [], - "receive_forwardings_from_committee_ids": [], - "organization_tag_ids": [ - 1 - ], - "organization_id": 1 - } - }, - "meeting": { - "1": { - "id": 1, - "is_active_in_organization_id": 1, - "url_name": "os3_test", - "template_for_committee_id": null, - "enable_anonymous": false, - "custom_translations": {}, - "name": "OpenSlides - Die Veranstaltung (Teil II)", - "description": "Presentation and assembly system", - "location": "", - "start_time": 0, - "end_time": 0, - "imported_at": null, - "welcome_title": "Welcome to OpenSlides", - "welcome_text": "[Space for your welcome text.]", - "conference_show": false, - "conference_auto_connect": false, - "conference_los_restriction": false, - "conference_stream_url": "", - "conference_stream_poster_url": "", - "conference_open_microphone": true, - "conference_open_video": true, - "conference_auto_connect_next_speakers": 0, - "conference_enable_helpdesk": false, - "applause_enable": false, - "applause_type": "applause-type-bar", - "applause_show_level": false, - "applause_min_amount": 1, - "applause_max_amount": 0, - "applause_timeout": 5, - "applause_particle_image_url": "", - "jitsi_room_name": "", - "jitsi_domain": "", - "jitsi_room_password": "", - "enable_chat": true, - "projector_countdown_default_time": 60, - "projector_countdown_warning_time": 0, - "export_csv_encoding": "utf-8", - "export_csv_separator": ",", - "export_pdf_pagenumber_alignment": "center", - "export_pdf_fontsize": 10, - "export_pdf_pagesize": "A4", - "agenda_show_subtitles": false, - "agenda_enable_numbering": true, - "agenda_number_prefix": "", - "agenda_numeral_system": "arabic", - "agenda_item_creation": "default_yes", - "agenda_new_items_default_visibility": "internal", - "agenda_show_internal_items_on_projector": false, - "list_of_speakers_amount_last_on_projector": 1, - "list_of_speakers_amount_next_on_projector": -1, - "list_of_speakers_couple_countdown": true, - "list_of_speakers_show_amount_of_speakers_on_slide": true, - "list_of_speakers_present_users_only": false, - "list_of_speakers_show_first_contribution": false, - "list_of_speakers_enable_point_of_order_speakers": true, - "list_of_speakers_enable_pro_contra_speech": true, - "list_of_speakers_can_set_contribution_self": true, - "list_of_speakers_speaker_note_for_everyone": true, - "list_of_speakers_initially_closed": true, - "motions_default_workflow_id": 1, - "motions_default_amendment_workflow_id": 1, - "motions_default_statute_amendment_workflow_id": 2, - "motions_preamble": "The assembly may decide:", - "motions_default_line_numbering": "none", - "motions_line_length": 90, - "motions_reason_required": false, - "motions_enable_text_on_projector": true, - "motions_enable_reason_on_projector": true, - "motions_enable_sidebox_on_projector": true, - "motions_enable_recommendation_on_projector": true, - "motions_show_referring_motions": true, - "motions_show_sequential_number": true, - "motions_recommendations_by": "ABK", - "motions_statute_recommendations_by": "Statute ABK", - "motions_recommendation_text_mode": "original", - "motions_default_sorting": "number", - "motions_number_type": "per_category", - "motions_number_min_digits": 3, - "motions_number_with_blank": false, - "motions_statutes_enabled": true, - "motions_amendments_enabled": true, - "motions_amendments_in_main_list": true, - "motions_amendments_of_amendments": true, - "motions_amendments_prefix": "\u00c4-", - "motions_amendments_text_mode": "freestyle", - "motions_amendments_multiple_paragraphs": true, - "motions_supporters_min_amount": 1, - "motions_export_title": "Motions", - "motions_export_preamble": "an export preamble", - "motions_export_submitter_recommendation": true, - "motions_export_follow_recommendation": true, - "motion_poll_ballot_paper_selection": "CUSTOM_NUMBER", - "motion_poll_ballot_paper_number": 8, - "motion_poll_default_type": "analog", - "motion_poll_default_100_percent_base": "YNA", - "motion_poll_default_group_ids": [ - 2, - 3 - ], - "users_sort_by": "first_name", - "users_enable_presence_view": true, - "users_enable_vote_weight": true, - "users_allow_self_set_present": true, - "users_pdf_welcometitle": "Welcome to OpenSlides", - "users_pdf_welcometext": "[Place for your welcome and help text.]", - "users_pdf_url": "http://example.com:8000", - "users_pdf_wlan_ssid": "", - "users_pdf_wlan_password": "", - "users_pdf_wlan_encryption": "", - "users_email_sender": "Openslides", - "users_email_replyto": "", - "users_email_subject": "Your login for {event_name}", - "users_email_body": "Dear {name},\n\nthis is your OpenSlides login for the event {event_name}:\n\n {url}\n username: {username}\n password: {password}\n\nThis email was generated automatically.", - "assignments_export_title": "Elections", - "assignments_export_preamble": "", - "assignment_poll_ballot_paper_selection": "CUSTOM_NUMBER", - "assignment_poll_ballot_paper_number": 8, - "assignment_poll_add_candidates_to_list_of_speakers": true, - "assignment_poll_sort_poll_result_by_votes": true, - "assignment_poll_default_type": "nominal", - "assignment_poll_default_method": "votes", - "assignment_poll_default_100_percent_base": "valid", - "assignment_poll_default_group_ids": [ - 3, - 5 - ], - "poll_ballot_paper_selection": "CUSTOM_NUMBER", - "poll_ballot_paper_number": 8, - "poll_sort_poll_result_by_votes": true, - "poll_default_type": "nominal", - "poll_default_method": "votes", - "poll_default_100_percent_base": "valid", - "poll_default_group_ids": [ - 3 - ], - "poll_couple_countdown": true, - "projector_ids": [ - 1, - 2 - ], - "all_projection_ids": [ - 1, - 2, - 3, - 4 - ], - "projector_message_ids": [ - 1 - ], - "projector_countdown_ids": [ - 1, - 2 - ], - "tag_ids": [ - 1, - 2, - 3 - ], - "agenda_item_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "list_of_speakers_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18 - ], - "speaker_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "topic_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "group_ids": [ - 1, - 2, - 3, - 4, - 5 - ], - "mediafile_ids": [ - 1, - 2, - 3 - ], - "motion_ids": [ - 1, - 2, - 3, - 4 - ], - "motion_submitter_ids": [ - 1, - 2, - 3, - 4 - ], - "motion_comment_section_ids": [ - 1 - ], - "motion_comment_ids": [ - 1 - ], - "motion_state_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "motion_category_ids": [ - 1, - 2 - ], - "motion_block_ids": [ - 1 - ], - "motion_workflow_ids": [ - 1, - 2 - ], - "motion_statute_paragraph_ids": [], - "motion_change_recommendation_ids": [ - 4, - 5 - ], - "poll_ids": [ - 1, - 2, - 3, - 4, - 5 - ], - "option_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ], - "vote_ids": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "assignment_ids": [ - 1, - 2 - ], - "assignment_candidate_ids": [ - 1, - 2, - 3, - 4, - 5 - ], - "personal_note_ids": [ - 1 - ], - "chat_group_ids": [ - 1, - 2 - ], - "logo_$_id": [ - "web_header" - ], - "logo_$web_header_id": 3, - "font_$_id": [], - "committee_id": 1, - "default_meeting_for_committee_id": 1, - "organization_tag_ids": [ - 1 - ], - "present_user_ids": [ - 1 - ], - "user_ids": [ - 1, - 2, - 3 - ], - "reference_projector_id": 2, - "list_of_speakers_countdown_id": 1, - "poll_countdown_id": 2, - "default_projector_$_id": [ - "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" - ], - "default_projector_$agenda_all_items_id": 1, - "default_projector_$topics_id": 1, - "default_projector_$list_of_speakers_id": 2, - "default_projector_$current_list_of_speakers_id": 2, - "default_projector_$motion_id": 1, - "default_projector_$amendment_id": 1, - "default_projector_$motion_block_id": 1, - "default_projector_$assignment_id": 1, - "default_projector_$user_id": 1, - "default_projector_$mediafile_id": 1, - "default_projector_$projector_message_id": 1, - "default_projector_$projector_countdowns_id": 1, - "default_projector_$assignment_poll_id": 1, - "default_projector_$motion_poll_id": 1, - "default_projector_$poll_id": 1, - "projection_ids": [ - 3 - ], - "default_group_id": 1, - "admin_group_id": 2 - } - }, - "group": { - "1": { - "id": 1, - "name": "Default", - "admin_group_for_meeting_id": null, - "default_group_for_meeting_id": 1, - "permissions": [ - "agenda_item.can_see_internal", - "assignment.can_see", - "list_of_speakers.can_see", - "mediafile.can_see", - "meeting.can_see_frontpage", - "motion.can_see", - "projector.can_see", - "user.can_see" - ], - "user_ids": [], - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [ - 1 - ], - "write_chat_group_ids": [ - 1 - ], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Admin", - "admin_group_for_meeting_id": 1, - "default_group_for_meeting_id": null, - "permissions": [], - "user_ids": [ - 1 - ], - "mediafile_access_group_ids": [ - 1 - ], - "mediafile_inherited_access_group_ids": [ - 1, - 3 - ], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [ - 1, - 2 - ], - "write_chat_group_ids": [ - 1, - 2 - ], - "poll_ids": [ - 5 - ], - "used_as_motion_poll_default_id": 1, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - "3": { - "id": 3, - "name": "Staff", - "admin_group_for_meeting_id": null, - "default_group_for_meeting_id": null, - "permissions": [ - "agenda_item.can_manage", - "assignment.can_manage", - "assignment.can_nominate_self", - "list_of_speakers.can_be_speaker", - "list_of_speakers.can_manage", - "mediafile.can_manage", - "meeting.can_see_frontpage", - "meeting.can_see_history", - "motion.can_manage", - "poll.can_manage", - "projector.can_manage", - "tag.can_manage", - "user.can_manage" - ], - "user_ids": [], - "mediafile_access_group_ids": [ - 1 - ], - "mediafile_inherited_access_group_ids": [ - 1, - 3 - ], - "read_comment_section_ids": [ - 1 - ], - "write_comment_section_ids": [ - 1 - ], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": 1, - "used_as_assignment_poll_default_id": 1, - "used_as_poll_default_id": 1, - "meeting_id": 1 - }, - "4": { - "id": 4, - "name": "Committees", - "admin_group_for_meeting_id": null, - "default_group_for_meeting_id": null, - "permissions": [ - "agenda_item.can_see_internal", - "assignment.can_see", - "list_of_speakers.can_see", - "mediafile.can_see", - "meeting.can_see_frontpage", - "motion.can_create", - "motion.can_create_amendments", - "motion.can_support", - "projector.can_see", - "user.can_see" - ], - "user_ids": [], - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - "5": { - "id": 5, - "name": "Delegates", - "admin_group_for_meeting_id": null, - "default_group_for_meeting_id": null, - "permissions": [ - "agenda_item.can_see_internal", - "assignment.can_nominate_other", - "assignment.can_nominate_self", - "list_of_speakers.can_be_speaker", - "mediafile.can_see", - "meeting.can_see_autopilot", - "meeting.can_see_frontpage", - "motion.can_create", - "motion.can_create_amendments", - "motion.can_support", - "projector.can_see", - "user.can_see" - ], - "user_ids": [ - 2, - 3 - ], - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [ - 1 - ], - "write_comment_section_ids": [ - 1 - ], - "read_chat_group_ids": [ - 1, - 2 - ], - "write_chat_group_ids": [ - 1, - 2 - ], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": 1, - "used_as_poll_default_id": null, - "meeting_id": 1 - } - }, - "personal_note": { - "1": { - "id": 1, - "note": "

Some content..

", - "star": false, - "user_id": 1, - "content_object_id": "motion/2", - "meeting_id": 1 - } - }, - "tag": { - "1": { - "id": 1, - "name": "Tag1", - "tagged_ids": [ - "motion/2" - ], - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Tag2", - "tagged_ids": [ - "assignment/2", - "agenda_item/4" - ], - "meeting_id": 1 - }, - "3": { - "id": 3, - "name": "Tag3", - "tagged_ids": [ - "motion/2", - "motion/3" - ], - "meeting_id": 1 - } - }, - "agenda_item": { - "3": { - "id": 3, - "item_number": "", - "comment": null, - "closed": false, - "type": "common", - "is_internal": false, - "is_hidden": false, - "duration": null, - "weight": 2, - "level": 0, - "content_object_id": "topic/1", - "parent_id": null, - "child_ids": [ - 14 - ], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "14": { - "id": 14, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 4, - "level": 1, - "content_object_id": "assignment/2", - "parent_id": 3, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "4": { - "id": 4, - "item_number": "", - "comment": null, - "closed": false, - "type": "common", - "is_internal": false, - "is_hidden": false, - "duration": null, - "weight": 6, - "level": 0, - "content_object_id": "topic/2", - "parent_id": null, - "child_ids": [], - "tag_ids": [ - 2 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "5": { - "id": 5, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 8, - "level": 0, - "content_object_id": "topic/3", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "6": { - "id": 6, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 10, - "level": 0, - "content_object_id": "topic/4", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "7": { - "id": 7, - "item_number": "", - "comment": null, - "closed": false, - "type": "common", - "is_internal": false, - "is_hidden": false, - "duration": null, - "weight": 12, - "level": 0, - "content_object_id": "topic/5", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "8": { - "id": 8, - "item_number": "", - "comment": null, - "closed": false, - "type": "common", - "is_internal": false, - "is_hidden": false, - "duration": null, - "weight": 14, - "level": 0, - "content_object_id": "topic/6", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "9": { - "id": 9, - "item_number": "", - "comment": null, - "closed": false, - "type": "common", - "is_internal": false, - "is_hidden": false, - "duration": null, - "weight": 16, - "level": 0, - "content_object_id": "topic/7", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "10": { - "id": 10, - "item_number": "", - "comment": null, - "closed": false, - "type": "hidden", - "is_internal": false, - "is_hidden": true, - "duration": null, - "weight": 18, - "level": 0, - "content_object_id": "topic/8", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "1": { - "id": 1, - "item_number": "", - "comment": null, - "closed": false, - "type": "common", - "is_internal": false, - "is_hidden": false, - "duration": null, - "weight": 20, - "level": 0, - "content_object_id": "motion/1", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "2": { - "id": 2, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 22, - "level": 0, - "content_object_id": "motion/2", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "11": { - "id": 11, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 24, - "level": 0, - "content_object_id": "assignment/1", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "12": { - "id": 12, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 26, - "level": 0, - "content_object_id": "motion/3", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "13": { - "id": 13, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 28, - "level": 0, - "content_object_id": "motion/4", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "15": { - "id": 15, - "item_number": "", - "comment": null, - "closed": false, - "type": "internal", - "is_internal": true, - "is_hidden": false, - "duration": null, - "weight": 30, - "level": 0, - "content_object_id": "motion_block/1", - "parent_id": null, - "child_ids": [], - "tag_ids": [], - "projection_ids": [], - "meeting_id": 1 - } - }, - "list_of_speakers": { - "1": { - "id": 1, - "closed": false, - "content_object_id": "motion/1", - "speaker_ids": [ - 11, - 12, - 13 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "2": { - "id": 2, - "closed": false, - "content_object_id": "motion/2", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "3": { - "id": 3, - "closed": false, - "content_object_id": "topic/1", - "speaker_ids": [ - 1, - 2 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "4": { - "id": 4, - "closed": false, - "content_object_id": "topic/2", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "5": { - "id": 5, - "closed": false, - "content_object_id": "topic/3", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "6": { - "id": 6, - "closed": false, - "content_object_id": "topic/4", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "7": { - "id": 7, - "closed": false, - "content_object_id": "topic/5", - "speaker_ids": [ - 3, - 4 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "8": { - "id": 8, - "closed": false, - "content_object_id": "topic/6", - "speaker_ids": [ - 5 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "9": { - "id": 9, - "closed": false, - "content_object_id": "topic/7", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "10": { - "id": 10, - "closed": false, - "content_object_id": "topic/8", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "11": { - "id": 11, - "closed": false, - "content_object_id": "assignment/1", - "speaker_ids": [ - 6, - 7, - 8 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "12": { - "id": 12, - "closed": false, - "content_object_id": "motion/3", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "13": { - "id": 13, - "closed": false, - "content_object_id": "motion/4", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "14": { - "id": 14, - "closed": false, - "content_object_id": "assignment/2", - "speaker_ids": [ - 9, - 10 - ], - "projection_ids": [], - "meeting_id": 1 - }, - "15": { - "id": 15, - "closed": false, - "content_object_id": "motion_block/1", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "16": { - "id": 16, - "closed": false, - "content_object_id": "mediafile/1", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "17": { - "id": 17, - "closed": false, - "content_object_id": "mediafile/2", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "18": { - "id": 18, - "closed": false, - "content_object_id": "mediafile/3", - "speaker_ids": [], - "projection_ids": [], - "meeting_id": 1 - } - }, - "speaker": { - "11": { - "id": 11, - "begin_time": 1584512636, - "end_time": 1584512638, - "weight": null, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 1, - "user_id": 2, - "meeting_id": 1 - }, - "12": { - "id": 12, - "begin_time": null, - "end_time": null, - "weight": 2, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 1, - "user_id": 1, - "meeting_id": 1 - }, - "13": { - "id": 13, - "begin_time": null, - "end_time": null, - "weight": 3, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 1, - "user_id": 2, - "meeting_id": 1 - }, - "1": { - "id": 1, - "begin_time": null, - "end_time": null, - "weight": 1, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 3, - "user_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "begin_time": null, - "end_time": null, - "weight": 0, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 3, - "user_id": 2, - "meeting_id": 1 - }, - "3": { - "id": 3, - "begin_time": null, - "end_time": null, - "weight": 1, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 7, - "user_id": 2, - "meeting_id": 1 - }, - "4": { - "id": 4, - "begin_time": null, - "end_time": null, - "weight": 2, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 7, - "user_id": 3, - "meeting_id": 1 - }, - "5": { - "id": 5, - "begin_time": null, - "end_time": null, - "weight": 1, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 8, - "user_id": 1, - "meeting_id": 1 - }, - "6": { - "id": 6, - "begin_time": null, - "end_time": null, - "weight": 1, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 11, - "user_id": 1, - "meeting_id": 1 - }, - "7": { - "id": 7, - "begin_time": null, - "end_time": null, - "weight": 2, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 11, - "user_id": 2, - "meeting_id": 1 - }, - "8": { - "id": 8, - "begin_time": null, - "end_time": null, - "weight": 3, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 11, - "user_id": 3, - "meeting_id": 1 - }, - "9": { - "id": 9, - "begin_time": null, - "end_time": null, - "weight": 1, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 14, - "user_id": 3, - "meeting_id": 1 - }, - "10": { - "id": 10, - "begin_time": null, - "end_time": null, - "weight": 2, - "speech_state": null, - "note": null, - "point_of_order": false, - "list_of_speakers_id": 14, - "user_id": 2, - "meeting_id": 1 - } - }, - "topic": { - "1": { - "id": 1, - "title": "A", - "text": "", - "attachment_ids": [], - "agenda_item_id": 3, - "list_of_speakers_id": 3, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "2": { - "id": 2, - "title": "B", - "text": "", - "attachment_ids": [], - "agenda_item_id": 4, - "list_of_speakers_id": 4, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "3": { - "id": 3, - "title": "C", - "text": "", - "attachment_ids": [], - "agenda_item_id": 5, - "list_of_speakers_id": 5, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "4": { - "id": 4, - "title": "D", - "text": "", - "attachment_ids": [], - "agenda_item_id": 6, - "list_of_speakers_id": 6, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "5": { - "id": 5, - "title": "E", - "text": "", - "attachment_ids": [], - "agenda_item_id": 7, - "list_of_speakers_id": 7, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "6": { - "id": 6, - "title": "F", - "text": "", - "attachment_ids": [], - "agenda_item_id": 8, - "list_of_speakers_id": 8, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "7": { - "id": 7, - "title": "G", - "text": "", - "attachment_ids": [], - "agenda_item_id": 9, - "list_of_speakers_id": 9, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "8": { - "id": 8, - "title": "H", - "text": "", - "attachment_ids": [], - "agenda_item_id": 10, - "list_of_speakers_id": 10, - "tag_ids": [], - "option_ids": [], - "projection_ids": [], - "meeting_id": 1 - } - }, - "motion": { - "1": { - "id": 1, - "number": "A1", - "number_value": 1, - "sequential_number": 1, - "title": "test", - "text": "", - "amendment_paragraph_$": [], - "modified_final_version": "

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi.Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem.Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend sapien. Vestibulum purus quam, scelerisque ut, mollis sed, nonummy id, metus. Nullam accumsan lorem in dui. Cras ultricies mi eu turpis hendrerit fringilla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In ac dui quis mi consectetuer lacinia. Nam pretium turpis et arcu. Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Sed aliquam ultrices mauris. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Praesent adipiscing. Phasellus ullamcorper ipsum rutrum nunc. Nunc nonummy metus. Vestibulum volutpat pretium libero. Cras id dui. Aenean ut

", - "reason": "", - "category_weight": 10000, - "state_extension": null, - "recommendation_extension": null, - "sort_weight": 10000, - "created": 1584512346, - "last_modified": 1584512346, - "lead_motion_id": null, - "amendment_ids": [ - 2 - ], - "sort_parent_id": null, - "sort_child_ids": [], - "origin_id": null, - "derived_motion_ids": [], - "all_origin_ids": [], - "all_derived_motion_ids": [], - "state_id": 1, - "recommendation_id": null, - "recommendation_extension_reference_ids": [], - "referenced_in_motion_recommendation_extension_ids": [], - "category_id": 2, - "block_id": null, - "submitter_ids": [ - 1 - ], - "supporter_ids": [], - "poll_ids": [ - 1, - 2 - ], - "option_ids": [ - 1, - 3 - ], - "change_recommendation_ids": [], - "statute_paragraph_id": null, - "comment_ids": [ - 1 - ], - "agenda_item_id": 1, - "list_of_speakers_id": 1, - "tag_ids": [], - "attachment_ids": [], - "projection_ids": [], - "personal_note_ids": [], - "meeting_id": 1 - }, - "2": { - "id": 2, - "number": "1 - 1", - "number_value": 1, - "sequential_number": 2, - "title": "\u00c4nderungsantrag zu 1", - "text": "

lömk

", - "amendment_paragraph_$": [], - "modified_final_version": "", - "reason": "", - "category_weight": 10000, - "state_extension": "

regeer

", - "recommendation_extension": null, - "sort_weight": 10000, - "created": 1584512346, - "last_modified": 1584512346, - "lead_motion_id": 1, - "amendment_ids": [], - "sort_parent_id": null, - "sort_child_ids": [], - "origin_id": null, - "derived_motion_ids": [], - "all_origin_ids": [], - "all_derived_motion_ids": [], - "state_id": 1, - "recommendation_id": null, - "recommendation_extension_reference_ids": [], - "referenced_in_motion_recommendation_extension_ids": [], - "category_id": 1, - "block_id": null, - "submitter_ids": [ - 2 - ], - "supporter_ids": [], - "poll_ids": [], - "option_ids": [], - "change_recommendation_ids": [], - "statute_paragraph_id": null, - "comment_ids": [], - "agenda_item_id": 2, - "list_of_speakers_id": 2, - "tag_ids": [ - 1, - 3 - ], - "attachment_ids": [], - "projection_ids": [], - "personal_note_ids": [ - 1 - ], - "meeting_id": 1 - }, - "3": { - "id": 3, - "number": "2", - "number_value": 2, - "sequential_number": 3, - "title": "ohne", - "text": "

sf

", - "amendment_paragraph_$": [], - "modified_final_version": "", - "reason": "", - "category_weight": 100, - "state_extension": null, - "recommendation_extension": null, - "sort_weight": 10000, - "created": 1584512346, - "last_modified": 1584512346, - "lead_motion_id": null, - "amendment_ids": [], - "sort_parent_id": null, - "sort_child_ids": [], - "origin_id": null, - "derived_motion_ids": [], - "all_origin_ids": [], - "all_derived_motion_ids": [], - "state_id": 1, - "recommendation_id": null, - "recommendation_extension_reference_ids": [], - "referenced_in_motion_recommendation_extension_ids": [], - "category_id": 2, - "block_id": 1, - "submitter_ids": [ - 3 - ], - "supporter_ids": [ - 3 - ], - "poll_ids": [], - "option_ids": [], - "change_recommendation_ids": [ - 5 - ], - "statute_paragraph_id": null, - "comment_ids": [], - "agenda_item_id": 12, - "list_of_speakers_id": 12, - "tag_ids": [ - 3 - ], - "attachment_ids": [], - "projection_ids": [], - "personal_note_ids": [], - "meeting_id": 1 - }, - "4": { - "id": 4, - "number": "3", - "number_value": 3, - "sequential_number": 4, - "title": "komplex", - "text": "

sdf sdfpdfkw wef

\n\n

wepkf 

\n\n

weüpfk 

\n\n

weüpfdfg

", - "amendment_paragraph_$": [], - "modified_final_version": "", - "reason": "", - "category_weight": 10000, - "state_extension": null, - "recommendation_extension": null, - "recommendation_extension_reference_ids": [], - "referenced_in_motion_recommendation_extension_ids": [], - "sort_weight": 10000, - "created": 1584512346, - "last_modified": 1584512346, - "lead_motion_id": null, - "amendment_ids": [], - "sort_parent_id": null, - "sort_child_ids": [], - "origin_id": null, - "derived_motion_ids": [], - "all_origin_ids": [], - "all_derived_motion_ids": [], - "state_id": 7, - "recommendation_id": null, - "category_id": null, - "block_id": 1, - "submitter_ids": [ - 4 - ], - "supporter_ids": [], - "poll_ids": [], - "option_ids": [], - "change_recommendation_ids": [ - 4 - ], - "statute_paragraph_id": null, - "comment_ids": [], - "agenda_item_id": 13, - "list_of_speakers_id": 13, - "tag_ids": [], - "attachment_ids": [ - 2 - ], - "projection_ids": [ - 2 - ], - "personal_note_ids": [], - "meeting_id": 1 - } - }, - "motion_submitter": { - "1": { - "id": 1, - "weight": 1, - "user_id": 1, - "motion_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "weight": 1, - "user_id": 1, - "motion_id": 2, - "meeting_id": 1 - }, - "3": { - "id": 3, - "weight": 1, - "user_id": 1, - "motion_id": 3, - "meeting_id": 1 - }, - "4": { - "id": 4, - "weight": 1, - "user_id": 1, - "motion_id": 4, - "meeting_id": 1 - } - }, - "motion_comment": { - "1": { - "id": 1, - "comment": "

sgsdklf jhsölkf sdölkdsf jglkfd

", - "motion_id": 1, - "section_id": 1, - "meeting_id": 1 - } - }, - "motion_comment_section": { - "1": { - "id": 1, - "name": "Neu", - "weight": 10000, - "comment_ids": [ - 1 - ], - "read_group_ids": [ - 3, - 5 - ], - "write_group_ids": [ - 3, - 5 - ], - "meeting_id": 1 - } - }, - "motion_category": { - "1": { - "id": 1, - "name": "Cad", - "prefix": "C", - "weight": 2, - "level": 0, - "parent_id": null, - "child_ids": [ - 2 - ], - "motion_ids": [ - 2 - ], - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Bildung", - "prefix": "B", - "weight": 4, - "level": 1, - "parent_id": 1, - "child_ids": [], - "motion_ids": [ - 1, - 3 - ], - "meeting_id": 1 - } - }, - "motion_block": { - "1": { - "id": 1, - "title": "BLOCK A", - "internal": false, - "motion_ids": [ - 3, - 4 - ], - "agenda_item_id": 15, - "list_of_speakers_id": 15, - "projection_ids": [ - 1 - ], - "meeting_id": 1 - } - }, - "motion_change_recommendation": { - "4": { - "id": 4, - "rejected": false, - "internal": false, - "type": "deletion", - "other_description": "", - "line_from": 1, - "line_to": 2, - "text": "

sdf sdfpef

", - "creation_time": 1584512345, - "motion_id": 4, - "meeting_id": 1 - }, - "5": { - "id": 5, - "rejected": false, - "internal": false, - "type": "replacement", - "other_description": "", - "line_from": 1, - "line_to": 2, - "text": "

skp

", - "creation_time": 1584512667, - "motion_id": 3, - "meeting_id": 1 - } - }, - "motion_state": { - "1": { - "id": 1, - "name": "submitted", - "weight": 1, - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": true, - "allow_create_poll": true, - "allow_submitter_edit": true, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [ - 2, - 3, - 4 - ], - "previous_state_ids": [], - "motion_ids": [ - 1, - 2, - 3 - ], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "accepted", - "weight": 2, - "recommendation_label": "Acceptance", - "css_class": "green", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 1 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "3": { - "id": 3, - "name": "rejected", - "weight": 3, - "recommendation_label": "Rejection", - "css_class": "red", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 1 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "4": { - "id": 4, - "name": "not decided", - "weight": 4, - "recommendation_label": "No decision", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [ - 1 - ], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "5": { - "id": 5, - "name": "in progress", - "weight": 5, - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": true, - "dont_set_identifier": true, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [6, 10], - "previous_state_ids": [], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": 2, - "meeting_id": 1 - }, - "6": { - "id": 6, - "name": "submitted", - "weight": 6, - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": true, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": true, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [7, 10, 15], - "previous_state_ids": [5], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "7": { - "id": 7, - "name": "permitted", - "weight": 7, - "recommendation_label": "Permission", - "css_class": "lightblue", - "restrictions": [], - "allow_support": false, - "allow_create_poll": true, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - "next_state_ids": [8, 9, 10, 11, 12, 13, 14], - "previous_state_ids": [6], - "motion_ids": [4], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "8": { - "id": 8, - "name": "accepted", - "weight": 8, - "recommendation_label": "Acceptance", - "css_class": "green", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "9": { - "id": 9, - "name": "rejected", - "weight": 9, - "recommendation_label": "Rejection", - "css_class": "red", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "10": { - "id": 10, - "name": "withdrawn", - "weight": 10, - "recommendation_label": null, - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [5, 6, 7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "11": { - "id": 11, - "name": "adjourned", - "weight": 11, - "recommendation_label": "Adjournment", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "12": { - "id": 12, - "name": "not concerned", - "weight": 12, - "recommendation_label": "No concernment", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "13": { - "id": 13, - "name": "referred to committee", - "weight": 13, - "recommendation_label": "Referral to committee", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "14": { - "id": 14, - "name": "needs review", - "weight": 14, - "recommendation_label": null, - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [7], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - "15": { - "id": 15, - "name": "rejected (not authorized)", - "weight": 15, - "recommendation_label": "Rejection (not authorized)", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "dont_set_identifier": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "do_not_merge", - "show_recommendation_extension_field": false, - "next_state_ids": [], - "previous_state_ids": [6], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 2, - "first_state_of_workflow_id": null, - "meeting_id": 1 - } - }, - "motion_workflow": { - "1": { - "id": 1, - "name": "Simple Workflow", - "state_ids": [ - 1, - 2, - 3, - 4 - ], - "first_state_id": 1, - "default_workflow_meeting_id": 1, - "default_amendment_workflow_meeting_id": 1, - "default_statute_amendment_workflow_meeting_id": null, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Complex Workflow", - "state_ids": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], - "first_state_id": 5, - "default_workflow_meeting_id": null, - "default_amendment_workflow_meeting_id": null, - "default_statute_amendment_workflow_meeting_id": 1, - "meeting_id": 1 - } - }, - "motion_statute_paragraph": {}, - "poll": { - "1": { - "id": 1, - "title": "1", - "description": "", - "type": "analog", - "backend": "long", - "is_pseudoanonymized": false, - "pollmethod": "YNA", - "state": "finished", - "min_votes_amount": 1, - "max_votes_amount": 1, - "global_yes": false, - "global_no": false, - "global_abstain": false, - "onehundred_percent_base": "YNA", - "votesvalid": "2.000000", - "votesinvalid": "9.000000", - "votescast": "2.000000", - "entitled_users_at_stop": null, - "content_object_id": "motion/1", - "option_ids": [ - 1 - ], - "global_option_id": 2, - "voted_ids": [], - "entitled_group_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "2": { - "id": 2, - "title": "2", - "description": "", - "type": "analog", - "backend": "long", - "is_pseudoanonymized": false, - "pollmethod": "YNA", - "state": "created", - "min_votes_amount": 1, - "max_votes_amount": 1, - "global_yes": false, - "global_no": false, - "global_abstain": false, - "onehundred_percent_base": "YNA", - "votesvalid": null, - "votesinvalid": null, - "votescast": null, - "entitled_users_at_stop": null, - "content_object_id": "motion/1", - "option_ids": [ - 3 - ], - "global_option_id": 4, - "voted_ids": [], - "entitled_group_ids": [], - "projection_ids": [], - "meeting_id": 1 - }, - "3": { - "id": 3, - "title": "1", - "description": "", - "type": "analog", - "backend": "long", - "is_pseudoanonymized": false, - "pollmethod": "YNA", - "state": "created", - "min_votes_amount": 1, - "max_votes_amount": 1, - "global_yes": false, - "global_no": true, - "global_abstain": true, - "onehundred_percent_base": "YNA", - "votesvalid": null, - "votesinvalid": null, - "votescast": null, - "entitled_users_at_stop": null, - "content_object_id": "assignment/1", - "voted_ids": [], - "entitled_group_ids": [], - "option_ids": [ - 5 - ], - "global_option_id": 6, - "projection_ids": [], - "meeting_id": 1 - }, - "4": { - "id": 4, - "title": "2", - "description": "", - "type": "analog", - "backend": "long", - "is_pseudoanonymized": false, - "pollmethod": "Y", - "state": "finished", - "min_votes_amount": 1, - "max_votes_amount": 1, - "global_yes": false, - "global_no": true, - "global_abstain": true, - "onehundred_percent_base": "Y", - "votesvalid": "9.000000", - "votesinvalid": "2.000000", - "votescast": "16.000000", - "entitled_users_at_stop": null, - "content_object_id": "assignment/1", - "voted_ids": [], - "entitled_group_ids": [], - "option_ids": [ - 7, - 8, - 9 - ], - "global_option_id": 10, - "projection_ids": [], - "meeting_id": 1 - }, - "5": { - "id": 5, - "title": "Wahlgang", - "description": "", - "type": "named", - "backend": "long", - "is_pseudoanonymized": false, - "pollmethod": "Y", - "state": "finished", - "min_votes_amount": 1, - "max_votes_amount": 1, - "global_yes": false, - "global_no": true, - "global_abstain": false, - "onehundred_percent_base": "valid", - "votesvalid": "1.000000", - "votesinvalid": "0.000000", - "votescast": "1.000000", - "entitled_users_at_stop": null, - "content_object_id": "assignment/2", - "voted_ids": [ - 1 - ], - "entitled_group_ids": [ - 2 - ], - "option_ids": [ - 11, - 12 - ], - "global_option_id": 13, - "projection_ids": [], - "meeting_id": 1 - } - }, - "option": { - "1": { - "id": 1, - "yes": "2.000000", - "no": "4.000000", - "abstain": "1.000000", - "weight": 1, - "text": null, - "poll_id": 1, - "used_as_global_option_in_poll_id": null, - "content_object_id": "motion/1", - "vote_ids": [ - 1, - 2, - 3 - ], - "meeting_id": 1 - }, - "2": { - "id": 2, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": null, - "used_as_global_option_in_poll_id": 1, - "content_object_id": null, - "vote_ids": [], - "meeting_id": 1 - }, - "3": { - "id": 3, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": 2, - "used_as_global_option_in_poll_id": null, - "content_object_id": "motion/1", - "vote_ids": [], - "meeting_id": 1 - }, - "4": { - "id": 4, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": null, - "used_as_global_option_in_poll_id": 2, - "content_object_id": null, - "vote_ids": [], - "meeting_id": 1 - }, - "5": { - "id": 5, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": 3, - "used_as_global_option_in_poll_id": null, - "content_object_id": "user/1", - "vote_ids": [], - "meeting_id": 1 - }, - "6": { - "id": 6, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": null, - "used_as_global_option_in_poll_id": 3, - "content_object_id": null, - "vote_ids": [], - "meeting_id": 1 - }, - "7": { - "id": 7, - "yes": "3.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": 4, - "used_as_global_option_in_poll_id": null, - "content_object_id": "user/1", - "vote_ids": [ - 4 - ], - "meeting_id": 1 - }, - "8": { - "id": 8, - "yes": "7.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 2, - "text": null, - "poll_id": 4, - "used_as_global_option_in_poll_id": null, - "content_object_id": "user/3", - "vote_ids": [ - 5 - ], - "meeting_id": 1 - }, - "9": { - "id": 9, - "yes": "2.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 3, - "text": null, - "poll_id": 4, - "used_as_global_option_in_poll_id": null, - "content_object_id": "user/2", - "vote_ids": [ - 6 - ], - "meeting_id": 1 - }, - "10": { - "id": 10, - "yes": "0.000000", - "no": "2.000000", - "abstain": "1.000000", - "weight": 1, - "text": null, - "poll_id": null, - "used_as_global_option_in_poll_id": 4, - "content_object_id": null, - "vote_ids": [ - 7, - 8 - ], - "meeting_id": 1 - }, - "11": { - "id": 11, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": 5, - "used_as_global_option_in_poll_id": null, - "content_object_id": "user/3", - "vote_ids": [], - "meeting_id": 1 - }, - "12": { - "id": 12, - "yes": "1.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 2, - "text": null, - "poll_id": 5, - "used_as_global_option_in_poll_id": null, - "content_object_id": "user/2", - "vote_ids": [ - 9 - ], - "meeting_id": 1 - }, - "13": { - "id": 13, - "yes": "0.000000", - "no": "0.000000", - "abstain": "0.000000", - "weight": 1, - "text": null, - "poll_id": null, - "used_as_global_option_in_poll_id": 5, - "content_object_id": null, - "vote_ids": [], - "meeting_id": 1 - } - }, - "vote": { - "1": { - "id": 1, - "weight": "2.000000", - "value": "Y", - "user_token": "SNuxJc7W93bnhAiA", - "user_id": null, - "delegated_user_id": null, - "option_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "weight": "4.000000", - "value": "N", - "user_token": "4bgn4RBjNlIeO7vj", - "user_id": null, - "delegated_user_id": null, - "option_id": 1, - "meeting_id": 1 - }, - "3": { - "id": 3, - "weight": "1.000000", - "value": "A", - "user_token": "xLBFgo3O1pAfGZ0h", - "user_id": null, - "delegated_user_id": null, - "option_id": 1, - "meeting_id": 1 - }, - "4": { - "id": 4, - "value": "Y", - "weight": "3.000000", - "user_token": "neT9r5YkT9U8yJfa", - "user_id": null, - "delegated_user_id": null, - "option_id": 7, - "meeting_id": 1 - }, - "5": { - "id": 5, - "value": "Y", - "weight": "7.000000", - "user_token": "U5YSuLUI1G5rNOHn", - "user_id": null, - "delegated_user_id": null, - "option_id": 8, - "meeting_id": 1 - }, - "6": { - "id": 6, - "value": "Y", - "weight": "2.000000", - "user_token": "jkNKIiJr8Dl0yOXI", - "user_id": null, - "delegated_user_id": null, - "option_id": 9, - "meeting_id": 1 - }, - "7": { - "id": 7, - "value": "N", - "weight": "2.000000", - "user_token": "Z1cxOviuelzPT2rm", - "user_id": null, - "delegated_user_id": null, - "option_id": 10, - "meeting_id": 1 - }, - "8": { - "id": 8, - "value": "A", - "weight": "1.000000", - "user_token": "daUZh16fXCAu5DBL", - "user_id": null, - "delegated_user_id": null, - "option_id": 10, - "meeting_id": 1 - }, - "9": { - "id": 9, - "value": "Y", - "weight": "1.000000", - "user_token": "ivgipZ18D9Xac8pd", - "user_id": 1, - "delegated_user_id": 1, - "option_id": 12, - "meeting_id": 1 - } - }, - "assignment": { - "1": { - "id": 1, - "title": "Wahl", - "description": "", - "open_posts": 1, - "phase": "voting", - "default_poll_description": "", - "number_poll_candidates": false, - "candidate_ids": [ - 1, - 2, - 3 - ], - "poll_ids": [ - 3, - 4 - ], - "agenda_item_id": 11, - "list_of_speakers_id": 11, - "tag_ids": [], - "attachment_ids": [], - "projection_ids": [ - 4 - ], - "meeting_id": 1 - }, - "2": { - "id": 2, - "title": "2. Wahl", - "description": "

B-Ware

", - "open_posts": 1, - "phase": "search", - "default_poll_description": "", - "number_poll_candidates": true, - "candidate_ids": [ - 4, - 5 - ], - "poll_ids": [ - 5 - ], - "agenda_item_id": 14, - "list_of_speakers_id": 14, - "tag_ids": [ - 2 - ], - "attachment_ids": [], - "projection_ids": [], - "meeting_id": 1 - } - }, - "assignment_candidate": { - "1": { - "id": 1, - "weight": 1, - "assignment_id": 1, - "user_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "weight": 2, - "assignment_id": 1, - "user_id": 3, - "meeting_id": 1 - }, - "3": { - "id": 3, - "weight": 3, - "assignment_id": 1, - "user_id": 2, - "meeting_id": 1 - }, - "4": { - "id": 4, - "weight": 1, - "assignment_id": 2, - "user_id": 3, - "meeting_id": 1 - }, - "5": { - "id": 5, - "weight": 2, - "assignment_id": 2, - "user_id": 2, - "meeting_id": 1 - } - }, - "mediafile": { - "1": { - "id": 1, - "title": "logos", - "is_directory": true, - "filesize": null, - "filename": null, - "mimetype": null, - "pdf_information": {}, - "create_timestamp": 1584513763, - "is_public": false, - "access_group_ids": [ - 2, - 3 - ], - "inherited_access_group_ids": [ - 2, - 3 - ], - "parent_id": null, - "child_ids": [ - 3 - ], - "list_of_speakers_id": 16, - "projection_ids": [], - "attachment_ids": [], - "used_as_logo_$_in_meeting_id": [], - "used_as_font_$_in_meeting_id": [], - "meeting_id": 1 - }, - "2": { - "id": 2, - "title": "A.txt", - "is_directory": false, - "filesize": 3, - "filename": "A.txt", - "mimetype": "text/plain", - "pdf_information": {}, - "create_timestamp": 1584513771, - "is_public": true, - "access_group_ids": [], - "inherited_access_group_ids": [], - "parent_id": null, - "child_ids": [], - "list_of_speakers_id": 17, - "projection_ids": [], - "attachment_ids": [ - "motion/4" - ], - "used_as_logo_$_in_meeting_id": [], - "used_as_font_$_in_meeting_id": [], - "meeting_id": 1 - }, - "3": { - "id": 3, - "title": "in.jpg", - "is_directory": false, - "filesize": 1462, - "filename": "in.jpg", - "mimetype": "image/png", - "pdf_information": {}, - "create_timestamp": 1584513791, - "is_public": false, - "access_group_ids": [], - "inherited_access_group_ids": [ - 2, - 3 - ], - "parent_id": 1, - "child_ids": [], - "list_of_speakers_id": 18, - "projection_ids": [], - "attachment_ids": [], - "used_as_logo_$_in_meeting_id": [ - "web_header" - ], - "used_as_logo_$web_header_in_meeting_id": 1, - "used_as_font_$_in_meeting_id": [], - "meeting_id": 1 - } - }, - "projector": { - "1": { - "id": 1, - "name": "Default projector", - "scale": 0, - "scroll": 0, - "width": 1220, - "aspect_ratio_numerator": 4, - "aspect_ratio_denominator": 3, - "color": "#000000", - "background_color": "#ffffff", - "header_background_color": "#317796", - "header_font_color": "#f5f5f5", - "header_h1_color": "#317796", - "chyron_background_color": "#317796", - "chyron_font_color": "#ffffff", - "show_header_footer": true, - "show_title": true, - "show_logo": true, - "show_clock": true, - "current_projection_ids": [ - 3, - 4 - ], - "preview_projection_ids": [ - 1, - 2 - ], - "history_projection_ids": [], - "used_as_reference_projector_meeting_id": null, - "used_as_default_$_in_meeting_id": [ - "agenda_all_items", - "topics", - "motion", - "amendment", - "motion_block", - "assignment", - "user", - "mediafile", - "projector_message", - "projector_countdowns", - "assignment_poll", - "motion_poll", - "poll" - ], - "used_as_default_$agenda_all_items_in_meeting_id": 1, - "used_as_default_$topics_in_meeting_id": 1, - "used_as_default_$motion_in_meeting_id": 1, - "used_as_default_$amendment_in_meeting_id": 1, - "used_as_default_$motion_block_in_meeting_id": 1, - "used_as_default_$assignment_in_meeting_id": 1, - "used_as_default_$user_in_meeting_id": 1, - "used_as_default_$mediafile_in_meeting_id": 1, - "used_as_default_$projector_message_in_meeting_id": 1, - "used_as_default_$projector_countdowns_in_meeting_id": 1, - "used_as_default_$assignment_poll_in_meeting_id": 1, - "used_as_default_$motion_poll_in_meeting_id": 1, - "used_as_default_$poll_in_meeting_id": 1, - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Nebenprojektor", - "scale": 0, - "scroll": 0, - "width": 1024, - "aspect_ratio_numerator": 16, - "aspect_ratio_denominator": 9, - "color": "#000000", - "background_color": "#888888", - "header_background_color": "#317796", - "header_font_color": "#f5f5f5", - "header_h1_color": "#317796", - "chyron_background_color": "#317796", - "chyron_font_color": "#ffffff", - "show_header_footer": true, - "show_title": true, - "show_logo": true, - "show_clock": true, - "current_projection_ids": [], - "preview_projection_ids": [], - "history_projection_ids": [], - "used_as_reference_projector_meeting_id": 1, - "used_as_default_$_in_meeting_id": [ - "list_of_speakers", - "current_list_of_speakers" - ], - "used_as_default_$list_of_speakers_in_meeting_id": 1, - "used_as_default_$current_list_of_speakers_in_meeting_id": 1, - "meeting_id": 1 - } - }, - "projection": { - "1": { - "id": 1, - "current_projector_id": null, - "preview_projector_id": 1, - "history_projector_id": null, - "content_object_id": "motion_block/1", - "stable": false, - "type": null, - "weight": 1, - "options": {}, - "meeting_id": 1 - }, - "2": { - "id": 2, - "current_projector_id": null, - "preview_projector_id": 1, - "history_projector_id": null, - "content_object_id": "motion/4", - "stable": false, - "type": null, - "weight": 2, - "options": { - "mode": "diff" - }, - "meeting_id": 1 - }, - "3": { - "id": 3, - "current_projector_id": 1, - "preview_projector_id": null, - "history_projector_id": null, - "content_object_id": "meeting/1", - "stable": true, - "type": "current_list_of_speakers", - "weight": 1, - "options": {}, - "meeting_id": 1 - }, - "4": { - "id": 4, - "current_projector_id": 1, - "preview_projector_id": null, - "history_projector_id": null, - "content_object_id": "assignment/1", - "stable": false, - "type": null, - "weight": 1, - "options": {}, - "meeting_id": 1 - } - }, - "projector_message": { - "1": { - "id": 1, - "message": "

Hi!

", - "projection_ids": [], - "meeting_id": 1 - } - }, - "projector_countdown": { - "1": { - "id": 1, - "title": "List of speaker countdown", - "description": "", - "default_time": 60, - "countdown_time": 60, - "running": false, - "projection_ids": [], - "used_as_list_of_speaker_countdown_meeting_id": 1, - "used_as_poll_countdown_meeting_id": null, - "meeting_id": 1 - }, - "2": { - "id": 2, - "title": "Voting countdown", - "description": "", - "default_time": 60, - "countdown_time": 60, - "running": false, - "projection_ids": [], - "used_as_list_of_speaker_countdown_meeting_id": null, - "used_as_poll_countdown_meeting_id": 1, - "meeting_id": 1 - } - }, - "chat_group": { - "1": { - "id": 1, - "name": "General", - "weight": 1, - "read_group_ids": [ - 1, - 2, - 5 - ], - "write_group_ids": [ - 1, - 2, - 5 - ], - "meeting_id": 1 - }, - "2": { - "id": 2, - "name": "Support", - "weight": 2, - "read_group_ids": [ - 2, - 5 - ], - "write_group_ids": [ - 2, - 5 - ], - "meeting_id": 1 - } - } -} diff --git a/docs/models.yml b/docs/models.yml deleted file mode 100644 index ff02300f4..000000000 --- a/docs/models.yml +++ /dev/null @@ -1,3199 +0,0 @@ ---- -# Types: -# - Nativ datatypes: string, number, boolean, JSON -# - 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. -# - timestamp: Datetime as a unix timestamp. Why a number? This enables queries -# in the DB. And we do not need more precision than 1 second. -# - []: 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` -# - color: string that must match ^#[0-9a-f]{6}$ -# 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: /`. This is a reference to a collection. The reverse -# relation field in this collection is . 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 -# - 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 -# - PROTECT: if the foreign key is not empty, throw an error instead of -# deleting the object -# - CASCADE: also delete all models in this foreign key -# Structured fields: -# - 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 -# 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: -# - You can add JSON Schema properties to the fields like `enum`, `description`, -# `items`, `maxLength` and `minimum` -# 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. On relation and generic-relation -# fields the value as to be an id of an existing object. -# - 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 - - # 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 - reset_password_verbose_errors: - type: boolean - restriction_mode: B - - # Configuration (only for the server owner) - enable_electronic_voting: - type: boolean - restriction_mode: B - limit_of_meetings: - type: number - description: Maximum of active meetings for the whole organization. 0 means no limitation at all - restriction_mode: B - default: 0 - minimum: 0 - limit_of_users: - type: number - description: Maximum of active users for the whole organization. 0 means no limitation at all - restriction_mode: B - default: 0 - minimum: 0 - - committee_ids: - type: relation-list - restriction_mode: B - to: committee/organization_id - active_meeting_ids: - type: relation-list - restriction_mode: B - to: meeting/is_active_in_organization_id - resource_ids: - type: relation-list - restriction_mode: A - to: resource/organization_id - organization_tag_ids: - type: relation-list - restriction_mode: B - to: organization_tag/organization_id - theme_id: - type: relation - required: true - restriction_mode: A - to: theme/theme_for_organization_id - theme_ids: - type: relation-list - restriction_mode: A - to: theme/organization_id - -user: - id: - type: number - restriction_mode: A - 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 - 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 - 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 - default_vote_weight: - type: decimal(6) - default: "1.000000" - restriction_mode: A - last_email_send: - type: timestamp - restriction_mode: D - is_demo_user: - type: boolean - restriction_mode: A - - # 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 - is_present_in_meeting_ids: - type: relation-list - to: meeting/present_user_ids - restriction_mode: A - committee_ids: - type: relation-list - to: committee/user_ids - restriction_mode: E - - # committee specific permissions - committee_$_management_level: - type: template - replacement_collection: committee - description: Hierarchical permission level for the each committee organization. - fields: - type: string - enum: - - can_manage - restriction_mode: E - - # Meeting specific personal data - comment_$: - type: template - replacement_collection: meeting - fields: HTMLStrict - restriction_mode: D - number_$: - type: template - replacement_collection: meeting - fields: string - restriction_mode: A - structure_level_$: - type: template - replacement_collection: meeting - fields: string - restriction_mode: A - about_me_$: - type: template - replacement_collection: meeting - fields: HTMLStrict - restriction_mode: A - vote_weight_$: - type: template - replacement_collection: meeting - fields: decimal(6) - restriction_mode: A - - # 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 - replacement_collection: meeting - fields: - type: relation-list - to: group/user_ids - restriction_mode: C - speaker_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: speaker/user_id - on_delete: CASCADE - restriction_mode: A - personal_note_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: personal_note/user_id - on_delete: CASCADE - restriction_mode: B - supported_motion_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: motion/supporter_ids - restriction_mode: A - submitted_motion_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: motion_submitter/user_id - restriction_mode: A - poll_voted_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: poll/voted_ids - restriction_mode: A - option_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: option/content_object_id - restriction_mode: A - vote_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: vote/user_id - restriction_mode: A - vote_delegated_vote_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: vote/delegated_user_id - restriction_mode: A - assignment_candidate_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: assignment_candidate/user_id - restriction_mode: A - projection_$_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: projection/content_object_id - restriction_mode: A - vote_delegated_$_to_id: - type: template - replacement_collection: meeting - fields: - type: relation - to: user/vote_delegations_$_from_ids - required: false - restriction_mode: C - vote_delegations_$_from_ids: - type: template - replacement_collection: meeting - fields: - type: relation-list - to: user/vote_delegated_$_to_id - restriction_mode: C - meeting_ids: - type: number[] - description: Calculated. All ids from group_$_ids as integers. - read_only: true - restriction_mode: E - -# 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 -# 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 - - organization_id: - type: relation - to: organization/resource_ids - restriction_mode: A - required: true - -organization_tag: - id: - type: number - restriction_mode: A - name: - type: string - required: True - restriction_mode: A - color: - type: color - required: True - restriction_mode: A - - tagged_ids: - type: generic-relation-list - to: - collections: - - committee - - meeting - field: organization_tag_ids - restriction_mode: A - organization_id: - type: relation - to: organization/organization_tag_ids - restriction_mode: A - required: true - -theme: - id: - restriction_mode: A - type: number - required: true - name: - restriction_mode: A - type: string - required: true - accent_100: - restriction_mode: A - type: color - accent_200: - restriction_mode: A - type: color - accent_300: - restriction_mode: A - type: color - accent_400: - restriction_mode: A - type: color - accent_50: - restriction_mode: A - type: color - accent_500: - restriction_mode: A - type: color - required: true - accent_600: - restriction_mode: A - type: color - accent_700: - restriction_mode: A - type: color - accent_800: - restriction_mode: A - type: color - accent_900: - restriction_mode: A - type: color - accent_a100: - restriction_mode: A - type: color - accent_a200: - restriction_mode: A - type: color - accent_a400: - restriction_mode: A - type: color - accent_a700: - restriction_mode: A - type: color - primary_100: - restriction_mode: A - type: color - primary_200: - restriction_mode: A - type: color - primary_300: - restriction_mode: A - type: color - primary_400: - restriction_mode: A - type: color - primary_50: - restriction_mode: A - type: color - primary_500: - restriction_mode: A - type: color - required: true - primary_600: - restriction_mode: A - type: color - primary_700: - restriction_mode: A - type: color - primary_800: - restriction_mode: A - type: color - primary_900: - restriction_mode: A - type: color - primary_a100: - restriction_mode: A - type: color - primary_a200: - restriction_mode: A - type: color - primary_a400: - restriction_mode: A - type: color - primary_a700: - restriction_mode: A - type: color - warn_100: - restriction_mode: A - type: color - warn_200: - restriction_mode: A - type: color - warn_300: - restriction_mode: A - type: color - warn_400: - restriction_mode: A - type: color - warn_50: - restriction_mode: A - type: color - warn_500: - restriction_mode: A - type: color - required: true - warn_600: - restriction_mode: A - type: color - warn_700: - restriction_mode: A - type: color - warn_800: - restriction_mode: A - type: color - warn_900: - restriction_mode: A - type: color - warn_a100: - restriction_mode: A - type: color - warn_a200: - restriction_mode: A - type: color - warn_a400: - restriction_mode: A - type: color - warn_a700: - restriction_mode: A - type: color - theme_for_organization_id: - restriction_mode: A - to: organization/theme_id - type: relation - organization_id: - required: true - restriction_mode: A - to: organization/theme_ids - type: relation - -committee: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - description: - type: HTMLStrict - restriction_mode: A - - meeting_ids: - type: relation-list - to: meeting/committee_id - on_delete: PROTECT - restriction_mode: A - template_meeting_id: - type: relation - to: meeting/template_for_committee_id - restriction_mode: A - required: false - default_meeting_id: - type: relation - to: meeting/default_meeting_for_committee_id - restriction_mode: A - required: false - user_ids: - type: relation-list - to: user/committee_ids - restriction_mode: A - forward_to_committee_ids: - type: relation-list - to: committee/receive_forwardings_from_committee_ids - restriction_mode: B - receive_forwardings_from_committee_ids: - type: relation-list - to: committee/forward_to_committee_ids - restriction_mode: B - organization_tag_ids: - type: relation-list - to: organization_tag/tagged_ids - restriction_mode: A - organization_id: - type: relation - to: organization/committee_ids - required: true - restriction_mode: A - -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 - - # General - name: - type: string - maxLength: 100 - default: OpenSlides - restriction_mode: A - is_active_in_organization_id: - type: relation - to: organization/active_meeting_ids - restriction_mode: A - description: Backrelation and boolean flag at once - required: false - 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 - enable_chat: - type: boolean - restriction_mode: B - - # System - url_name: - type: string - description: For unique urls. - restriction_mode: B - template_for_committee_id: - type: relation - to: committee/template_meeting_id - restriction_mode: B - required: false - enable_anonymous: - type: boolean - default: False - restriction_mode: A - custom_translations: - type: JSON - restriction_mode: B - - # 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 - 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 - - # Projector countdown - projector_countdown_default_time: - type: number - default: 60 - required: true - restriction_mode: B - projector_countdown_warning_time: - type: number - minimum: 0 - default: 0 - required: true - restriction_mode: B - - # Exports - export_csv_encoding: - type: string - enum: - - utf-8 - - iso-8859-15 - default: utf-8 - restriction_mode: B - export_csv_separator: - type: string - 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 - - # 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: - type: string - enum: - - common - - internal - - hidden - default: internal - restriction_mode: B - agenda_show_internal_items_on_projector: - type: boolean - default: True - restriction_mode: B - - # 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: - type: number - minimum: -1 - default: -1 - restriction_mode: B - list_of_speakers_couple_countdown: - type: boolean - default: True - restriction_mode: B - 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 - list_of_speakers_enable_pro_contra_speech: - type: boolean - default: False - restriction_mode: B - list_of_speakers_can_set_contribution_self: - type: boolean - default: False - restriction_mode: B - list_of_speakers_speaker_note_for_everyone: - type: boolean - default: False - restriction_mode: B - list_of_speakers_initially_closed: - type: boolean - default: False - restriction_mode: B - - # Motions - motions_default_workflow_id: - type: relation - to: motion_workflow/default_workflow_meeting_id - required: true - restriction_mode: B - motions_default_amendment_workflow_id: - type: relation - to: motion_workflow/default_amendment_workflow_meeting_id - required: true - restriction_mode: B - 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 - 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 - 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 - 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: - type: boolean - default: False - restriction_mode: B - - # 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 - motion_poll_default_type: - type: string - default: analog - restriction_mode: B - motion_poll_default_100_percent_base: - type: string - default: YNA - restriction_mode: B - motion_poll_default_group_ids: - type: relation-list - to: group/used_as_motion_poll_default_id - restriction_mode: B - - # 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 - 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 - - # Assignments - assignments_export_title: - type: string - default: Elections - restriction_mode: B - assignments_export_preamble: - type: string - restriction_mode: B - - # 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 - assignment_poll_default_type: - type: string - default: analog - restriction_mode: B - assignment_poll_default_method: - type: string - restriction_mode: B - assignment_poll_default_100_percent_base: - type: string - default: valid - restriction_mode: B - assignment_poll_default_group_ids: - type: relation-list - to: group/used_as_assignment_poll_default_id - restriction_mode: B - - # 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 - poll_default_type: - type: string - default: analog - restriction_mode: B - poll_default_method: - type: string - restriction_mode: B - poll_default_100_percent_base: - type: string - default: YNA - restriction_mode: B - poll_default_group_ids: - type: relation-list - to: group/used_as_poll_default_id - restriction_mode: B - poll_couple_countdown: - type: boolean - default: True - restriction_mode: B - - # Relations - projector_ids: - type: relation-list - to: projector/meeting_id - on_delete: CASCADE - restriction_mode: B - all_projection_ids: - type: relation-list - to: projection/meeting_id - on_delete: CASCADE - restriction_mode: B - projector_message_ids: - type: relation-list - to: projector_message/meeting_id - on_delete: CASCADE - restriction_mode: B - projector_countdown_ids: - type: relation-list - to: projector_countdown/meeting_id - on_delete: CASCADE - restriction_mode: B - tag_ids: - type: relation-list - to: tag/meeting_id - on_delete: CASCADE - restriction_mode: B - agenda_item_ids: - type: relation-list - to: agenda_item/meeting_id - on_delete: CASCADE - restriction_mode: B - list_of_speakers_ids: - type: relation-list - to: list_of_speakers/meeting_id - on_delete: CASCADE - restriction_mode: B - speaker_ids: - type: relation-list - to: speaker/meeting_id - on_delete: CASCADE - restriction_mode: B - topic_ids: - type: relation-list - to: topic/meeting_id - on_delete: CASCADE - restriction_mode: B - group_ids: - type: relation-list - to: group/meeting_id - on_delete: CASCADE - restriction_mode: B - mediafile_ids: - type: relation-list - to: mediafile/meeting_id - on_delete: CASCADE - restriction_mode: B - motion_ids: - type: relation-list - to: motion/meeting_id - on_delete: CASCADE - restriction_mode: B - motion_comment_section_ids: - type: relation-list - to: motion_comment_section/meeting_id - on_delete: CASCADE - restriction_mode: B - motion_category_ids: - type: relation-list - to: motion_category/meeting_id - on_delete: CASCADE - restriction_mode: B - motion_block_ids: - type: relation-list - to: motion_block/meeting_id - on_delete: CASCADE - restriction_mode: B - motion_workflow_ids: - type: relation-list - to: motion_workflow/meeting_id - on_delete: CASCADE - restriction_mode: B - 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 - poll_ids: - type: relation-list - to: poll/meeting_id - on_delete: CASCADE - restriction_mode: B - option_ids: - type: relation-list - to: option/meeting_id - on_delete: CASCADE - restriction_mode: B - vote_ids: - type: relation-list - to: vote/meeting_id - on_delete: CASCADE - restriction_mode: B - assignment_ids: - type: relation-list - to: assignment/meeting_id - on_delete: CASCADE - restriction_mode: B - assignment_candidate_ids: - type: relation-list - to: assignment_candidate/meeting_id - on_delete: CASCADE - restriction_mode: B - personal_note_ids: - type: relation-list - to: personal_note/meeting_id - on_delete: CASCADE - restriction_mode: B - chat_group_ids: - type: relation-list - to: chat_group/meeting_id - on_delete: CASCADE - restriction_mode: B - - # Logos and Fonts - logo_$_id: - type: template - fields: - type: relation - to: mediafile/used_as_logo_$_in_meeting_id - required: false - restriction_mode: B - font_$_id: - type: template - fields: - type: relation - to: mediafile/used_as_font_$_in_meeting_id - required: false - restriction_mode: B - # 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 - default_meeting_for_committee_id: - type: relation - to: committee/default_meeting_id - restriction_mode: B - required: false - organization_tag_ids: - type: relation-list - to: organization_tag/tagged_ids - restriction_mode: B - present_user_ids: - type: relation-list - to: user/is_present_in_meeting_ids - restriction_mode: B - user_ids: - type: number[] - description: Calculated. All user ids from all users assigned to groups of this meeting. - read_only: true - restriction_mode: B - reference_projector_id: - type: relation - to: projector/used_as_reference_projector_meeting_id - required: true - restriction_mode: B - list_of_speakers_countdown_id: - type: relation - to: projector_countdown/used_as_list_of_speaker_countdown_meeting_id - restriction_mode: B - required: false - poll_countdown_id: - type: relation - to: projector_countdown/used_as_poll_countdown_meeting_id - restriction_mode: B - required: false - default_projector_$_id: - type: template - fields: - type: relation - to: projector/used_as_default_$_in_meeting_id - required: false - restriction_mode: B - # 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 - - default_group_id: - type: relation - to: group/default_group_for_meeting_id - required: true - restriction_mode: B - admin_group_id: - type: relation - to: group/admin_group_for_meeting_id - restriction_mode: B - required: false - -group: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - 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 - - 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_forward_into_this_meeting - - motion.can_manage - - motion.can_manage_metadata - - motion.can_manage_polls - - motion.can_see - - motion.can_see_internal - - motion.can_support - - poll.can_manage - - projector.can_manage - - projector.can_see - - tag.can_manage - - user.can_manage - - user.can_see - - user.can_see_extra_data - restriction_mode: A - - user_ids: - type: relation-list - to: user/group_$_ids - restriction_mode: A - default_group_for_meeting_id: - type: relation - to: meeting/default_group_id - on_delete: PROTECT - restriction_mode: A - required: false - admin_group_for_meeting_id: - type: relation - to: meeting/admin_group_id - on_delete: PROTECT - restriction_mode: A - required: false - mediafile_access_group_ids: - type: relation-list - to: mediafile/access_group_ids - equal_fields: meeting_id - restriction_mode: A - mediafile_inherited_access_group_ids: - type: relation-list - to: mediafile/inherited_access_group_ids - description: Calculated field. - read_only: true - restriction_mode: A - read_comment_section_ids: - type: relation-list - to: motion_comment_section/read_group_ids - equal_fields: meeting_id - restriction_mode: A - write_comment_section_ids: - type: relation-list - to: motion_comment_section/write_group_ids - equal_fields: meeting_id - restriction_mode: A - read_chat_group_ids: - type: relation-list - to: chat_group/read_group_ids - equal_fields: meeting_id - restriction_mode: A - write_chat_group_ids: - type: relation-list - to: chat_group/write_group_ids - equal_fields: meeting_id - restriction_mode: A - poll_ids: - type: relation-list - to: poll/entitled_group_ids - equal_fields: meeting_id - restriction_mode: A - used_as_motion_poll_default_id: - type: relation - to: meeting/motion_poll_default_group_ids - restriction_mode: A - required: false - used_as_assignment_poll_default_id: - type: relation - to: meeting/assignment_poll_default_group_ids - restriction_mode: A - required: false - used_as_poll_default_id: - type: relation - to: meeting/poll_default_group_ids - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/group_ids - required: true - restriction_mode: A - -personal_note: - id: - type: number - restriction_mode: A - note: - type: HTMLStrict - restriction_mode: A - star: - type: boolean - restriction_mode: A - - user_id: - type: relation - to: user/personal_note_$_ids - restriction_mode: A - required: true - content_object_id: - type: generic-relation - to: - collections: - - motion - field: personal_note_ids - equal_fields: meeting_id - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/personal_note_ids - required: true - restriction_mode: A - -tag: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - - tagged_ids: - type: generic-relation-list - to: - collections: - - agenda_item - - assignment - - motion - - topic - field: tag_ids - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/tag_ids - required: true - restriction_mode: A - -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: - type: string - enum: - - 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 - default: 10000 - restriction_mode: A - - content_object_id: - type: generic-relation - to: - collections: - - motion - - motion_block - - assignment - - topic - field: agenda_item_id - required: true - equal_fields: meeting_id - restriction_mode: A - parent_id: - type: relation - to: agenda_item/child_ids - equal_fields: meeting_id - restriction_mode: A - required: false - child_ids: - type: relation-list - to: agenda_item/parent_id - equal_fields: meeting_id - restriction_mode: A - tag_ids: - type: relation-list - to: tag/tagged_ids - equal_fields: meeting_id - restriction_mode: A - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/agenda_item_ids - required: true - restriction_mode: A - -list_of_speakers: - id: - type: number - restriction_mode: A - closed: - type: boolean - default: false - restriction_mode: A - - content_object_id: - type: generic-relation - to: - collections: - - motion - - motion_block - - assignment - - topic - - mediafile - field: list_of_speakers_id - required: true - equal_fields: meeting_id - restriction_mode: A - speaker_ids: - type: relation-list - to: speaker/list_of_speakers_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: A - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/list_of_speakers_ids - required: true - restriction_mode: A - -speaker: - id: - type: number - restriction_mode: A - begin_time: - type: timestamp - read_only: true - restriction_mode: A - end_time: - type: timestamp - read_only: true - restriction_mode: A - weight: - type: number - default: 10000 - restriction_mode: A - speech_state: - type: string - enum: - - contribution - - pro - - contra - restriction_mode: A - note: - type: string - maxLength: 250 - restriction_mode: A - point_of_order: - type: boolean - restriction_mode: A - - list_of_speakers_id: - type: relation - to: list_of_speakers/speaker_ids - required: true - equal_fields: meeting_id - restriction_mode: A - user_id: - type: relation - to: user/speaker_$_ids - required: true - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/speaker_ids - required: true - restriction_mode: A - -topic: - id: - type: number - restriction_mode: A - title: - type: string - required: true - restriction_mode: A - text: - type: HTMLPermissive - restriction_mode: B - - attachment_ids: - type: relation-list - to: mediafile/attachment_ids - equal_fields: meeting_id - restriction_mode: B - agenda_item_id: - type: relation - to: agenda_item/content_object_id - required: true - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - 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 - option_ids: - type: relation-list - to: option/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - tag_ids: - type: relation-list - to: tag/tagged_ids - equal_fields: meeting_id - restriction_mode: B - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: B - meeting_id: - type: relation - to: meeting/topic_ids - required: true - restriction_mode: B - -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 - amendment_paragraph_$: - type: template - fields: HTMLStrict - restriction_mode: C - modified_final_version: - type: HTMLStrict - restriction_mode: C - reason: - type: HTMLStrict - restriction_mode: C - category_weight: - type: number - default: 10000 - restriction_mode: C - state_extension: - type: string - restriction_mode: C - recommendation_extension: - type: string - restriction_mode: C - sort_weight: - type: number - default: 10000 - restriction_mode: C - created: - type: timestamp - read_only: true - restriction_mode: C - last_modified: - type: timestamp - read_only: true - restriction_mode: C - - lead_motion_id: - type: relation - to: motion/amendment_ids - equal_fields: meeting_id - restriction_mode: C - required: false - amendment_ids: - type: relation-list - to: motion/lead_motion_id - equal_fields: meeting_id - restriction_mode: C - sort_parent_id: - type: relation - to: motion/sort_child_ids - equal_fields: meeting_id - restriction_mode: C - required: false - sort_child_ids: - type: relation-list - to: motion/sort_parent_id - equal_fields: meeting_id - restriction_mode: C - origin_id: - type: relation - to: motion/derived_motion_ids # Note: The related motions may not be in the same meeting - restriction_mode: B - required: false - 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 - state_id: - type: relation - to: motion_state/motion_ids - required: true - equal_fields: meeting_id - restriction_mode: C - recommendation_id: - type: relation - to: motion_state/motion_recommendation_ids - equal_fields: meeting_id - restriction_mode: C - required: false - recommendation_extension_reference_ids: - type: generic-relation-list - to: - collections: - - motion - field: referenced_in_motion_recommendation_extension_ids - equal_fields: meeting_id - restriction_mode: C - referenced_in_motion_recommendation_extension_ids: - type: relation-list - to: motion/recommendation_extension_reference_ids - equal_fields: meeting_id - restriction_mode: C - category_id: - type: relation - to: motion_category/motion_ids - equal_fields: meeting_id - restriction_mode: C - required: false - block_id: - type: relation - to: motion_block/motion_ids - equal_fields: meeting_id - restriction_mode: C - required: false - submitter_ids: - type: relation-list - to: motion_submitter/motion_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: C - supporter_ids: - type: relation-list - to: user/supported_motion_$_ids - restriction_mode: C - poll_ids: - type: relation-list - to: poll/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: C - option_ids: - type: relation-list - to: option/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: C - change_recommendation_ids: - type: relation-list - to: motion_change_recommendation/motion_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: C - statute_paragraph_id: - type: relation - to: motion_statute_paragraph/motion_ids - equal_fields: meeting_id - restriction_mode: C - required: false - comment_ids: - type: relation-list - to: motion_comment/motion_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: C - agenda_item_id: - type: relation - to: agenda_item/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: C - required: false - 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 - tag_ids: - type: relation-list - to: tag/tagged_ids - equal_fields: meeting_id - restriction_mode: C - attachment_ids: - type: relation-list - to: mediafile/attachment_ids - equal_fields: meeting_id - restriction_mode: C - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: C - personal_note_ids: - type: relation-list - to: personal_note/content_object_id - equal_fields: meeting_id - on_delete: CASCADE - restriction_mode: C - meeting_id: - type: relation - to: meeting/motion_ids - required: true - restriction_mode: B - -motion_submitter: - id: - type: number - restriction_mode: A - weight: - type: number - restriction_mode: A - user_id: - type: relation - to: user/submitted_motion_$_ids - restriction_mode: A - required: true - motion_id: - type: relation - to: motion/submitter_ids - equal_fields: meeting_id - restriction_mode: A - required: true - meeting_id: - type: relation - to: meeting/motion_submitter_ids - required: true - restriction_mode: A - -motion_comment: - id: - type: number - restriction_mode: A - comment: - type: HTMLStrict - restriction_mode: A - - motion_id: - type: relation - to: motion/comment_ids - required: true - equal_fields: meeting_id - restriction_mode: A - 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 - -motion_comment_section: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - weight: - type: number - default: 10000 - restriction_mode: A - - comment_ids: - type: relation-list - to: motion_comment/section_id - on_delete: PROTECT - equal_fields: meeting_id - restriction_mode: A - read_group_ids: - type: relation-list - to: group/read_comment_section_ids - equal_fields: meeting_id - restriction_mode: A - write_group_ids: - type: relation-list - to: group/write_comment_section_ids - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/motion_comment_section_ids - required: true - restriction_mode: A - -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 - default: 10000 - restriction_mode: A - level: - type: number - description: Calculated field. - read_only: true - restriction_mode: A - - parent_id: - type: relation - to: motion_category/child_ids - equal_fields: meeting_id - restriction_mode: A - required: false - child_ids: - type: relation-list - to: motion_category/parent_id - equal_fields: meeting_id - restriction_mode: A - motion_ids: - type: relation-list - to: motion/category_id - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/motion_category_ids - required: true - restriction_mode: A - -motion_block: - id: - type: number - restriction_mode: A - title: - type: string - required: true - restriction_mode: A - internal: - type: boolean - restriction_mode: B - - motion_ids: - type: relation-list - to: motion/block_id - equal_fields: meeting_id - restriction_mode: B - agenda_item_id: - type: relation - to: agenda_item/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - required: false - 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 - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: B - meeting_id: - type: relation - to: meeting/motion_block_ids - required: true - restriction_mode: B - -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: - type: string - enum: - - 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: - type: timestamp - read_only: true - restriction_mode: A - - 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 - -motion_state: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - weight: - type: number - required: true - restriction_mode: A - recommendation_label: - type: string - restriction_mode: A - css_class: - type: string - enum: - - grey - - red - - green - - lightblue - - yellow - default: lightblue - required: true - restriction_mode: A - restrictions: - type: string[] - items: - enum: - - 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 - dont_set_identifier: - 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: - type: string - enum: - - do_not_merge - - undefined - - do_merge - default: undefined - restriction_mode: A - show_recommendation_extension_field: - type: boolean - default: false - restriction_mode: A - - next_state_ids: - type: relation-list - to: motion_state/previous_state_ids - equal_fields: - - meeting_id - - workflow_id - restriction_mode: A - previous_state_ids: - type: relation-list - to: motion_state/next_state_ids - equal_fields: - - meeting_id - - workflow_id - restriction_mode: A - motion_ids: - type: relation-list - to: motion/state_id - on_delete: PROTECT - equal_fields: meeting_id - restriction_mode: A - motion_recommendation_ids: - type: relation-list - to: motion/recommendation_id - equal_fields: meeting_id - restriction_mode: A - workflow_id: - type: relation - to: motion_workflow/state_ids - required: true - equal_fields: meeting_id - restriction_mode: A - first_state_of_workflow_id: - type: relation - to: motion_workflow/first_state_id - on_delete: PROTECT - equal_fields: meeting_id - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/motion_state_ids - required: true - restriction_mode: A - -motion_workflow: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - - state_ids: - type: relation-list - to: motion_state/workflow_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: A - first_state_id: - type: relation - to: motion_state/first_state_of_workflow_id - required: true - equal_fields: meeting_id - restriction_mode: A - default_workflow_meeting_id: - type: relation - to: meeting/motions_default_workflow_id - restriction_mode: A - required: false - default_amendment_workflow_meeting_id: - type: relation - to: meeting/motions_default_amendment_workflow_id - restriction_mode: A - required: false - default_statute_amendment_workflow_meeting_id: - type: relation - to: meeting/motions_default_statute_amendment_workflow_id - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/motion_workflow_ids - required: true - restriction_mode: A - -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 - default: 10000 - restriction_mode: A - - motion_ids: - type: relation-list - to: motion/statute_paragraph_id - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/motion_statute_paragraph_ids - required: true - restriction_mode: A - -poll: - id: - type: number - restriction_mode: A - description: - type: string - restriction_mode: A - title: - type: string - required: true - restriction_mode: A - type: - type: string - required: true - enum: - - analog - - named - - pseudoanonymous - restriction_mode: A - backend: - type: string - required: True - default: long - enum: - - long - - fast - restriction_mode: A - is_pseudoanonymized: - type: boolean - restriction_mode: A - pollmethod: - type: string - required: true - enum: - - "Y" - - "YN" - - "YNA" - - "N" - restriction_mode: A - state: - type: string - enum: - - created - - started - - finished - - published - default: created - restriction_mode: A - min_votes_amount: - type: number - default: 1 - restriction_mode: A - max_votes_amount: - type: number - default: 1 - restriction_mode: A - global_yes: - type: boolean - default: false - restriction_mode: A - global_no: - type: boolean - default: false - restriction_mode: A - global_abstain: - type: boolean - default: false - restriction_mode: A - 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 - - content_object_id: # Note: must not be set - it is allowed to have standalone polls - type: generic-relation - to: - collections: - - motion - - assignment - field: poll_ids - equal_fields: meeting_id - restriction_mode: A - required: false - option_ids: - type: relation-list - to: option/poll_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: A - global_option_id: - type: relation - to: option/used_as_global_option_in_poll_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: A - required: false - voted_ids: - type: relation-list - to: user/poll_voted_$_ids - restriction_mode: A - entitled_group_ids: - type: relation-list - to: group/poll_ids - equal_fields: meeting_id - restriction_mode: A - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/poll_ids - restriction_mode: A - required: true - -option: - id: - type: number - restriction_mode: A - 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 - - poll_id: - type: relation - to: poll/option_ids - equal_fields: meeting_id - restriction_mode: A - required: false - used_as_global_option_in_poll_id: - type: relation - to: poll/global_option_id - equal_fields: meeting_id - restriction_mode: A - required: false - vote_ids: - type: relation-list - to: vote/option_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: A - content_object_id: - type: generic-relation - to: - - motion/option_ids - - topic/option_ids - - user/option_$_ids - equal_fields: meeting_id - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/option_ids - required: true - restriction_mode: A - -vote: - id: - type: number - restriction_mode: A - weight: - type: decimal(6) - restriction_mode: A - value: - type: string - restriction_mode: A - user_token: - type: string - required: true - restriction_mode: B - - option_id: - type: relation - to: option/vote_ids - equal_fields: meeting_id - required: true - restriction_mode: A - user_id: - type: relation - to: user/vote_$_ids - restriction_mode: A - required: false - delegated_user_id: - type: relation - to: user/vote_delegated_vote_$_ids - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/vote_ids - required: true - restriction_mode: A - -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 - default: 0 - restriction_mode: B - phase: - type: string - enum: - - search - - voting - - finished - default: search - restriction_mode: B - default_poll_description: - type: string - restriction_mode: B - number_poll_candidates: - type: boolean - restriction_mode: B - - candidate_ids: - type: relation-list - to: assignment_candidate/assignment_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - poll_ids: - type: relation-list - to: poll/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - agenda_item_id: - type: relation - to: agenda_item/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - required: false - 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 - tag_ids: - type: relation-list - to: tag/tagged_ids - equal_fields: meeting_id - restriction_mode: B - attachment_ids: - type: relation-list - to: mediafile/attachment_ids - equal_fields: meeting_id - restriction_mode: B - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: B - meeting_id: - type: relation - to: meeting/assignment_ids - required: true - restriction_mode: B - -assignment_candidate: - id: - type: number - restriction_mode: A - weight: - type: number - default: 10000 - restriction_mode: A - - assignment_id: - type: relation - to: assignment/candidate_ids - equal_fields: meeting_id - restriction_mode: A - required: true - user_id: - type: relation - to: user/assignment_candidate_$_ids - restriction_mode: A - required: true - meeting_id: - type: relation - to: meeting/assignment_candidate_ids - required: true - restriction_mode: A - -# Mediafiles are delivered by the mediafile server with the URL -# `/media//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 - is_public: - type: boolean - 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 - - inherited_access_group_ids: - type: relation-list - to: group/mediafile_inherited_access_group_ids - description: Calculated field. - read_only: true - restriction_mode: B - access_group_ids: - type: relation-list - to: group/mediafile_access_group_ids - equal_fields: meeting_id - restriction_mode: B - parent_id: - type: relation - to: mediafile/child_ids - equal_fields: meeting_id - restriction_mode: B - required: false - child_ids: - type: relation-list - to: mediafile/parent_id - equal_fields: meeting_id - restriction_mode: B - list_of_speakers_id: - type: relation - to: list_of_speakers/content_object_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: B - required: false - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: B - attachment_ids: - type: generic-relation-list - to: - collections: - - motion - - topic - - assignment - field: attachment_ids - equal_fields: meeting_id - restriction_mode: B - meeting_id: - type: relation - to: meeting/mediafile_ids - required: true - restriction_mode: B - - # 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 - required: false - restriction_mode: B - used_as_font_$_in_meeting_id: - type: template - fields: - type: relation - to: meeting/font_$_id - required: false - restriction_mode: B - -projector: - id: - type: number - restriction_mode: A - name: - type: string - restriction_mode: A - scale: - type: number - default: 0 - restriction_mode: A - scroll: - type: number - default: 0 - restriction_mode: A - width: - type: number - minimum: 1 - default: 1200 - restriction_mode: A - aspect_ratio_numerator: - type: number - minimum: 1 - default: 16 - restriction_mode: A - aspect_ratio_denominator: - type: number - minimum: 1 - default: 9 - restriction_mode: A - color: - type: color - default: "#000000" - restriction_mode: A - background_color: - type: color - default: "#ffffff" - restriction_mode: A - header_background_color: - type: color - default: "#317796" - restriction_mode: A - header_font_color: - type: color - default: "#f5f5f5" - restriction_mode: A - header_h1_color: - type: color - default: "#317796" - restriction_mode: A - chyron_background_color: - type: color - default: "#317796" - restriction_mode: A - chyron_font_color: - type: color - default: "#ffffff" - restriction_mode: A - show_header_footer: - type: boolean - default: true - restriction_mode: A - show_title: - type: boolean - default: true - restriction_mode: A - show_logo: - type: boolean - default: true - restriction_mode: A - show_clock: - type: boolean - default: true - restriction_mode: A - - current_projection_ids: - type: relation-list - to: projection/current_projector_id - on_delete: CASCADE - equal_fields: meeting_id - restriction_mode: A - preview_projection_ids: - type: relation-list - to: projection/preview_projector_id - equal_fields: meeting_id - restriction_mode: A - history_projection_ids: - type: relation-list - to: projection/history_projector_id - equal_fields: meeting_id - restriction_mode: A - used_as_reference_projector_meeting_id: - type: relation - to: meeting/reference_projector_id - restriction_mode: A - required: false - used_as_default_$_in_meeting_id: - type: template - fields: - type: relation - to: meeting/default_projector_$_id - required: false - restriction_mode: A - meeting_id: - type: relation - to: meeting/projector_ids - restriction_mode: A - required: true - -# 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 - stable: - type: boolean - default: false - restriction_mode: A - weight: - type: number - restriction_mode: A - type: - type: string - restriction_mode: A - - content: - type: JSON - calculated: true - restriction_mode: A - - current_projector_id: - type: relation - to: projector/current_projection_ids - equal_fields: meeting_id - restriction_mode: A - required: false - preview_projector_id: - type: relation - to: projector/preview_projection_ids - equal_fields: meeting_id - restriction_mode: A - required: false - history_projector_id: - type: relation - to: projector/history_projection_ids - equal_fields: meeting_id - restriction_mode: A - required: false - content_object_id: - type: generic-relation - to: - - 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 - required: false - meeting_id: - type: relation - to: meeting/all_projection_ids - required: true - restriction_mode: A - -projector_message: - id: - type: number - restriction_mode: A - message: - type: HTMLStrict - restriction_mode: A - - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/projector_message_ids - restriction_mode: A - required: true - -projector_countdown: - id: - type: number - restriction_mode: A - title: - type: string - required: true - restriction_mode: A - description: - type: string - default: "" - restriction_mode: A - default_time: - type: number - restriction_mode: A - countdown_time: - type: float - default: 60 - restriction_mode: A - running: - type: boolean - default: false - restriction_mode: A - - projection_ids: - type: relation-list - to: projection/content_object_id - equal_fields: meeting_id - restriction_mode: A - used_as_list_of_speaker_countdown_meeting_id: - type: relation - to: meeting/list_of_speakers_countdown_id - restriction_mode: A - required: false - used_as_poll_countdown_meeting_id: - type: relation - to: meeting/poll_countdown_id - restriction_mode: A - required: false - meeting_id: - type: relation - to: meeting/projector_countdown_ids - restriction_mode: A - required: true - -chat_group: - id: - type: number - restriction_mode: A - name: - type: string - required: true - restriction_mode: A - weight: - type: number - default: 10000 - restriction_mode: A - - read_group_ids: - type: relation-list - to: group/read_chat_group_ids - equal_fields: meeting_id - restriction_mode: A - write_group_ids: - type: relation-list - to: group/write_chat_group_ids - equal_fields: meeting_id - restriction_mode: A - meeting_id: - type: relation - to: meeting/chat_group_ids - required: true - restriction_mode: A diff --git a/docs/modelsvalidator/requirements.txt b/docs/modelsvalidator/requirements.txt deleted file mode 100644 index c3726e8bf..000000000 --- a/docs/modelsvalidator/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -pyyaml diff --git a/docs/modelsvalidator/setup.cfg b/docs/modelsvalidator/setup.cfg deleted file mode 100644 index 261299cc3..000000000 --- a/docs/modelsvalidator/setup.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[flake8] -max-line-length = 120 - -[mypy] -disallow_untyped_defs = true -ignore_missing_imports = true diff --git a/docs/modelsvalidator/validate.py b/docs/modelsvalidator/validate.py deleted file mode 100644 index 6d9d08cac..000000000 --- a/docs/modelsvalidator/validate.py +++ /dev/null @@ -1,375 +0,0 @@ -import json -import re -import sys -from collections import defaultdict -from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union - -import yaml - -DEFAULT_FILES = [ - "../../docs/models.yml", -] - - -KEYSEPARATOR = "/" -_collection_regex = r"[a-z]([a-z_]+[a-z]+)?" -_field_regex = r"[a-z][a-z0-9_]*\$?[a-z0-9_]*" - -collectionfield_regex = re.compile( - f"^({_collection_regex}){KEYSEPARATOR}({_field_regex})$" -) -collection_regex = re.compile(f"^{_collection_regex}$") -field_regex = re.compile(f"^{_field_regex}$") - -decimal_regex = re.compile("^\d+\.\d{6}$") -color_regex = re.compile("^#[0-9a-f]{6}$") - -RELATION_TYPES = ( - "relation", - "relation-list", - "generic-relation", - "generic-relation-list", -) - -DATA_TYPES = ( - "string", - "number", - "string[]", - "number[]", - "boolean", - "JSON", - "HTMLStrict", - "HTMLPermissive", - "float", - "decimal(6)", - "timestamp", - "color", -) - - -VALID_TYPES = DATA_TYPES + RELATION_TYPES + ("template",) - -OPTIONAL_ATTRIBUTES = ( - "description", - "calculated", - "required", - "read_only", -) - - -class CheckException(Exception): - pass - - -class Checker: - def __init__(self, filepath: str) -> None: - with open(filepath, "rb") as x: - self.models = yaml.safe_load(x.read()) - self.errors: List[str] = [] - - def run_check(self) -> None: - self._run_checks() - if self.errors: - errors = [f"\t{error}" for error in self.errors] - raise CheckException("\n".join(errors)) - - def _run_checks(self) -> None: - for collection in self.models.keys(): - if not collection_regex.match(collection): - self.errors.append(f"Collection '{collection}' is not valid.") - if self.errors: - return - - for collection, fields in self.models.items(): - if not isinstance(fields, dict): - self.errors.append( - f"The fields of collection {collection} must be a dict." - ) - continue - for field_name, field in fields.items(): - if not field_regex.match(field_name): - self.errors.append( - f"Field name '{field_name}' of collection {collection} is not a valid field name." - ) - continue - if not isinstance(field, dict): - self.errors.append( - f"Field '{field_name}' of collection {collection} must be a dict." - ) - self.check_field(collection, field_name, field) - - if self.errors: - return - - for collection, fields in self.models.items(): - for field_name, field in fields.items(): - is_relation_field = field["type"] in RELATION_TYPES - is_template_relation_field = ( - field["type"] == "template" - and isinstance(field["fields"], dict) - and field["fields"]["type"] in RELATION_TYPES - ) - if not is_relation_field and not is_template_relation_field: - continue - error = self.check_relation(collection, field_name, field) - if error: - self.errors.append(error) - - def check_field( - self, - collection: str, - field_name: str, - field: Union[str, Dict[str, Any]], - nested: bool = False, - ) -> None: - collectionfield = f"{collection}{KEYSEPARATOR}{field_name}" - - if nested: - if isinstance(field, str): - field = {"type": field} - field[ - "restriction_mode" - ] = "A" # add restriction_mode to satisfy the checker below. - if field["type"] == "template": # no nested templates - self.errors.append(f"Nested template field in {collectionfield}") - return - - type = field.get("type") - if type not in VALID_TYPES: - self.errors.append( - f"Type '{type}' for collectionfield {collectionfield} is invalid." - ) - return - - required_attributes = [ - "type", - "restriction_mode", - ] - if type in RELATION_TYPES: - required_attributes.append("to") - if type == "template": - required_attributes.append("fields") - for attr in required_attributes: - if attr not in field: - self.errors.append( - f"Required attribute '{attr}' for collectionfield {collectionfield} is missing." - ) - return - - if field.get("calculated"): - return - - valid_attributes = list(OPTIONAL_ATTRIBUTES) + required_attributes - if type == "string[]": - valid_attributes.append("items") - if "items" in field and "enum" not in field["items"]: - self.errors.append( - f"'items' is missing an inner 'enum' for {collectionfield}" - ) - return - for value in field.get("items", {"enum": []})["enum"]: - self.validate_value_for_type("string", value, collectionfield) - if type == "JSON" and "default" in field: - try: - json.loads(json.dumps(field["default"])) - except: - self.errors.append( - f"Default value for {collectionfield}' is not valid json." - ) - if type == "number": - valid_attributes.append("minimum") - if not isinstance(field.get("minimum", 0), int): - self.errors.append(f"'minimum' for {collectionfield} is not a number.") - if type == "string": - valid_attributes.append("maxLength") - if not isinstance(field.get("maxLength", 0), int): - self.errors.append( - f"'maxLength' for {collectionfield} is not a number." - ) - if type in DATA_TYPES: - valid_attributes.append("default") - if "default" in field: - self.validate_value_for_type(type, field["default"], collectionfield) - valid_attributes.append("enum") - if "enum" in field: - if not isinstance(field["enum"], list): - self.errors.append(f"'enum' for {collectionfield}' is not a list.") - for value in field["enum"]: - self.validate_value_for_type(type, value, collectionfield) - - if type in RELATION_TYPES: - valid_attributes.append("on_delete") - if "on_delete" in field and field["on_delete"] not in ( - "CASCADE", - "PROTECT", - ): - self.errors.append( - f"invalid value for 'on_delete' for {collectionfield}" - ) - valid_attributes.append("equal_fields") - - if type == "template": - if "$" not in field_name: - self.errors.append( - f"The template field {collectionfield} is missing a $" - ) - valid_attributes.append("replacement_collection") - elif "$" in field_name and not nested: - print(field_name, field) - self.errors.append(f"The non-template field {collectionfield} contains a $") - - for attr in field.keys(): - if attr not in valid_attributes: - self.errors.append( - f"Attribute '{attr}' for collectionfield {collectionfield} is invalid." - ) - - if not isinstance(field.get("description", ""), str): - self.errors.append(f"Description of {collectionfield} must be a string.") - - if type == "template": - self.check_field(collection, field_name, field["fields"], nested=True) - - def validate_value_for_type( - self, type_str: str, value: Any, collectionfield: str - ) -> None: - basic_types = { - "string": str, - "number": int, - "boolean": bool, - "HTMLStrict": str, - "HTMLPermissive": str, - "timestamp": int, - } - if type_str in basic_types: - if type(value) != basic_types[type_str]: - self.errors.append( - f"Value '{value}' for {collectionfield}' is not a {type_str}." - ) - elif type_str in ("string[]", "number[]"): - if not isinstance(value, list): - self.errors.append( - f"Value '{value}' for {collectionfield}' is not a {type_str}." - ) - for x in value: - if type(x) != basic_types[type_str[:-2]]: - self.errors.append( - f"Listentry '{x}' for {collectionfield}' is not a {type_str[:-2]}." - ) - elif type_str == "JSON": - pass - elif type_str == "float": - if type(value) not in (int, float): - self.errors.append( - f"Value '{value}' for {collectionfield}' is not a float." - ) - elif type_str == "decimal(6)": - if not decimal_regex.match(value): - self.errors.append( - f"Value '{value}' for {collectionfield}' is not a decimal(6)." - ) - elif type_str == "color": - if not color_regex.match(value): - self.errors.append( - f"Value '{value}' for {collectionfield}' is not a color." - ) - else: - raise NotImplementedError(type_str) - - def check_relation( - self, collection: str, field_name: str, field: Dict[str, Any] - ) -> Optional[str]: - collectionfield = f"{collection}{KEYSEPARATOR}{field_name}" - if field["type"] == "template": - field = field["fields"] - to = field["to"] - - if isinstance(to, str): - if not collectionfield_regex.match(to): - return f"'to' of {collectionfield} is not a collectionfield." - return self.check_reverse(collectionfield, to) - elif isinstance(to, list): - for cf in to: - if not collectionfield_regex.match(cf): - return f"The collectionfield in 'to' of {collectionfield} is not valid." - error = self.check_reverse(collectionfield, cf) - if error: - return error - else: - to_field = to["field"] - if not field_regex.match(to_field): - return ( - f"The field '{to_field}' in 'to' of {collectionfield} is not valid." - ) - for c in to["collections"]: - if not collection_regex.match(c): - self.errors.append( - f"The collection '{c}' in 'to' of {collectionfield} is not a valid collection." - ) - error = self.check_reverse( - collectionfield, f"{c}{KEYSEPARATOR}{to['field']}" - ) - if error: - return error - return None - - def check_reverse( - self, from_collectionfield: str, to_collectionfield: str - ) -> Optional[str]: - to_unified = [] # a list of target collectionfields (unififed with all - # the different possibilities for the 'to' field) from the (expected) - # relation in to_collectionfield. The from_collectionfield must be in this - # list. - - to_collection, to_field_name = to_collectionfield.split(KEYSEPARATOR) - if to_collection not in self.models: - return f"The collection '{to_collection}' in 'to' of {from_collectionfield} is not a valid collection." - if to_field_name not in self.models[to_collection]: - return f"The collectionfield '{to_collectionfield}' in 'to' of {from_collectionfield} does not exist." - - to_field = self.models[to_collection][to_field_name] - if to_field["type"] == "template": - to_field = to_field["fields"] - if not isinstance(to_field, dict): - return f"The 'fields' of the template field '{to_collectionfield}' must be a dict to hold a relation." - if to_field["type"] not in RELATION_TYPES: - return f"{from_collectionfield} points to {to_collectionfield}, but {to_collectionfield} to is not a relation." - - to = to_field["to"] - if isinstance(to, str): - to_unified.append(to) - elif isinstance(to, list): - to_unified = to - else: - for c in to["collections"]: - to_unified.append(f"{c}{KEYSEPARATOR}{to['field']}") - - if from_collectionfield not in to_unified: - return f"{from_collectionfield} points to {to_collectionfield}, but {to_collectionfield} does not point back." - return None - - def split_collectionfield(self, collectionfield: str) -> Tuple[str, str]: - parts = collectionfield.split(KEYSEPARATOR) - return parts[0], parts[1] - - -def main() -> int: - files = sys.argv[1:] - if not files: - files = DEFAULT_FILES - - failed = False - for f in files: - with open(f) as data: - try: - Checker(f).run_check() - except CheckException as e: - print(f"Check for {f} failed:\n", e) - failed = True - else: - print(f"Check for {f} successful.") - return 1 if failed else 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/docs/permission.yml b/docs/permission.yml deleted file mode 100644 index 59a06a570..000000000 --- a/docs/permission.yml +++ /dev/null @@ -1,61 +0,0 @@ ---- -# To get a permission string you have to combine the top level string -# with one of the strings in the lower levels. Permissions are e. g. -# agenda_item.can_manage or agenda_item.can_see. - -# The permissions are hierarchical. Users with agenda_item.can_manage do have -# implicitly agenda_item.can_see_internal and agenda_item.can_see. - -agenda_item: - can_manage: - can_see_internal: - can_see: -assignment: - can_manage: - can_nominate_other: - can_see: - can_nominate_self: - can_see: -chat: - can_manage: -list_of_speakers: - can_manage: - can_see: - can_be_speaker: - can_see: -mediafile: - can_manage: - can_see: -meeting: - can_manage_settings: - can_manage_logos_and_fonts: - can_see_frontpage: - can_see_autopilot: - can_see_livestream: - can_see_history: -motion: - can_manage: - can_manage_metadata: - can_see: - can_manage_polls: - can_see: - can_see_internal: - can_see: - can_create: - can_forward_into_this_meeting: - can_see: - can_create_amendments: - can_see: - can_support: - can_see: -poll: - can_manage: -projector: - can_manage: - can_see: -tag: - can_manage: -user: - can_manage: - can_see_extra_data: - can_see: