Commit Graph

4423 Commits

Author SHA1 Message Date
FinnStutzenstein
7a97aa1b79 Cleanup for #5300 2020-04-07 09:53:16 +02:00
Joshua Sangmeister
b7b8620153 removed race condition & cleanup 2020-04-07 07:27:54 +02:00
FinnStutzenstein
7882ea1a25 Added vote weight and fixed named voting 2020-04-07 07:27:54 +02:00
Finn Stutzenstein
83d57e9da7
Merge pull request #5290 from FinnStutzenstein/redisWaitForReplication
Redis: Wait for replication on writes
2020-04-01 13:32:11 +02:00
FinnStutzenstein
bb2f958eb5 Redis: Wait for replication on writes
Since channels_redis does not support dedicated read-redis instances, the
autoupdate message may be received before the data was replicated. All workers
read the autoupdate message from the write host, so there is a race between
getting this message and a finished replication. For large payloads, the
replication is slower in the most cases (even more in a distributed setup, where
the master and replica are on different nodes). The easy way is to wait for
replication. But there is one difficulty: The number of replicas has to be
known. There is a new settings-variable "AMOUNT_REPLICAS" which defaults to 1.
It needs to be set correctly! If it is too high, every autoupdate will be
delayed by 1 seconds because of a timeout witing for non-existent replicas. If
it is too low, some autoupdates may be wrong (and not detectable by the client!)
becuase of reading from non-synchronised relicas.

The other possibility is to fork channel_redis and add the feature of a
read-only redis. This ould help, because on a single redis instance all commands
are ordered: First, the data is synced, then the autoupdate message. Attention:
This means, if redis-replicas are scaled up, one must make sure to read from the
same instance. I think this is not possible in the way how dockers overlay
networks work. The only way would be to open one connection and reuse the
connection from channels_redis in OpenSlides. This would mean a heavy
integration of channels_redis (meaning including the source code in our repo).

For the first fix, this one is easy and should work.
2020-04-01 13:09:48 +02:00
Emanuel Schütze
4419e76223
Merge pull request #5289 from FinnStutzenstein/fixMissingMigrations
Added missing migrations
2020-03-30 11:16:38 +02:00
FinnStutzenstein
3be28ec50a Added missing migrations 2020-03-30 10:58:42 +02:00
Emanuel Schütze
baa1787189 Updated Translations 2020-03-30 10:57:10 +02:00
Sean
39ccfe3147 Add set present toggle in user menu
adds a "is present" toggle to the user menu
Refactor user menu into own component
Add a config variable to determine if the user is allowed
to set themselve as present
2020-03-30 09:57:57 +02:00
FinnStutzenstein
123df7660f Changed the default projector aspect ratio to 16:9 on initial database creation 2020-03-24 12:09:11 +01:00
Emanuel Schütze
5a6d2d2e42 Updated translations 2020-03-20 17:19:12 +01:00
Sean
072ec937a1 Rework assignment poll slide
Reworked assignment poll slide
and refactored the assignment poll detail table
into an own component
2020-03-20 16:53:31 +01:00
FinnStutzenstein
64f2720b1a Last changes and cleanup some todos 2020-03-17 07:24:50 +01:00
Emanuel Schütze
d15c9892ed Updated translation strings and German translation. 2020-03-17 07:24:49 +01:00
Sean Engelhardt
ee4c6aa0bf Even more voting refinement
Various additional refinements for a more well rounded
voting experience
2020-03-17 07:24:49 +01:00
FinnStutzenstein
a05662a0f8 Show global votes in the single votes table 2020-03-17 07:24:49 +01:00
Sean Engelhardt
3c36441967 Add global no and abstain to form
Minur UI changes
Minor Chart enhancements
Server Changes
2020-03-17 07:24:48 +01:00
Sean Engelhardt
8fe5a0c9f4 Rework assignment voting
- Remove "assignments.can_manage_polls" permission
- Let the client handle some user errors
- Add a send button to manually submit polls
- Show a hint that the user already submitted a vote
  - will not (and should not) work for non-nominal voting
- submitting a vote cannot be changed anymore
  - user will have to confirm sending
- enable deselecting YNA-votings
- nomainal voting will behace the same as non nominal voting
- submitting empty votes should be possible

Perhaps server side adjustments might still be required
2020-03-17 07:24:48 +01:00
Sean Engelhardt
61b7731073 Enhance charts and tables for assignments
Also some various improvements
2020-03-17 07:24:48 +01:00
FinnStutzenstein
e2feeb4b65 Fixed pseudoanonymous voting for motions 2020-03-17 07:24:47 +01:00
Joshua Sangmeister
72678770bb table update on pseudoanonymize, view base classes for votes and
options, renaming for assignment percent bases
2020-03-17 07:24:46 +01:00
Joshua Sangmeister
82c8ade0ba adds all user that voted to required users for single votes table 2020-03-17 07:24:46 +01:00
Emanuel Schütze
2d13519c35 Updated voting strings for translation 2020-03-17 07:24:46 +01:00
Sean Engelhardt
97a5bb4aa6 Cleanup Voting, enhance UI and UX
removed certain unnecesary fields
cleaned up a lot of code
redone some of the UI
some database and server adjustments
2020-03-17 07:24:45 +01:00
Joshua Sangmeister
7598fc5367 Fixed the numbering of assignment candidates for projector and PDF 2020-03-17 07:24:45 +01:00
Joshua Sangmeister
b48ca8c434 added chart projection for polls 2020-03-17 07:24:45 +01:00
Sean Engelhardt
6ba0d0c5e6 Client side changes 2020-03-17 07:24:44 +01:00
FinnStutzenstein
0b37c5a857 WIP: Partial requests 2020-03-17 07:24:44 +01:00
Sean Engelhardt
6044c63c28 Enhance Assignment Voting
- repaired the PDF Service for ballots
- fixed some permission errors
- analog voting has no "started" option anymore
- more-link as button
- named voting has a progress bar
- Shows the poll type for eVoting
- Moves and declutters meta info
- Enhance the grid and the layout in detail view
- declutter and enhance the dot-menus
- some other layout changes
- remove breadcrumbs in assignment detail
- other cleanups refinements
- Voting in Assignment over instead of forms
(requires more server changes)
2020-03-17 07:24:43 +01:00
Sean
524a97cdcc Enhance voting
- cleaned up a lot of code
- removed required majotiry from forms
- renamed verbose "Majority method" to "Required majority"
- poll-progress-bar only counts present user
- enhanced motion poll tile chart layout
- removed PercentBase.Votes
- added pollPercentBase pipe
- Show the voting percent next to chart in motion detail
- change the head bar to "Voting is open"
  and "Ballot is open"
- merged the voting configs to their corresponding config-categories
- re-add ballot paper configs
- Add "more" button to motion polls
- Adjusted the motion results table
  - Hide entries without information
  - Show icons for Y N A
  - Show percentage next to Y N A
2020-03-17 07:24:43 +01:00
Joshua Sangmeister
df1047fc76 various improvements for polls 2020-03-17 07:24:42 +01:00
Joshua Sangmeister
bc54a6eb46 improved 'votes' pollmethod 2020-03-17 07:24:42 +01:00
Joshua Sangmeister
b16afaa285 number poll candidates depending on setting 2020-03-17 07:24:40 +01:00
FinnStutzenstein
e2585fb757 Projector for polls: Server, client structure and data modeling 2020-03-17 07:24:40 +01:00
Sean Engelhardt
84a39ccb62 More voting UI improvements
For Motion poll:
- Overworked how motion poll chart displays the legend
- Added the vote counter to the motion detail
- Added a progress bar to the vote counter
- Fixed some perm errors with the chart
- Show a "Singe Votes" link as button for published named polls
- Replace the edit-button with a dot-menu
  - Having project, Edit, PDF and Delete

For Motion Poll detail:
- enhance search panel
- Remove the breadcrumbs
- Remove the vote counter
- Enhanced the single-vote grid, table and filter bar
- Enhance how the poll state enum was checkend

For the Motion Poll Create/Update Form:
- Remove the selection of poll-methode (whenever possible)
- only show "publish imediately" during creation
2020-03-17 07:24:40 +01:00
Joshua Sangmeister
682db96b7c added vote per user table and progress for polls
added update for options after stopping a poll
2020-03-17 07:24:39 +01:00
FinnStutzenstein
7ab5346198 disable caching for reverse relations 2020-03-17 07:24:39 +01:00
Joshua Sangmeister
e67ca77ad1 default motion poll method set, changed permission from 'can_manage_metadata' to 'can_manage' 2020-03-17 07:24:39 +01:00
GabrielMeyer
96aa3b0084 Adds the chart and dialog for analog voting 2020-03-17 07:24:38 +01:00
jsangmeister
72ff1b1f09 api changes to allow some edits on finished polls 2020-03-17 07:24:38 +01:00
FinnStutzenstein
fafb81daca Fix assignment access permissions
Also improves unnecessary history-savings of users in the list of speakers
2020-03-17 07:24:37 +01:00
FinnStutzenstein
b50cf42543 Prevent stopping an analog poll
Fixed too much logging with the new autoupdate bundling
2020-03-17 07:24:37 +01:00
jsangmeister
90b04366b5 added option to number poll cadidates 2020-03-17 07:24:37 +01:00
jsangmeister
1b761d31c0 added tests for user creation and try-catch for a probably race-based IntegrityError 2020-03-17 07:24:36 +01:00
jsangmeister
09ef3c5071 add settings variable ENABLE_ELECTRONIC_VOTING 2020-03-17 07:24:36 +01:00
FinnStutzenstein
046a152ec5 generate less queries in the autoupdate system 2020-03-17 07:24:36 +01:00
jsangmeister
6605934a33 added count query decorator 2020-03-17 07:24:35 +01:00
FinnStutzenstein
1246dd54ad majorities in polls 2020-03-17 07:24:35 +01:00
jsangmeister
5fa8341614 added testing for named and pseudoanonymous assignment voting
added queries count tests for assignment and motion polls and votes
2020-03-17 07:24:35 +01:00
FinnStutzenstein
ce171980e8 Relations in the client 2020-03-17 07:24:34 +01:00