Added meeting specific fields for users and changed role system.
This commit is contained in:
parent
9abf787d99
commit
c6b1a254a0
@ -2,12 +2,18 @@
|
|||||||
"organisation": [
|
"organisation": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
"name": "OpenSlides",
|
||||||
|
"description": "The digital motion and assembly system",
|
||||||
"legal_notice": "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.",
|
"legal_notice": "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.",
|
||||||
"openslides_theme": "openslides-theme",
|
"privacy_policy": "",
|
||||||
|
"login_text": "Welcome to OpenSlides. Please login.",
|
||||||
|
"theme": "openslides-theme",
|
||||||
|
"custom_translations": "",
|
||||||
|
"reset_password_verbose_errors": false,
|
||||||
|
|
||||||
|
"enable_electronic_voting": true,
|
||||||
|
|
||||||
"committee_ids": [1],
|
"committee_ids": [1],
|
||||||
"role_ids": [1],
|
|
||||||
"superadmin_role_id": 1,
|
|
||||||
"resource_ids": []
|
"resource_ids": []
|
||||||
}],
|
}],
|
||||||
"user": [
|
"user": [
|
||||||
@ -18,51 +24,45 @@
|
|||||||
"first_name": "",
|
"first_name": "",
|
||||||
"last_name": "Administrator",
|
"last_name": "Administrator",
|
||||||
"is_active": true,
|
"is_active": true,
|
||||||
"is_committee": false,
|
"is_physical_person": true,
|
||||||
"password": "1422e767c5e08bb7196844025a0f98e1x61Ey612Kl2gpFL56FT9weDnpSo4AV8j8+qx2AuTHdRyY036xxzTTrw10Wq3+4qQyB+XURPWx1ONxp3Y3pB37A==",
|
"password": "1422e767c5e08bb7196844025a0f98e1x61Ey612Kl2gpFL56FT9weDnpSo4AV8j8+qx2AuTHdRyY036xxzTTrw10Wq3+4qQyB+XURPWx1ONxp3Y3pB37A==",
|
||||||
"default_password": "admin",
|
"default_password": "admin",
|
||||||
"about_me": "",
|
|
||||||
"gender": "",
|
"gender": "",
|
||||||
"comment": "",
|
|
||||||
"number": "",
|
|
||||||
"structure_level": "",
|
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"default_number": "",
|
||||||
|
"default_structure_level": "",
|
||||||
|
"default_vote_weight": "1.000000",
|
||||||
"last_email_send": null,
|
"last_email_send": null,
|
||||||
"vote_weight": "1.000000",
|
"is_demo_user": false,
|
||||||
|
|
||||||
"role_id": 1,
|
|
||||||
|
|
||||||
|
"organisation_management_level": "superadmin",
|
||||||
"is_present_in_meeting_ids": [],
|
"is_present_in_meeting_ids": [],
|
||||||
"meeting_id": null,
|
"meeting_id": null,
|
||||||
"guest_meeting_ids": [],
|
"guest_meeting_ids": [],
|
||||||
"committee_as_member_ids": [],
|
"committee_as_member_ids": [],
|
||||||
"committee_as_manager_ids": [],
|
"committee_as_manager_ids": [],
|
||||||
|
|
||||||
"projection_ids": [],
|
"comment_$": [],
|
||||||
"current_projector_ids": [],
|
"number_$": [],
|
||||||
|
"structure_level_$": [],
|
||||||
|
"about_me_$": [],
|
||||||
|
"vote_weight_$": [],
|
||||||
|
|
||||||
"group_$_ids": ["1"],
|
"group_$_ids": ["1"],
|
||||||
"group_1_ids": [2],
|
"group_$1_ids": [2],
|
||||||
"speaker_$_ids": [],
|
"speaker_$_ids": [],
|
||||||
"personal_note_$_ids": [],
|
"personal_note_$_ids": [],
|
||||||
"supported_motion_$_ids": [],
|
"supported_motion_$_ids": [],
|
||||||
"submitted_motion_$_ids": [],
|
"submitted_motion_$_ids": [],
|
||||||
"motion_poll_voted_$_ids": [],
|
"poll_voted_$_ids": [],
|
||||||
"motion_vote_$_ids": [],
|
"option_$_ids": [],
|
||||||
|
"vote_$_ids": [],
|
||||||
|
"vote_delegated_vote_$_ids": [],
|
||||||
"assignment_candidate_$_ids": [],
|
"assignment_candidate_$_ids": [],
|
||||||
"assignment_poll_voted_$_ids": [],
|
"projection_$_ids": [],
|
||||||
"assignment_option_$_ids": [],
|
"current_projector_$_ids": [],
|
||||||
"assignment_vote_$_ids": []
|
"vote_delegated_$_to_id": [],
|
||||||
}],
|
"vote_delegations_$_from_ids": []
|
||||||
"role": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"name": "Superadmin role",
|
|
||||||
"permissions": [],
|
|
||||||
|
|
||||||
"organisation_id": 1,
|
|
||||||
"superadmin_role_for_organisation_id": 1,
|
|
||||||
"user_ids": [1]
|
|
||||||
}],
|
}],
|
||||||
"resource": [],
|
"resource": [],
|
||||||
"committee": [
|
"committee": [
|
||||||
@ -83,23 +83,30 @@
|
|||||||
"meeting": [
|
"meeting": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"url_name": "os3_test",
|
"welcome_title": "Welcome to OpenSlides",
|
||||||
"template_for_committee_id": null,
|
"welcome_text": "[Space for your welcome text.]",
|
||||||
"enable_anonymous": false,
|
|
||||||
|
|
||||||
"name": "OpenSlides - Die Veranstaltung (Teil II)",
|
"name": "OpenSlides - Die Veranstaltung (Teil II)",
|
||||||
"description": "Presentation and assembly system",
|
"description": "Presentation and assembly system",
|
||||||
"location": "",
|
"location": "",
|
||||||
"start_time": 0,
|
"start_time": 0,
|
||||||
"end_time": 0,
|
"end_time": 0,
|
||||||
"welcome_title": "Welcome to OpenSlides",
|
|
||||||
"welcome_text": "[Space for your welcome text.]",
|
"jitsi_domain": "",
|
||||||
"custom_translations": [],
|
"jitsi_room_name": "",
|
||||||
|
"jitsi_room_password": "",
|
||||||
|
|
||||||
|
"url_name": "openslides_1",
|
||||||
|
"template_for_committee_id": null,
|
||||||
|
"enable_anonymous": false,
|
||||||
|
|
||||||
"conference_show": false,
|
"conference_show": false,
|
||||||
"conference_auto_connect": false,
|
"conference_auto_connect": false,
|
||||||
"conference_los_restriction": false,
|
"conference_los_restriction": false,
|
||||||
"conference_stream_url": "",
|
"conference_stream_url": "",
|
||||||
|
"conference_open_microphone": true,
|
||||||
|
"conference_open_video": true,
|
||||||
|
"conference_auto_connect_next_speakers": true,
|
||||||
|
|
||||||
"projector_default_countdown_time": 60,
|
"projector_default_countdown_time": 60,
|
||||||
"projector_countdown_warning_time": 0,
|
"projector_countdown_warning_time": 0,
|
||||||
@ -124,9 +131,11 @@
|
|||||||
"list_of_speakers_show_amount_of_speakers_on_slide": true,
|
"list_of_speakers_show_amount_of_speakers_on_slide": true,
|
||||||
"list_of_speakers_present_users_only": false,
|
"list_of_speakers_present_users_only": false,
|
||||||
"list_of_speakers_show_first_contribution": false,
|
"list_of_speakers_show_first_contribution": false,
|
||||||
|
"list_of_speakers_enable_point_of_order_speakers": true,
|
||||||
|
|
||||||
"motions_default_workflow_id": 1,
|
"motions_default_workflow_id": 1,
|
||||||
"motions_statute_amendment_workflow_id": 1,
|
"motions_default_amendment_workflow_id": 1,
|
||||||
|
"motions_default_statute_amendment_workflow_id": 1,
|
||||||
"motions_preamble": "The assembly may decide:",
|
"motions_preamble": "The assembly may decide:",
|
||||||
"motions_default_line_numbering": "none",
|
"motions_default_line_numbering": "none",
|
||||||
"motions_line_length": 90,
|
"motions_line_length": 90,
|
||||||
@ -136,7 +145,7 @@
|
|||||||
"motions_enable_sidebox_on_projector": false,
|
"motions_enable_sidebox_on_projector": false,
|
||||||
"motions_enable_recommendation_on_projector": true,
|
"motions_enable_recommendation_on_projector": true,
|
||||||
"motions_show_referring_motions": true,
|
"motions_show_referring_motions": true,
|
||||||
"motions_show_sequential_numbers": true,
|
"motions_show_sequential_number": true,
|
||||||
"motions_recommendations_by": "",
|
"motions_recommendations_by": "",
|
||||||
"motions_statute_recommendations_by": "",
|
"motions_statute_recommendations_by": "",
|
||||||
"motions_recommendation_text_mode": "original",
|
"motions_recommendation_text_mode": "original",
|
||||||
@ -152,7 +161,6 @@
|
|||||||
"motions_amendments_text_mode": "freestyle",
|
"motions_amendments_text_mode": "freestyle",
|
||||||
"motions_amendments_multiple_paragraphs": true,
|
"motions_amendments_multiple_paragraphs": true,
|
||||||
"motions_supporters_min_amount": 1,
|
"motions_supporters_min_amount": 1,
|
||||||
"motions_supporters_autoremove": false,
|
|
||||||
"motions_export_title": "Motions",
|
"motions_export_title": "Motions",
|
||||||
"motions_export_preamble": "",
|
"motions_export_preamble": "",
|
||||||
"motions_export_submitter_recommendation": false,
|
"motions_export_submitter_recommendation": false,
|
||||||
@ -191,6 +199,7 @@
|
|||||||
"assignment_poll_default_group_ids": [3, 5],
|
"assignment_poll_default_group_ids": [3, 5],
|
||||||
|
|
||||||
"projector_ids": [1],
|
"projector_ids": [1],
|
||||||
|
"projection_ids": [],
|
||||||
"projectiondefault_ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
|
"projectiondefault_ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
|
||||||
"projector_message_ids": [],
|
"projector_message_ids": [],
|
||||||
"projector_countdown_ids": [],
|
"projector_countdown_ids": [],
|
||||||
@ -206,9 +215,16 @@
|
|||||||
"motion_block_ids": [],
|
"motion_block_ids": [],
|
||||||
"motion_workflow_ids": [1],
|
"motion_workflow_ids": [1],
|
||||||
"motion_statute_paragraph_ids": [],
|
"motion_statute_paragraph_ids": [],
|
||||||
"motion_poll_ids": [],
|
"motion_comment_ids": [],
|
||||||
|
"motion_submitter_ids": [],
|
||||||
|
"motion_change_recommendation_ids": [],
|
||||||
|
"motion_state_ids": [],
|
||||||
|
"poll_ids": [],
|
||||||
|
"option_ids": [],
|
||||||
|
"vote_ids": [],
|
||||||
"assignment_ids": [],
|
"assignment_ids": [],
|
||||||
"assignment_poll_ids": [],
|
"assignment_candidate_ids": [],
|
||||||
|
"personal_note_ids": [],
|
||||||
|
|
||||||
"logo_$_id": [],
|
"logo_$_id": [],
|
||||||
"font_$_id": [],
|
"font_$_id": [],
|
||||||
@ -216,9 +232,9 @@
|
|||||||
"committee_id": 1,
|
"committee_id": 1,
|
||||||
"default_meeting_for_committee_id": 1,
|
"default_meeting_for_committee_id": 1,
|
||||||
"present_user_ids": [],
|
"present_user_ids": [],
|
||||||
"temorary_user_ids": [],
|
"temporary_user_ids": [],
|
||||||
"guest_ids": [],
|
"guest_ids": [],
|
||||||
"user_ids": [],
|
"user_ids": [1],
|
||||||
"reference_projector_id": 2,
|
"reference_projector_id": 2,
|
||||||
|
|
||||||
"default_group_id": 1,
|
"default_group_id": 1,
|
||||||
@ -228,8 +244,6 @@
|
|||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"name": "Default",
|
"name": "Default",
|
||||||
"admin_group_for_meeting_id": null,
|
|
||||||
"default_group_for_meeting_id": 1,
|
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"agenda_item.can_see",
|
"agenda_item.can_see",
|
||||||
"agenda_item.can_see_internals",
|
"agenda_item.can_see_internals",
|
||||||
@ -240,12 +254,15 @@
|
|||||||
"motion.can_see",
|
"motion.can_see",
|
||||||
"user.can_see"
|
"user.can_see"
|
||||||
],
|
],
|
||||||
|
|
||||||
"user_ids": [],
|
"user_ids": [],
|
||||||
|
"default_group_for_meeting_id": 1,
|
||||||
|
"admin_group_for_meeting_id": null,
|
||||||
"mediafile_access_group_ids": [],
|
"mediafile_access_group_ids": [],
|
||||||
|
"mediafile_inherited_access_group_ids": [],
|
||||||
"read_comment_section_ids": [],
|
"read_comment_section_ids": [],
|
||||||
"write_comment_section_ids": [],
|
"write_comment_section_ids": [],
|
||||||
"motion_poll_ids": [],
|
"poll_ids": [],
|
||||||
"assignment_poll_ids": [],
|
|
||||||
"used_as_motion_poll_default_id": null,
|
"used_as_motion_poll_default_id": null,
|
||||||
"used_as_assignment_poll_default_id": null,
|
"used_as_assignment_poll_default_id": null,
|
||||||
"meeting_id": 1
|
"meeting_id": 1
|
||||||
@ -253,25 +270,23 @@
|
|||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"name": "Admin",
|
"name": "Admin",
|
||||||
"admin_group_for_meeting_id": 1,
|
|
||||||
"default_group_for_meeting_id": null,
|
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
"user_ids": [],
|
|
||||||
|
"user_ids": [1],
|
||||||
|
"default_group_for_meeting_id": null,
|
||||||
|
"admin_group_for_meeting_id": 1,
|
||||||
"mediafile_access_group_ids": [],
|
"mediafile_access_group_ids": [],
|
||||||
"mediafile_inherited_access_group_ids": [],
|
"mediafile_inherited_access_group_ids": [],
|
||||||
"read_comment_section_ids": [],
|
"read_comment_section_ids": [],
|
||||||
"write_comment_section_ids": [],
|
"write_comment_section_ids": [],
|
||||||
"motion_poll_ids": [],
|
"poll_ids": [],
|
||||||
"assignment_poll_ids": [],
|
"used_as_motion_poll_default_id": null,
|
||||||
"used_as_motion_poll_default_id": 1,
|
|
||||||
"used_as_assignment_poll_default_id": null,
|
"used_as_assignment_poll_default_id": null,
|
||||||
"meeting_id": 1
|
"meeting_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"name": "Staff",
|
"name": "Staff",
|
||||||
"admin_group_for_meeting_id": null,
|
|
||||||
"default_group_for_meeting_id": null,
|
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"agenda_item.can_manage",
|
"agenda_item.can_manage",
|
||||||
"agenda_item.can_see",
|
"agenda_item.can_see",
|
||||||
@ -296,21 +311,20 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"user_ids": [],
|
"user_ids": [],
|
||||||
|
"default_group_for_meeting_id": null,
|
||||||
|
"admin_group_for_meeting_id": null,
|
||||||
"mediafile_access_group_ids": [],
|
"mediafile_access_group_ids": [],
|
||||||
"mediafile_inherited_access_group_ids": [],
|
"mediafile_inherited_access_group_ids": [],
|
||||||
"read_comment_section_ids": [],
|
"read_comment_section_ids": [],
|
||||||
"write_comment_section_ids": [],
|
"write_comment_section_ids": [],
|
||||||
"motion_poll_ids": [],
|
"poll_ids": [],
|
||||||
"assignment_poll_ids": [],
|
"used_as_motion_poll_default_id": null,
|
||||||
"used_as_motion_poll_default_id": 1,
|
"used_as_assignment_poll_default_id": null,
|
||||||
"used_as_assignment_poll_default_id": 1,
|
|
||||||
"meeting_id": 1
|
"meeting_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"name": "Committees",
|
"name": "Committees",
|
||||||
"admin_group_for_meeting_id": null,
|
|
||||||
"default_group_for_meeting_id": null,
|
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"agenda_item.can_see",
|
"agenda_item.can_see",
|
||||||
"agenda_item.can_see_internals",
|
"agenda_item.can_see_internals",
|
||||||
@ -325,20 +339,20 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"user_ids": [],
|
"user_ids": [],
|
||||||
|
"default_group_for_meeting_id": null,
|
||||||
|
"admin_group_for_meeting_id": null,
|
||||||
"mediafile_access_group_ids": [],
|
"mediafile_access_group_ids": [],
|
||||||
|
"mediafile_inherited_access_group_ids": [],
|
||||||
"read_comment_section_ids": [],
|
"read_comment_section_ids": [],
|
||||||
"write_comment_section_ids": [],
|
"write_comment_section_ids": [],
|
||||||
"motion_poll_ids": [],
|
"poll_ids": [],
|
||||||
"assignment_poll_ids": [],
|
|
||||||
"used_as_motion_poll_default_id": null,
|
"used_as_motion_poll_default_id": null,
|
||||||
"used_as_assignment_poll_default_id": 1,
|
"used_as_assignment_poll_default_id": null,
|
||||||
"meeting_id": 1
|
"meeting_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
"name": "Delegates",
|
"name": "Delegates",
|
||||||
"admin_group_for_meeting_id": null,
|
|
||||||
"default_group_for_meeting_id": null,
|
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"agenda_item.can_see",
|
"agenda_item.can_see",
|
||||||
"agenda_item.can_see_internals",
|
"agenda_item.can_see_internals",
|
||||||
@ -357,13 +371,15 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"user_ids": [],
|
"user_ids": [],
|
||||||
|
"default_group_for_meeting_id": null,
|
||||||
|
"admin_group_for_meeting_id": null,
|
||||||
"mediafile_access_group_ids": [],
|
"mediafile_access_group_ids": [],
|
||||||
|
"mediafile_inherited_access_group_ids": [],
|
||||||
"read_comment_section_ids": [],
|
"read_comment_section_ids": [],
|
||||||
"write_comment_section_ids": [],
|
"write_comment_section_ids": [],
|
||||||
"motion_poll_ids": [],
|
"poll_ids": [],
|
||||||
"assignment_poll_ids": [],
|
"used_as_motion_poll_default_id": 1,
|
||||||
"used_as_motion_poll_default_id": null,
|
"used_as_assignment_poll_default_id": 1,
|
||||||
"used_as_assignment_poll_default_id": null,
|
|
||||||
"meeting_id": 1
|
"meeting_id": 1
|
||||||
}],
|
}],
|
||||||
"personal_note": [],
|
"personal_note": [],
|
||||||
@ -399,7 +415,8 @@
|
|||||||
"motion_ids": [],
|
"motion_ids": [],
|
||||||
"motion_recommendation_ids": [],
|
"motion_recommendation_ids": [],
|
||||||
"workflow_id": 1,
|
"workflow_id": 1,
|
||||||
"first_state_of_workflow_id": 1
|
"first_state_of_workflow_id": 1,
|
||||||
|
"meeting_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
@ -420,7 +437,8 @@
|
|||||||
"motion_ids": [],
|
"motion_ids": [],
|
||||||
"motion_recommendation_ids": [],
|
"motion_recommendation_ids": [],
|
||||||
"workflow_id": 1,
|
"workflow_id": 1,
|
||||||
"first_state_of_workflow_id": null
|
"first_state_of_workflow_id": null,
|
||||||
|
"meeting_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
@ -441,7 +459,8 @@
|
|||||||
"motion_ids": [],
|
"motion_ids": [],
|
||||||
"motion_recommendation_ids": [],
|
"motion_recommendation_ids": [],
|
||||||
"workflow_id": 1,
|
"workflow_id": 1,
|
||||||
"first_state_of_workflow_id": null
|
"first_state_of_workflow_id": null,
|
||||||
|
"meeting_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@ -462,7 +481,8 @@
|
|||||||
"motion_ids": [],
|
"motion_ids": [],
|
||||||
"motion_recommendation_ids": [],
|
"motion_recommendation_ids": [],
|
||||||
"workflow_id": 1,
|
"workflow_id": 1,
|
||||||
"first_state_of_workflow_id": null
|
"first_state_of_workflow_id": null,
|
||||||
|
"meeting_id": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"motion_workflow": [
|
"motion_workflow": [
|
||||||
@ -473,18 +493,16 @@
|
|||||||
"state_ids": [1, 2, 3, 4],
|
"state_ids": [1, 2, 3, 4],
|
||||||
"first_state_id": 1,
|
"first_state_id": 1,
|
||||||
"default_workflow_meeting_id": 1,
|
"default_workflow_meeting_id": 1,
|
||||||
"default_statute_amendments_meeting_id": 1,
|
"default_amendment_workflow_meeting_id": 1,
|
||||||
|
"default_statute_amendment_workflow_meeting_id": 1,
|
||||||
"meeting_id": 1
|
"meeting_id": 1
|
||||||
}],
|
}],
|
||||||
"motion_statute_paragraph": [],
|
"motion_statute_paragraph": [],
|
||||||
"motion_poll": [],
|
"poll": [],
|
||||||
"motion_option": [],
|
"option": [],
|
||||||
"motion_vote": [],
|
"vote": [],
|
||||||
"assignment": [],
|
"assignment": [],
|
||||||
"assignment_candidate": [],
|
"assignment_candidate": [],
|
||||||
"assignment_poll": [],
|
|
||||||
"assignment_option": [],
|
|
||||||
"assignment_vote": [],
|
|
||||||
"mediafile": [],
|
"mediafile": [],
|
||||||
"projector": [
|
"projector": [
|
||||||
{
|
{
|
||||||
|
@ -4,13 +4,11 @@
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"legal_notice": "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.",
|
"legal_notice": "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.",
|
||||||
"privacy_policy": "",
|
"privacy_policy": "",
|
||||||
"login_info_text": "Guten Morgen!",
|
"login_text": "Guten Morgen!",
|
||||||
"openslides_theme": "openslides-theme",
|
"theme": "openslides-theme",
|
||||||
"custom_translations": [],
|
"custom_translations": [],
|
||||||
|
|
||||||
"committee_ids": [1],
|
"committee_ids": [1],
|
||||||
"role_ids": [1],
|
|
||||||
"superadmin_role_id": 1,
|
|
||||||
"resource_ids": [1]
|
"resource_ids": [1]
|
||||||
}],
|
}],
|
||||||
"user": [
|
"user": [
|
||||||
@ -24,16 +22,14 @@
|
|||||||
"is_physical_person": true,
|
"is_physical_person": true,
|
||||||
"password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758flD5BVZAZ8jLy4nYW9iomHcnkXWkfk3PgBjeiTSxjGG7+fBjMBxsaS1vIiAMxYh+K38l0gDW4wcP+i8tgoc4UBg==",
|
"password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758flD5BVZAZ8jLy4nYW9iomHcnkXWkfk3PgBjeiTSxjGG7+fBjMBxsaS1vIiAMxYh+K38l0gDW4wcP+i8tgoc4UBg==",
|
||||||
"default_password": "admin",
|
"default_password": "admin",
|
||||||
"about_me": "",
|
|
||||||
"gender": "",
|
"gender": "",
|
||||||
"comment": "",
|
|
||||||
"number": "",
|
|
||||||
"structure_level": "",
|
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"default_number": "",
|
||||||
|
"default_structure_level": "",
|
||||||
|
"default_vote_weight": "1.000000",
|
||||||
"last_email_send": null,
|
"last_email_send": null,
|
||||||
"vote_weight": "1.000000",
|
|
||||||
|
|
||||||
"role_id": 1,
|
"organisation_management_level": "superadmin",
|
||||||
|
|
||||||
"is_present_in_meeting_ids": [1],
|
"is_present_in_meeting_ids": [1],
|
||||||
"meeting_id": null,
|
"meeting_id": null,
|
||||||
@ -41,6 +37,17 @@
|
|||||||
"committee_as_member_ids": [],
|
"committee_as_member_ids": [],
|
||||||
"committee_as_manager_ids": [],
|
"committee_as_manager_ids": [],
|
||||||
|
|
||||||
|
"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_$_ids": ["1"],
|
||||||
"group_$1_ids": [2],
|
"group_$1_ids": [2],
|
||||||
"speaker_$_ids": ["1"],
|
"speaker_$_ids": ["1"],
|
||||||
@ -75,16 +82,14 @@
|
|||||||
"is_physical_person": true,
|
"is_physical_person": true,
|
||||||
"password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758fDB3tv5HcCtPRREt7bPGqerTf1AbmoKXt/fVFkLY4znDRh2Yy0m3ZjXD0nHI8oa6KrGlHH/cvysfvf8i2fWIzmw==",
|
"password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758fDB3tv5HcCtPRREt7bPGqerTf1AbmoKXt/fVFkLY4znDRh2Yy0m3ZjXD0nHI8oa6KrGlHH/cvysfvf8i2fWIzmw==",
|
||||||
"default_password": "a",
|
"default_password": "a",
|
||||||
"about_me": "",
|
|
||||||
"gender": "",
|
"gender": "",
|
||||||
"comment": "",
|
|
||||||
"number": "",
|
|
||||||
"structure_level": "",
|
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"default_number": "",
|
||||||
|
"default_structure_level": "",
|
||||||
|
"default_vote_weight": "1.000000",
|
||||||
"last_email_send": null,
|
"last_email_send": null,
|
||||||
"vote_weight": "1.000000",
|
|
||||||
|
|
||||||
"role_id": null,
|
"organisation_management_level": "",
|
||||||
|
|
||||||
"is_present_in_meeting_ids": [],
|
"is_present_in_meeting_ids": [],
|
||||||
"meeting_id": null,
|
"meeting_id": null,
|
||||||
@ -92,6 +97,17 @@
|
|||||||
"committee_as_member_ids": [],
|
"committee_as_member_ids": [],
|
||||||
"committee_as_manager_ids": [],
|
"committee_as_manager_ids": [],
|
||||||
|
|
||||||
|
"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_$_ids": ["1"],
|
||||||
"group_$1_ids": [6],
|
"group_$1_ids": [6],
|
||||||
"speaker_$_ids": ["1"],
|
"speaker_$_ids": ["1"],
|
||||||
@ -121,16 +137,14 @@
|
|||||||
"is_physical_person": true,
|
"is_physical_person": true,
|
||||||
"password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758fIxDxvpkn6dDLRxT9DxJhZ/f04AL2oK2beICRFobSw53CI93U+dfN+w+NaL7BvrcR4JWuMj9NkH4dVjnnI0YTkg==",
|
"password": "316af7b2ddc20ead599c38541fbe87e9a9e4e960d4017d6e59de188b41b2758fIxDxvpkn6dDLRxT9DxJhZ/f04AL2oK2beICRFobSw53CI93U+dfN+w+NaL7BvrcR4JWuMj9NkH4dVjnnI0YTkg==",
|
||||||
"default_password": "jKwSLGCk",
|
"default_password": "jKwSLGCk",
|
||||||
"about_me": "",
|
|
||||||
"gender": "",
|
"gender": "",
|
||||||
"comment": "",
|
|
||||||
"number": "",
|
|
||||||
"structure_level": "",
|
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"default_number": "",
|
||||||
|
"default_structure_level": "",
|
||||||
|
"default_vote_weight": "1.000000",
|
||||||
"last_email_send": null,
|
"last_email_send": null,
|
||||||
"vote_weight": "1.000000",
|
|
||||||
|
|
||||||
"role_id": null,
|
"organisation_management_level": "",
|
||||||
|
|
||||||
"is_present_in_meeting_ids": [],
|
"is_present_in_meeting_ids": [],
|
||||||
"meeting_id": null,
|
"meeting_id": null,
|
||||||
@ -138,6 +152,17 @@
|
|||||||
"committee_as_member_ids": [],
|
"committee_as_member_ids": [],
|
||||||
"committee_as_manager_ids": [],
|
"committee_as_manager_ids": [],
|
||||||
|
|
||||||
|
"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": [],
|
"group_$_ids": [],
|
||||||
"speaker_$_ids": ["1"],
|
"speaker_$_ids": ["1"],
|
||||||
"speaker_$1_ids": [4, 8, 9],
|
"speaker_$1_ids": [4, 8, 9],
|
||||||
@ -157,16 +182,6 @@
|
|||||||
"vote_delegated_$_to_id": [],
|
"vote_delegated_$_to_id": [],
|
||||||
"vote_delegations_$_from_ids": []
|
"vote_delegations_$_from_ids": []
|
||||||
}],
|
}],
|
||||||
"role": [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"name": "Superadmin role",
|
|
||||||
"permissions": [],
|
|
||||||
|
|
||||||
"organisation_id": 1,
|
|
||||||
"superadmin_role_for_organisation_id": 1,
|
|
||||||
"user_ids": [1]
|
|
||||||
}],
|
|
||||||
"resource": [
|
"resource": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
@ -205,7 +220,6 @@
|
|||||||
"end_time": 0,
|
"end_time": 0,
|
||||||
"welcome_title": "Welcome to OpenSlides",
|
"welcome_title": "Welcome to OpenSlides",
|
||||||
"welcome_text": "[Space for your welcome text.]",
|
"welcome_text": "[Space for your welcome text.]",
|
||||||
"custom_translations": [],
|
|
||||||
|
|
||||||
"conference_show": false,
|
"conference_show": false,
|
||||||
"conference_auto_connect": false,
|
"conference_auto_connect": false,
|
||||||
@ -253,7 +267,7 @@
|
|||||||
"motions_enable_sidebox_on_projector": true,
|
"motions_enable_sidebox_on_projector": true,
|
||||||
"motions_enable_recommendation_on_projector": true,
|
"motions_enable_recommendation_on_projector": true,
|
||||||
"motions_show_referring_motions": true,
|
"motions_show_referring_motions": true,
|
||||||
"motions_show_sequential_numbers": true,
|
"motions_show_sequential_number": true,
|
||||||
"motions_recommendations_by": "ABK",
|
"motions_recommendations_by": "ABK",
|
||||||
"motions_statute_recommendations_by": "Statute ABK",
|
"motions_statute_recommendations_by": "Statute ABK",
|
||||||
"motions_recommendation_text_mode": "original",
|
"motions_recommendation_text_mode": "original",
|
||||||
@ -1296,8 +1310,7 @@
|
|||||||
"submitter_ids": [1],
|
"submitter_ids": [1],
|
||||||
"supporter_ids": [],
|
"supporter_ids": [],
|
||||||
"poll_ids": [1, 2],
|
"poll_ids": [1, 2],
|
||||||
"option_$_ids": ["1"],
|
"option_ids": [1, 3],
|
||||||
"option_$1_ids": [1, 2],
|
|
||||||
"change_recommendation_ids": [],
|
"change_recommendation_ids": [],
|
||||||
"statute_paragraph_id": null,
|
"statute_paragraph_id": null,
|
||||||
"comment_ids": [1],
|
"comment_ids": [1],
|
||||||
@ -1342,7 +1355,7 @@
|
|||||||
"submitter_ids": [2],
|
"submitter_ids": [2],
|
||||||
"supporter_ids": [],
|
"supporter_ids": [],
|
||||||
"poll_ids": [],
|
"poll_ids": [],
|
||||||
"option_$_ids": [],
|
"option_ids": [],
|
||||||
"change_recommendation_ids": [],
|
"change_recommendation_ids": [],
|
||||||
"statute_paragraph_id": null,
|
"statute_paragraph_id": null,
|
||||||
"comment_ids": [],
|
"comment_ids": [],
|
||||||
@ -1387,7 +1400,7 @@
|
|||||||
"submitter_ids": [3],
|
"submitter_ids": [3],
|
||||||
"supporter_ids": [3],
|
"supporter_ids": [3],
|
||||||
"poll_ids": [],
|
"poll_ids": [],
|
||||||
"option_$_ids": [],
|
"option_ids": [],
|
||||||
"change_recommendation_ids": [5],
|
"change_recommendation_ids": [5],
|
||||||
"statute_paragraph_id": null,
|
"statute_paragraph_id": null,
|
||||||
"comment_ids": [],
|
"comment_ids": [],
|
||||||
@ -1432,7 +1445,7 @@
|
|||||||
"submitter_ids": [4],
|
"submitter_ids": [4],
|
||||||
"supporter_ids": [],
|
"supporter_ids": [],
|
||||||
"poll_ids": [],
|
"poll_ids": [],
|
||||||
"option_$_ids": [],
|
"option_ids": [],
|
||||||
"change_recommendation_ids": [4],
|
"change_recommendation_ids": [4],
|
||||||
"statute_paragraph_id": null,
|
"statute_paragraph_id": null,
|
||||||
"comments": [],
|
"comments": [],
|
||||||
|
@ -81,12 +81,6 @@ organisation:
|
|||||||
committee_ids:
|
committee_ids:
|
||||||
type: relation-list
|
type: relation-list
|
||||||
to: committee/organisation_id
|
to: committee/organisation_id
|
||||||
role_ids:
|
|
||||||
type: relation-list
|
|
||||||
to: role/organisation_id
|
|
||||||
superadmin_role_id:
|
|
||||||
type: relation
|
|
||||||
to: role/superadmin_role_for_organisation_id
|
|
||||||
resource_ids:
|
resource_ids:
|
||||||
type: relation-list
|
type: relation-list
|
||||||
to: resource/organisation_id
|
to: resource/organisation_id
|
||||||
@ -103,28 +97,24 @@ user:
|
|||||||
default: true
|
default: true
|
||||||
password: string
|
password: string
|
||||||
default_password: string
|
default_password: string
|
||||||
about_me: HTMLStrict
|
|
||||||
gender: string
|
gender: string
|
||||||
comment: HTMLStrict
|
|
||||||
number: string
|
|
||||||
structure_level: string
|
|
||||||
email: string
|
email: string
|
||||||
|
default_number: string
|
||||||
|
default_structure_level: string
|
||||||
|
default_vote_weight: decimal(6)
|
||||||
last_email_send: string
|
last_email_send: string
|
||||||
vote_weight: decimal(6)
|
|
||||||
is_demo_user:
|
is_demo_user:
|
||||||
type: boolean
|
type: boolean
|
||||||
read_only: true
|
read_only: true
|
||||||
|
|
||||||
role_id:
|
# Organisation, meeting and committee
|
||||||
type: relation
|
organisation_management_level:
|
||||||
to: role/user_ids # Attention: prevent impelenting a "default-role" or let a
|
type: string
|
||||||
# user create such a role! This would cause the user_ids-array for this
|
description: Hierarchical permission level for the whole organisation.
|
||||||
# role to explode in size. If a user has no role, it should be handles as
|
enum:
|
||||||
# the user has no permission in the organisation and is a "normal" delegate
|
- superadmin
|
||||||
# there. Just a few users (expected <100) should even get a role and all
|
- can_manage_organisation
|
||||||
# other don't.
|
- can_manage_users
|
||||||
|
|
||||||
# Meeting and committee
|
|
||||||
is_present_in_meeting_ids:
|
is_present_in_meeting_ids:
|
||||||
type: relation-list
|
type: relation-list
|
||||||
to: meeting/present_user_ids
|
to: meeting/present_user_ids
|
||||||
@ -141,6 +131,24 @@ user:
|
|||||||
type: relation-list
|
type: relation-list
|
||||||
to: committee/manager_ids
|
to: committee/manager_ids
|
||||||
|
|
||||||
|
# Meeting specific personal data
|
||||||
|
# Replacement is te meeting id but it is not a structured relation.
|
||||||
|
comment_$:
|
||||||
|
type: template
|
||||||
|
fields: HTMLStrict
|
||||||
|
number_$:
|
||||||
|
type: template
|
||||||
|
fields: string
|
||||||
|
structure_level_$:
|
||||||
|
type: template
|
||||||
|
fields: string
|
||||||
|
about_me_$:
|
||||||
|
type: template
|
||||||
|
fields: HTMLStrict
|
||||||
|
vote_weight_$:
|
||||||
|
type: template
|
||||||
|
fields: decimal(6)
|
||||||
|
|
||||||
# All foreign keys are meeting-specific:
|
# All foreign keys are meeting-specific:
|
||||||
# - Keys are smaller (Space is in O(n^2) for n keys
|
# - Keys are smaller (Space is in O(n^2) for n keys
|
||||||
# in the relation), so this saves storagespace
|
# in the relation), so this saves storagespace
|
||||||
@ -233,21 +241,6 @@ user:
|
|||||||
type: relation-list
|
type: relation-list
|
||||||
to: user/vote_delegated_$_to_id
|
to: user/vote_delegated_$_to_id
|
||||||
|
|
||||||
role:
|
|
||||||
id: number
|
|
||||||
name: string
|
|
||||||
permissions: string[]
|
|
||||||
|
|
||||||
organisation_id:
|
|
||||||
type: relation
|
|
||||||
to: organisation/role_ids
|
|
||||||
superadmin_role_for_organisation_id:
|
|
||||||
type: relation
|
|
||||||
to: organisation/superadmin_role_id
|
|
||||||
user_ids:
|
|
||||||
type: relation-list
|
|
||||||
to: user/role_id
|
|
||||||
|
|
||||||
# New: Resource
|
# New: Resource
|
||||||
# Resources are organsation wide "mediafiles", like logos for the organisatio or
|
# Resources are organsation wide "mediafiles", like logos for the organisatio or
|
||||||
# organisation-wide fonts. Therefore, no permission checks are done and the user
|
# organisation-wide fonts. Therefore, no permission checks are done and the user
|
||||||
@ -641,7 +634,7 @@ meeting:
|
|||||||
users_email_body: string
|
users_email_body: string
|
||||||
|
|
||||||
# Assignments
|
# Assignments
|
||||||
assignemnts_export_title:
|
assignments_export_title:
|
||||||
type: string
|
type: string
|
||||||
default: Elections
|
default: Elections
|
||||||
assignments_export_preamble:
|
assignments_export_preamble:
|
||||||
|
100
docs/modelsvalidator/check_json.py
Normal file
100
docs/modelsvalidator/check_json.py
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# This script requires fastjsonschema and pyyaml to be installed e. g. via pip.
|
||||||
|
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
from typing import Any, Dict, Iterable
|
||||||
|
|
||||||
|
import fastjsonschema # type:ignore
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
MODELS_YML_PATH = "../../docs/models.yml"
|
||||||
|
|
||||||
|
CHECKED_FILES = [
|
||||||
|
"../../docker/initial-data.json",
|
||||||
|
"../../docs/example-data.json",
|
||||||
|
]
|
||||||
|
|
||||||
|
SCHEMA = fastjsonschema.compile(
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
|
"title": "Schema for initial and example data.",
|
||||||
|
"type": "object",
|
||||||
|
"patternProperties": {
|
||||||
|
"^[a-z_]+$": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {"id": {"type": "number"}},
|
||||||
|
"required": ["id"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": False,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class CheckException(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def run_check(data: Dict) -> None:
|
||||||
|
try:
|
||||||
|
SCHEMA(data)
|
||||||
|
except fastjsonschema.exceptions.JsonSchemaException as e:
|
||||||
|
raise CheckException(f"JSON does not match schema: {str(e)}")
|
||||||
|
check_collections(data.keys())
|
||||||
|
for collection, elements in data.items():
|
||||||
|
for element in elements:
|
||||||
|
check_instance(collection, element)
|
||||||
|
|
||||||
|
|
||||||
|
def get_models() -> Dict[str, Any]:
|
||||||
|
with open(MODELS_YML_PATH, "rb") as x:
|
||||||
|
models_yml = x.read()
|
||||||
|
models_yml = models_yml.replace(" yes:".encode(), ' "yes":'.encode())
|
||||||
|
models_yml = models_yml.replace(" no:".encode(), ' "no":'.encode())
|
||||||
|
return yaml.safe_load(models_yml)
|
||||||
|
|
||||||
|
|
||||||
|
def check_collections(collections: Iterable[str]) -> None:
|
||||||
|
c1 = set(collections)
|
||||||
|
c2 = set(get_models().keys())
|
||||||
|
if c1 != c2:
|
||||||
|
err = "Collections in JSON file do not match with models.yml."
|
||||||
|
if c2 - c1:
|
||||||
|
err += f" Missing collections: {', '.join(c2-c1)}."
|
||||||
|
if c1 - c2:
|
||||||
|
err += f" Invalid collections: {', '.join(c1-c2)}."
|
||||||
|
raise CheckException(err)
|
||||||
|
|
||||||
|
|
||||||
|
def check_instance(name: str, instance: Dict[str, Any]) -> None:
|
||||||
|
collection = get_models()[name]
|
||||||
|
for field_name in instance.keys():
|
||||||
|
if "$" in field_name and not ("$_" in field_name or field_name[-1] == "$"):
|
||||||
|
# Structured field.
|
||||||
|
# TODO: Check this.
|
||||||
|
continue
|
||||||
|
if field_name not in collection.keys():
|
||||||
|
raise CheckException(f"Bad field in {name}: {field_name}")
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
failed = False
|
||||||
|
for f in CHECKED_FILES:
|
||||||
|
with open(f) as data:
|
||||||
|
try:
|
||||||
|
run_check(json.load(data))
|
||||||
|
except CheckException as e:
|
||||||
|
print(f"Check for {f} failed:", e)
|
||||||
|
failed = True
|
||||||
|
else:
|
||||||
|
print(f"Check for {f} successful.")
|
||||||
|
if failed:
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
@ -1 +1 @@
|
|||||||
Subproject commit 8caa333f9139e81d36ce775e25d3555ed14c9f15
|
Subproject commit 667b32e2306ecfcfe3273c92c1e46c2f11055c06
|
@ -1 +1 @@
|
|||||||
Subproject commit 1ac2192ac3bdfe18e3468e00197bfb067b69b112
|
Subproject commit 193149e9b6e50862f17ea278ba3b660eb1826589
|
@ -1 +1 @@
|
|||||||
Subproject commit 6db3ecb09ecc4b49b20bb7fb6b24a057678ea27f
|
Subproject commit cdf1b72b2252d1179d8e4a548f23b8df31e33c4c
|
@ -1 +1 @@
|
|||||||
Subproject commit 532f86b21c392bcdc9cab6d24351f9905c739214
|
Subproject commit a7c93cf9db1f29de57c07b05a3fefd63b0900ec7
|
Loading…
Reference in New Issue
Block a user