OpenSlides / OpenSlides/openslides-backend

Implement time limits for motions

Open
#1,582 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
Python
Stars
9
Forks
40
Avg merge
1d 22h
Merged PRs (30d)
19

Description

We need to implement time limits (per meeting) for different types of motions.
These time limits should be implemented as a new model within the meetings: time_limit.
It should include the following fields:

  • name: a string representing the title of the time limit
  • meeting_id: relation to corresponding meeting
  • begin: a timestamp marking the point from which a user is allowed to carry out the associated actions
  • end: a timestamp marking the end of the time period
  • type: a multiselect specifying the actions which the time limit restricts.
    • the selectable options are: create motions, update motions, support motions, create amendments, update amendments, support amendments

There ought to be corresponding new actions time_limit.create, time_limit.update and time_limit.delete that allow the editing of these models.

All actions that involve creating/updating motions or editing the supporters of a motion should have their permissions changed to consider the time_limits in the following manner:

  • If there are no time limits concerning the attempted action, proceed as usual.
  • If there are time limits concerning the attempted action, normal users can only perform that action while the current time is within one of those time limits.
  • Given that certain members staff should be able to edit motions after the fact for organizational reasons there should be a new permission can_ignore_time_limit that causes this time limit check to be skipped.

Which fields of the motion actions will be affected specifically will have to be discussed at a later date.

TODO: What will have to be done in the autoupdate service?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing meeting and motion models, their action permissions, and the autoupdate service. Clarify which motion-action fields are affected and how time limits should interact with autoupdates before implementation. Done means the time_limit model, create/update/delete actions, permission bypass, and affected motion and amendment actions are specified and covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.