Commit Graph

636 Commits

Author SHA1 Message Date
FinnStutzenstein
5aef823807 Major cache rewrite:
- Removed the restricted data cache (it wasn't used since OS 3.0)
- unify functions for restricted and full data: Just one function, which
  accteps an optional user_id: If it is None, full data is returned, and
  with a user id given, the restricted data
- More atomic access to redis, especially for:
- Check for data-existance in redis and do an auto-ensure-cache.
- Speedup through hashing of scripts and redis' script cache.
- Save schema version into the redis cache and rebuild, if the version
  changed

Client changes:
- Simplified the ConstantsService
- Fixed bug, when receiving an autoupdate with all_data=True from the
  Server
2019-08-08 08:35:02 +02:00
FinnStutzenstein
b4e9b28397 Fix mediafiles for non superadmins 2019-07-13 19:37:49 +02:00
FinnStutzenstein
56c1da352e Directories and access permissions for mediafiles 2019-07-12 13:08:07 +02:00
Emanuel Schütze
a8af0595a6
Merge pull request #4808 from emanuelschuetze/email
New email sender name and reply-to config options.
2019-06-26 16:30:17 +02:00
Emanuel Schütze
29dd81ba39 New email sender name and reply-to config options. 2019-06-25 17:26:38 +02:00
FinnStutzenstein
b7e98a565a Fix restriction without restricted data cache 2019-06-25 16:57:29 +02:00
FinnStutzenstein
8ff0f73477 Optional agenda items 2019-06-17 12:38:17 +02:00
FinnStutzenstein
ff98ee1b96 Refactured client 2019-06-13 10:09:08 +02:00
Norman Jäckel
5a5bc77e62 Refactored OpenSlides history (HistoryInformation is not a root rest element anymore.). 2019-06-13 09:14:58 +02:00
FinnStutzenstein
6d027f0f75 Compression: Sending compressed messages 2019-06-12 08:25:25 +02:00
FinnStutzenstein
d9c88c02b3 Compression: Recieving compressed messages 2019-06-12 08:21:16 +02:00
Emanuel Schütze
fef386ddf8
Merge pull request #4713 from FinnStutzenstein/tooHighChangeIdHandling
Handles 'change id too high' and generic websocket error message format
2019-05-16 20:25:13 +02:00
FinnStutzenstein
5ad94cb2f4 Handles 'change id too high' and generic websocket error message format 2019-05-15 14:25:54 +02:00
FinnStutzenstein
10c329da8d fix tree sorting
Assigns the weight in the preorder traversal of the tree. Now one without every
object (e.g. missing motions/items) still have the correct sorting. Intorduces
the level attribute of items giving the amount of parents in the agenda. This
allows to reduce complexits in the client.
2019-05-15 14:14:32 +02:00
FinnStutzenstein
171f05e7b8 Logging the cache buildup process 2019-05-10 14:20:01 +02:00
FinnStutzenstein
5728b65824 Fixed websocket and encoding errors 2019-05-10 07:35:19 +02:00
FinnStutzenstein
02d82e20c1 websocket logging 2019-05-07 16:37:38 +02:00
FinnStutzenstein
6de9616c47 Silence errors after sending to a closed connection 2019-04-26 14:07:13 +02:00
Maximilian Krambach
6f62e5c7e4
Merge pull request #4537 from MaximilianKrambach/assignments
assignment detail and list views
2019-04-08 10:25:56 +02:00
Norman Jäckel
e6daf32924 Added check for double serializer class registering.
Removed AssignmentShortPollSerializer.
2019-04-08 10:16:47 +02:00
Gernot Schulz
58a0da7945 Fix typo in SESSION_REDIS configuration 2019-04-08 09:52:04 +02:00
Oskar Hahn
41aed15426 Make the projector-system explicit async.
Also lock config.build_key_to_id
2019-04-06 06:40:15 +02:00
FinnStutzenstein
231cb60f5a Set a longer socket timeout for redis session
Related to #4555
2019-04-02 14:24:39 +02:00
Oskar Hahn
206eb9bcba decode only the needed data when calculating the required users 2019-03-29 22:38:12 +01:00
Oskar Hahn
77a1975369 Use redis connection pool 2019-03-27 22:51:33 +01:00
GabrielMeyer
76d760bd41 Replaces the old angular2tree with a custom drag&drop tree
Calculates the direction of the moving.

Finishes the moving of nodes in same level

Adds some style

Sets the padding dynamically

Adds placeholder depends on the horizontal movement

Set the placeholder at the correct place, so the user can see, where he will drop the moved node

Finishes moving of nodes

- Old parents change their option to expand.
- New parents change their option to expand.
- If the user moves a node between nodes with a higher level, the node will be moved to the next index with same or lower level.

Fixes the visibility of moved node

- If the new parent is not visible, the moved node will not be seen.

If the user moves an expanded node, the new parent should expanded, too, if it's not already.

Sending successfully data to the server

- Sorting the items

Handles moving nodes between parent and children

- If the user moves a node between a parent and its children, the children will be relinked to the moved node as their new parent.

Replaces the old `sorting-tree` to a new one

- The new `sorted-tree` replaces the old `sorting-tree`.
- The old package `angular-tree-component` was removed.
- The user will only see the buttons to save or cancel his changes, if he made changes.
- The buttons, that do not work currently, were removed.

Adds a guard to check if the user made changes.

- If the user made changes but he has not saved them, then there is a dialog that will prompt to ask for confirmation.

Before cancelling the changes the user has to confirm this.
2019-03-19 13:19:35 +01:00
FinnStutzenstein
66ebdc4f8a Add text-decoration to bleach whitelist, fix tinymce toolbar 2019-03-08 15:11:55 +01:00
FinnStutzenstein
b0d4851651 Fix inSomeGroups for the superadmin, delete empty comments 2019-03-06 08:35:00 +01:00
Oskar Hahn
dd4754d045 Disable the future-lock when updating the restircted data cache
Before this commit, there where two different locks when updating the restricted
data cache. A future lock, what is faster but only works in the same thread. The
other lock is in redis, it is not so fast, but also works in many threads.

The future lock was buggy, because on a second call of update_restricted_data
the same future was reused. So on the second run, the future was already done.

I don't see any way to delete. The last client would have to delete it, but there
is no way to find out which client the last one is.
2019-03-04 21:37:00 +01:00
Norman Jäckel
9eec2404dd Fixed on_delete field attr. Fixed #4405 2019-03-01 20:53:01 +01:00
Norman Jäckel
197ff7264c Fixed deletion of motions with change recommendations. Fixed #4415. 2019-02-27 20:16:51 +01:00
Jochen Saalfeld
f546cd9e27
increasing default upload size 2019-02-25 09:28:32 +01:00
FinnStutzenstein
63f1802d7a (Current) list of speaker slide 2019-02-22 10:40:28 +01:00
Oskar Hahn
7e25a858d4 Fix projector error message 2019-02-10 10:50:18 +01:00
FinnStutzenstein
d0991936d6 ViewModelStore, register repositories, improve view model relations 2019-02-08 11:02:56 +01:00
Jochen Saalfeld
114c8bfa3c
Merge pull request #4184 from ostcar/fix_gunicorn
Opens the websocket connection before closing it
2019-02-05 08:34:52 +01:00
Oskar Hahn
fae270a1d6 Make sure the cache is ensured before manipulating it 2019-02-04 17:41:18 +01:00
Oskar Hahn
1111a8074e fix restricted_data_cache for elements that exists, but a user is not allowed to see them 2019-02-01 08:26:34 +01:00
Maximilian Krambach
10d1209da8 Fix 'errors'
- two python comparisons error not passing flake8 anymore
- typescript not being able to recognize an object, sending it prechewed
2019-01-30 12:18:59 +01:00
Oskar Hahn
1a709a59a9 Projector V
* Changed wording: element is one element on the projector. A slide is a functoin to render one element
* Use AllData as first argument all the time
* Render username on server
* Add exceptions for erros on projector
* Fix motion recommendation
* Only show state extension, if it is allowed by the state
* Add motion_change_recommendations to motion full_data
2019-01-28 23:18:27 +01:00
Oskar Hahn
014b145b0f Opens the websocket connection before closing it
Fixes #4009
2019-01-25 16:33:45 +01:00
Oskar Hahn
cca28a990a New projector IV
* Motion Slide
2019-01-20 13:35:50 +01:00
Oskar Hahn
209105efc3
Merge pull request #4103 from FinnStutzenstein/client-projector-ui
Client projector ui (WIP)
2019-01-20 11:39:49 +01:00
Oskar Hahn
6b73c5bf1a activate start command 2019-01-20 11:24:42 +01:00
FinnStutzenstein
74e0bea108 Wirst work for the projector system on the client 2019-01-19 21:26:05 +01:00
Oskar Hahn
df85e01b16
Merge pull request #4145 from ostcar/logged_in_users
logged in users
2019-01-19 18:00:47 +01:00
Oskar Hahn
5ca2012c44 logged in users 2019-01-19 17:50:18 +01:00
Norman Jäckel
9db12293a3 Added history information for some motion views. 2019-01-19 16:41:58 +01:00
Oskar Hahn
7df842f2e2 delete wrong file 2019-01-19 14:48:01 +01:00
Oskar Hahn
11ba7b9841 Autoupdate on element deletion
Make sure, that a related element gets an autoupdate, when the main object is deleted
2019-01-19 14:46:59 +01:00
Oskar Hahn
c37bf0fb4f New Projector
* Change Projector model
* Remove old http requests
* Remove old config values
* Remove uuid from config field
* Remove projector broadcast
* Remove projector blank
* Fix serializer
2019-01-19 08:19:40 +01:00
Finn Stutzenstein
8bd24d690d
Merge pull request #4118 from FinnStutzenstein/notify
Make OS3 notify ready
2019-01-18 17:55:24 +01:00
Oskar Hahn
b329115007 use f-string syntax for strings 2019-01-18 17:37:36 +01:00
FinnStutzenstein
47a09e4bce Make OS3 notify ready 2019-01-18 17:03:09 +01:00
Oskar Hahn
5127d659db Add the projector config into the data send via websocket 2019-01-18 15:38:20 +01:00
Oskar Hahn
a0f554674b New projector system. Add first slides 2019-01-12 21:21:43 +01:00
Oskar Hahn
eddbd86d3a Run black 2019-01-08 21:51:52 +01:00
Oskar Hahn
e09c5f415a fix keyerror introduced by #3985 2018-12-17 13:34:17 +01:00
Oskar Hahn
9bb77817dd Refactor assess_permission
* Remove access_permission.get_full_data()
* Remove access_permission.gcet_serializer_class()
* get serializer class from model
2018-12-16 09:10:52 +01:00
Emanuel Schütze
d11154cfc1
Merge pull request #4028 from jsaalfeld/fix_redis
the redis host needs to be configured for channel layers
2018-12-03 14:15:59 +01:00
Norman Jäckel
060856628b OpenSlides history mode.
Also containing auth check and viewpoint to clear history.
2018-11-30 09:51:10 +01:00
Jochen Saalfeld
09e2629b64
the redis host needs to be configured for channel layers
otherwise the post migration signal in django will try to establish an connection to localhost, no matter what redis server ip or adress was entered
2018-11-22 09:08:22 +01:00
Oskar Hahn
67d933a206 fix douple elements 2018-11-18 07:57:44 +01:00
Oskar Hahn
eead4efe6a Remove CollectionElement
* Use user_id: int instead of Optional[CollectionElment] in utils
* Rewrote autoupdate system without CollectionElement
2018-11-04 01:06:01 +01:00
Oskar Hahn
93dfd9ef67
Merge pull request #3973 from ostcar/test_with_redis
add possebility to run tests with redis
2018-11-03 20:54:55 +01:00
Oskar Hahn
f4f3ab9c49
Merge pull request #3972 from ostcar/websocket_use_restricted_data
Fix error, that user get full_data when restricted_data_cache was enabled
2018-11-03 20:53:52 +01:00
Oskar Hahn
cd34d30866 Remove utils.collections.Collection class and other cleanups
* Activate restricted_data_cache on inmemory cache
* Use ElementCache in rest-api get requests
* Get requests on the restapi return 404 when the user has no permission
* Added async function for has_perm and in_some_groups
* changed Cachable.get_restricted_data to be an ansync function
* rewrote required_user_system
* changed default implementation of access_permission.check_permission to
  check a given permission or check if anonymous is enabled
2018-11-03 20:48:19 +01:00
Oskar Hahn
d11c7bbad7 add possebility to run tests with redis 2018-11-03 16:59:21 +01:00
Oskar Hahn
6480f1cee9 Fix error, that user got full_data when restricted_data_cache was enabled 2018-11-03 14:37:47 +01:00
Oskar Hahn
b97e643b33 Fix error on to big change id on websocket connection 2018-11-02 05:12:20 +01:00
Finn Stutzenstein
72e3df8b65
Merge pull request #3928 from normanjaeckel/StripResponse
Strip out response.data.
2018-11-01 07:59:59 +01:00
Norman Jäckel
30c0773838 Split up autoupdate functions (sync and async). 2018-10-30 13:07:24 +01:00
Oskar Hahn
b034839ac8 Remove old projector code 2018-10-29 13:10:15 +01:00
Oskar Hahn
0229bb923d Move websocket protocoll in apps 2018-10-29 12:33:15 +01:00
Norman Jäckel
6441347d10 Strip out response.data. 2018-10-29 08:52:52 +01:00
Oskar Hahn
c405b4b323 Use Protocol instead of ABC in cache_provicer 2018-10-28 10:37:16 +01:00
Oskar Hahn
b9e24016c1 Add test for second getElement request 2018-10-27 14:56:22 +02:00
Oskar Hahn
e7d14a8081 Change_id API
* Improve AutoUpdateFormat
* Receive autoupdate requested via websocket
* Support change_id in query string
* Disable autoupdate at default
* Add websocket protocoll to turn on or off autoupdate
2018-10-26 06:30:01 +02:00
Oskar Hahn
9eef4da21c remove old client 2018-10-25 16:04:28 +02:00
Oskar Hahn
5b5d0e395a new autoupdate format 2018-10-19 07:35:59 +02:00
Oskar Hahn
bc442210fb Improve redis cache
* delete only keys with prefix
* Make redis_provider atomic with transactions and lua scripts
* improve lock
* generate change_id in redis to make sure it is uniq
* use miliseconds as starttime
* add argument use max_change_id to get_{full|resticted}_data
2018-10-15 23:37:26 +02:00
FinnStutzenstein
1e4eacecfd New superadmin group 2018-10-12 07:58:18 +02:00
Oskar Hahn
9af6bf1606 ensures test on startup 2018-09-23 16:57:49 +02:00
FinnStutzenstein
f1ddd16dc6 Motion rework
- remove motion version
- migrations for versions and change recommendations
- Redone motion comments. Wording changed from comment fields to comment
  sections
- fixed test order, tests are not atomic
- introduce get_group_model. Just use OpenSlides Groups and not the
django's ones.
2018-09-10 09:00:55 +02:00
Oskar Hahn
732de97ec2 Make Consumer real async again 2018-09-04 08:57:50 +02:00
FinnStutzenstein
8adaa6118a Angular constants via WebSocket
- new format for constants on the server
- adaptions for the old client
2018-09-04 08:57:11 +02:00
Oskar Hahn
dc7ca5e2c4 fix empty values in rest 2018-08-24 12:14:02 +02:00
Oskar Hahn
401e7821ae Merge remote-tracking branch 'upstream/master' into OpenSlides-3 2018-08-23 21:31:24 +02:00
Norman Jäckel
7dd7bb1b8d
Merge pull request #3807 from ostcar/websocket_protocol
Add a protocol for websocket
2018-08-23 21:15:48 +02:00
Oskar Hahn
fed6d6f435 Add a protocol for websocket
{'type': STRING, 'content': ANY}
2018-08-23 21:02:52 +02:00
Oskar Hahn
aac9dcabf5 drop python 3.5 2018-08-23 17:51:30 +02:00
Norman Jäckel
123b7c702b
Merge pull request #3803 from FinnStutzenstein/voting_decimal_places
Support for decimal places in motion and assignment polls
2018-08-23 11:28:26 +02:00
FinnStutzenstein
9bac396b67 Support for decimal places in motion and assignment polls 2018-08-23 08:53:59 +02:00
Norman Jäckel
48a2a3fe53 Fixed settings creation for windows. 2018-08-22 16:51:46 +02:00
Norman Jäckel
07ffb3b6c5 Fixed settings creation for windows. 2018-08-22 12:39:59 +02:00
Oskar Hahn
10b3bb6497 Update to channels 2
* geis does not work with channels2 and never will be (it has to be python now)
* pytest
* rewrote cache system
* use username instead of pk for admin user in tests
2018-08-22 06:30:11 +02:00
FinnStutzenstein
78dab97673 Use newer version of django-redis-sessions, new settings format 2018-08-15 11:37:20 +02:00
Oskar Hahn
92a39a3fc6 support python 3.7
fix new pep8 stype
2018-08-08 21:46:56 +02:00
Oskar Hahn
acceeff8f8 * Update python requirements
* drop python 3.4
2018-08-07 15:23:11 +02:00
FinnStutzenstein
9e4cafd0f0 Custom workflows and states:
- Added new workflow list view
 - Added state table for each workflow
 - Added new StateViewSet to handle states of workflows
2018-07-13 10:29:06 +02:00