Commit Graph

4466 Commits

Author SHA1 Message Date
Sean
1853028cf0 Add roboto-condensed-bold as default
Fixes a severe regression. New databases could not generate any PDF or use
the countdown.
2020-06-11 14:30:01 +02:00
Emanuel Schütze
43b13e314e
Merge pull request #5376 from tsiegleauq/integrate-streams
Integrate streams
2020-06-11 13:53:04 +02:00
Sean
0d9738b72d Integrate streams
Integrate live streaming inside the jitsi/rtc components.
Live streaming works without jitsi, but is using the same components for
a fluid integration.
A streaming URL can be set in the settings page.
Users EITHER consume the live stream OR are presend in a jitsi live
conference.

To consume both the live stream and the jitsi conference, users may use
a dedicated jitsi tab in their session.

The jitsi users can be restricted to only allow thouse with the right
the manage speakers or being present on the "current list of speakers",
automatically simulating a virtual plenum
2020-06-11 11:20:00 +02:00
FinnStutzenstein
7d455b34f5
Fix the creation of saml users
When created, they are put into the cache.
Also allows bulk-delete for saml users.
2020-06-10 15:06:13 +02:00
Emanuel Schütze
fbb0be6fb4
Merge pull request #5404 from emanuelschuetze/whitelist
Updated server whitelist of allowed styles.
2020-06-09 23:15:17 +02:00
Emanuel Schütze
acf499f6e1
Merge pull request #5378 from jsangmeister/monospace-countdown
Replaces the countdown font with a monospaced one
2020-06-09 23:15:06 +02:00
Emanuel Schütze
79e3780a26 Updated server whitelist of allowed styles.
added 'vertical-align'
2020-06-09 22:59:41 +02:00
Joshua Sangmeister
e653021eff Add a configurable monospace font for the countdown
use Roboto Condensed bold by default
2020-06-09 22:54:31 +02:00
FinnStutzenstein
c186a575f6
Fixed incomplete autoupdates
A conceptional issue in `get_data_since` leads to incomplete
autoupdates. The behaviour was long time in the code, but only with a
lot of autoupdates (high concurrency) and the autoupdate delay I noticed
the bug during testing. I'm sure, that this issue might have caused
incomplete autoupdates (which the user may experience as "lost
autoupdates") in previous productive instances. Instead of quering a
range (from_change_id to to_change_id) one now can only get data from a
change id up to the max change id in the element cache. The max change
id gets now returned by `get_data_since`.

I also added a get_all_data with the capability of returning the
max_change_id at this point of time.

As a usability-"fix" (more like a fix the result of a bug, not the bug
itself) a refresh button for a poll was added, that issues an autoupdate
for the poll and all options.
2020-06-04 15:16:05 +02:00
Joshua Sangmeister
a31fa7dda6 Adds reverse relations for motions and blocks 2020-06-02 14:44:56 +02:00
Emanuel Schütze
7665634d42
Merge pull request #5375 from FinnStutzenstein/autoupdatePerformance
Autoupdate performance
2020-05-29 17:31:32 +02:00
Finn Stutzenstein
9c7b9b0920
Merge pull request #5387 from FinnStutzenstein/hugeautoupdatesInRedis
Inserting changed and deleted elements into redis in batches (fixes #5386)
2020-05-29 15:48:21 +02:00
FinnStutzenstein
0eee839736
Small improvements and first attempt to make to poll progress responsive
to massive autoupdates. The "optimization" didn't help, so this has to
be continued in another PR.
2020-05-29 15:46:19 +02:00
FinnStutzenstein
600b9c148b
Inserting changed and deleted elements into redis in batches (fixes #5386) 2020-05-28 14:00:57 +02:00
FinnStutzenstein
d8b21c5fb5
(WIP) Ordered and delayed autoupdates:
- Extracted autoupdate code from consumers
- collect autoupdates until a AUTOUPDATE_DELAY is reached (since the first autoupdate)
- Added the AUTOUPDATE_DELAY parameter in the settings.py
- moved some autoupdate code to utils/autoupdate
- moved core/websocket to utils/websocket_client_messages
- add the autoupdate in the response (there are some todos left)
- do not send autoupdates on error (4xx, 5xx)
- the client blindly injects the autoupdate in the response
- removed the unused autoupdate on/off feature
- the clients sends now the maxChangeId (instead of maxChangeId+1) on connection
- the server accepts this.
2020-05-27 16:05:27 +02:00
FinnStutzenstein
fba043fedf
Log APIExceptions on the server 2020-05-25 09:16:37 +02:00
FinnStutzenstein
bf88cea200
Rewrite projector code to be cache friendly
This speeds up the requests/seconds by a factor of 100
2020-05-22 15:23:54 +02:00
FinnStutzenstein
23842fd496
Synchronize autoupdate code in the client
If autoupdates are too fast, the first one may not be fully executed. Especially when the maxChangeId is not yet updated, the second Autoupdate will trigger a refresh, because for the client it "lay in the future". This can be prevented by synchronizing the autoupdate-handling code with a mutex.
2020-05-22 15:23:53 +02:00
Joshua Sangmeister
e52697ad7e Adds migration to remove deprecated slides 2020-05-19 12:55:47 +02:00
Emanuel Schütze
0c93c44f0d
Merge pull request #5374 from emanuelschuetze/translations-20200514
Updated translations
2020-05-14 20:09:36 +02:00
Emanuel Schütze
4b95398ac1
Merge pull request #5371 from jsangmeister/jitsi-settings
Added jitsi settings to template and readme
2020-05-14 19:59:28 +02:00
Emanuel Schütze
37c3ac5aff Updated translations 2020-05-14 19:52:18 +02:00
Joshua Sangmeister
3f03f27cdb added jitsi settings to template and readme 2020-05-14 19:41:35 +02:00
Emanuel Schütze
1ca3196a75
Merge pull request #5370 from tsiegleauq/tags-for-agenda
Add tags for agenda items
2020-05-14 15:23:55 +02:00
Sean
b6bb1fe767 Add tags for agenda items
Adds tags for agnda items, adds tag filter in agenda list view, server
changes, client relations, adjust agenda csv exporter
2020-05-14 15:07:59 +02:00
Joshua Sangmeister
fa63ef0307 added config for default poll type 2020-05-14 07:38:14 +02:00
Joshua Sangmeister
b0bf4990f8 fixed formatting after flake update 2020-05-13 16:16:03 +02:00
FinnStutzenstein
2910701422
Fix unnecessary and unfunctional lock for production usage with gunicorn 2020-05-06 16:57:50 +02:00
Emanuel Schütze
f415fd0554 Updated translations 2020-04-30 17:43:48 +02:00
Sean
38ee6bb2f1 Show first contribution hint in list of speaker
Shows a hint in the list of speakers if a speaker contributes for the
first time.
2020-04-30 14:06:37 +02:00
Emanuel Schütze
a47285c0ff
Merge pull request #5309 from tsiegleauq/integrate-jitsi-meet-client
Integrate jitsi-meet in OpenSlides
2020-04-30 13:05:12 +02:00
Sean
1439444b2e Integrate jitsi-meet in OpenSlides
- minimal jitsi client in the bottom right of the screen
- can be shown and hidden like a messenger
- allows to mute, unmute, call, stop call
- automatically connects to a conference
- shows a list of users connected to the room
- jitsi iframe is currently hidden
- "open in jitsi meet" link
- only one connection will be opened if using multiple tabs
- JITSI_DOMAIN and JITSI_ROOM_NAME must be present in the settings.py
- config variables in settings
2020-04-30 11:07:32 +02:00
FinnStutzenstein
aa1a2cec89
Removed vote weight from votes_cast 2020-04-30 08:10:39 +02:00
FinnStutzenstein
b78372f8a3
Load configs before models 2020-04-27 09:41:23 +02:00
Emanuel Schütze
2057150076
Merge pull request #5322 from FinnStutzenstein/delete-all-speakers
delete all speakers of all lists of speakers
2020-04-24 12:25:49 +02:00
FinnStutzenstein
4221351223 Fixed validation of options in asignment polls
Also fixed #5334
2020-04-24 09:31:39 +02:00
FinnStutzenstein
38486463bc delete all speakers of all lists of speakers 2020-04-23 09:43:04 +02:00
Sean
97c2299aec Implement vote weight in client
Implements vote weight in client
The user detail page has a new property
change deserialize to parse floats
change "yes"-voting to send "Y" and "0" instead of "1" and "0"
add vote weight to user list, filter, sort
add vote weight to single voting result
votesvalid and votescast respect the individual vote weight
fix parse-poll pipe and null in pdf
2020-04-22 16:54:50 +02:00
Joshua Sangmeister
42fbe93314 fixes the voting autoupdate bug 2020-04-17 16:38:38 +02:00
Emanuel Schütze
6cdf9a5582
Merge pull request #5315 from emanuelschuetze/prepare-3.2
Prepare new 3.2 release
2020-04-16 13:55:24 +02:00
Emanuel Schütze
75ebf5bc77 Prepare new 3.2 release 2020-04-16 13:41:56 +02:00
Joshua Sangmeister
6eae497abe adds more permissive html validation 2020-04-16 10:26:48 +02:00
Joshua Sangmeister
9864ff3847 fixed pseudoanonymize on client 2020-04-15 09:42:22 +02:00
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