Commit Graph

625 Commits

Author SHA1 Message Date
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
FinnStutzenstein
252ba02e86 Scroll projector to a given line 2018-06-12 13:02:22 +02:00
FinnStutzenstein
2989024cca Delete restricted data cache on permission changes (closes #3396) 2018-05-16 10:59:00 +02:00
FinnStutzenstein
83edfc2af0 Remove projector from projector-all 2018-04-24 11:20:15 +02:00
FinnStutzenstein
10038b782f One request for each projection. Added some validation for clear_elements and prune_elements 2018-04-24 10:23:28 +02:00
Emanuel Schütze
ba579637bd
Merge pull request #3684 from FinnStutzenstein/fixMypy
Fixed mypy for utils/migration.py
2018-04-05 09:02:05 +02:00
FinnStutzenstein
23a7481277 Fixed mypy for utils/migration.py. 2018-04-04 15:47:13 +02:00
Emanuel Schütze
0710af827e
Merge pull request #3600 from ostcar/cache-api
Cache api
2018-04-04 13:41:27 +02:00
FinnStutzenstein
ad5c81a3db fixed indentions and wrong line breaks in pdf, remove every tab in html (fixes #3678) 2018-03-25 11:10:17 +02:00
FinnStutzenstein
b081401d57 Adding new permission to groups during migration from 2.1.1 to 2.2 2018-03-12 14:11:20 +01:00
FinnStutzenstein
aacdc29394 Added --no-template-caching 2018-03-05 11:55:15 +01:00
Oskar Hahn
5aa8f6193e Add methods to delete the restricted_data_cache 2018-02-24 18:04:32 +01:00
Oskar Hahn
c47d054c67 Activate the restricted_data_cache again.
restricted_data_cache.update_element(...) only adds an element to the cache, when
there are already other elements in the cache. So then add_element is never used,
the cache is never created.
2018-02-24 16:57:18 +01:00
Oskar Hahn
6c3ae7cb4e fix mypy 2018-02-24 16:38:17 +01:00
FinnStutzenstein
3ba39c37c1 Agenda DOCX export, motion log message when comment edited, motion sequential number in detail view and PDF, save pagination state to session storage (fixes #3558). 2018-02-14 10:25:51 +01:00
Emanuel Schütze
9c4a8cc7fc
Merge pull request #3539 from normanjaeckel/BundleAutoupdate
Added autoupdate bundle middleware.
2018-01-26 15:23:32 +01:00
Norman Jäckel
d381ca36dd Added autoupdate bundle middleware. 2018-01-25 23:09:28 +01:00
FinnStutzenstein
60b6ef1415 Repair the master 2018-01-23 14:02:16 +01:00
FinnStutzenstein
5e089bfcdc Preparations for the SAML plugin; Fixed caching of main views. 2018-01-21 11:54:01 +01:00
Norman Jäckel
aaeb85db61 Split send_data channel into send_data_projector and send_data_site for projector prioritization. Fixed #3426. 2018-01-20 11:07:28 +01:00
Emanuel Schütze
2fe1218fbb
Merge pull request #3503 from FinnStutzenstein/emailTest
Send invitation emails
2017-12-15 08:29:09 +01:00
FinnStutzenstein
2220112d27 Send invitation emails with OpenSlides login. 2017-12-15 08:16:29 +01:00
Norman Jäckel
912876c895
Merge pull request #3505 from FinnStutzenstein/legalNotice
extended the legal notice page (fixes #3504)
2017-12-11 21:49:00 +01:00
Emanuel Schütze
3d264683ff Assignment improvements
- Use ckeditor for assignment description field (e.g. for candidatures
  using html).
- Use 2 decimal places for percentage of voting results (motions/assignments)
- Allow css style attributes 'float' and 'padding'.
- Remove progress bar in election result slide to get more space (height)
  for candidate rows.
2017-12-05 14:04:35 +01:00
FinnStutzenstein
a998657923 extended the legal notice page (fixes #3504) 2017-12-05 07:55:12 +01:00
Emanuel Schütze
279c2ba796 Adds elements to restricted data cache only if cache already exists (hotfix for #3427).
Prevents corrupt cache if restricted data cache is cleared while runtime.
2017-11-12 17:39:46 +01:00
FinnStutzenstein
2ba1fe2a0f Instructions for using Nginx in big mode 2017-09-28 09:35:05 +02:00
FinnStutzenstein
5862e054e3 Naive projector prioritization 2017-09-27 14:46:16 +02:00
FinnStutzenstein
178948b269 Index and Webclient View caching 2017-09-27 12:50:59 +02:00
Emanuel Schütze
6f4d122e0f Fixed two stylistic remarks. 2017-09-18 09:40:57 +02:00
Emanuel Schütze
b824e0387c Merge pull request #3390 from ostcar/rewrite_restricted_data
CollectionElement and Autoupdate cleanups to help mypy
2017-09-15 12:23:50 +02:00
Oskar Hahn
d7db714562 CollectionElement and Autoupdate cleanups
* change get_restricted_data and get_projector_data to always use a list
* Add typings to all get_restricted_data and get_projector_data methods
* Replace CollectionElementList with a real list
* Fixed arguments of inform_deleted_data
* Moved CollectionElementCache to cache.py and refactored it
* Run tests with cache enabled (using fakeredis)
2017-09-15 12:11:32 +02:00
Emanuel Schütze
4565e7e4a6 Merge pull request #3400 from FinnStutzenstein/UserAutoupdate
Autoupdates on user login (fixes #3395, fixes #3392)
2017-09-15 11:48:35 +02:00
FinnStutzenstein
16abfd0dbf Autoupdates on user login (fixes #3395, fixes #3392) 2017-09-15 10:40:04 +02:00
Oskar Hahn
faf44602cb Make RestrictedDataCache optional 2017-09-15 09:55:21 +02:00
Oskar Hahn
0978cfd5d5 Add restricted_data_cache
This replaces the startup cache
2017-09-06 18:06:57 +02:00
Oskar Hahn
b80e95a321 Rewrite projector_element without dispatch 2017-09-05 22:46:13 +02:00
Oskar Hahn
be94e97889 more typings 2017-09-03 18:34:55 +02:00
Oskar Hahn
87b889fbf2 Rewrite config to have id field 2017-08-24 15:02:42 +02:00
Oskar Hahn
9d1ebac86e Add typing (#3370)
Add typing
2017-08-23 20:51:06 +02:00
Emanuel Schütze
32c36996b0 Merge pull request #3345 from FinnStutzenstein/testData
some changes in the example data plugin
2017-08-14 10:52:45 +02:00
FinnStutzenstein
727d1341e8 some changes in the example data plugin 2017-08-14 09:56:48 +02:00
Tobias Hößl
54e067d9d9 Allow OL[start] - fixes #3339
Style
2017-08-02 21:27:12 +02:00
Emanuel Schütze
573fc4da57 Merge pull request #3267 from normanjaeckel/NewPersonalNote
Rework on personal notes.
2017-06-16 12:38:40 +02:00
Norman Jäckel
eaebeb8f06 Fixed get_projector_data impementation. Closed #3282. 2017-06-13 22:21:56 +02:00
Norman Jäckel
91d365e386 Rework on personal notes. Fixed #3262. 2017-06-13 20:58:17 +02:00
Oskar Hahn
8920ffac66 Block anonymous from websocket, if they are deactivated 2017-06-10 09:25:27 +02:00
Norman Jäckel
ea50971ae6 Fixes autoupdate bug for a user without user.can_see_name permission. 2017-06-07 20:55:00 +02:00
Emanuel Schütze
2994f7713b Hotfix for issue #3282.
(projector autoupdate problem by deleting projected object)
2017-06-01 14:57:33 +02:00
Norman Jäckel
ebabc291c5 Refactoring of data parsing for startup and autoupdate. 2017-05-03 08:58:29 +02:00
Oskar Hahn
4963bfa7bf Changed restricted data parsing. Cached full data on startup. 2017-05-01 21:52:16 +02:00
Emanuel Schütze
dd99be5e69 Merge pull request #3221 from normanjaeckel/ChangeKeyError
Fixed error for internal function get_model_from_collection_string.
2017-04-27 15:34:39 +02:00
Norman Jäckel
4bdb06bd9b Fixed error for internal function get_model_from_collection_string. 2017-04-27 15:16:07 +02:00
Emanuel Schütze
9387f83f8a Merge pull request #3212 from normanjaeckel/Notify
Added notify system.
2017-04-27 15:07:15 +02:00
FinnStutzenstein
349505ac3d Added a warning, if another user edits the same motion. 2017-04-27 13:09:24 +02:00
Oskar Hahn
74c1cc63dc Open websocket connections immediately
Also made a performance boost to get_model_from_collection_string()
2017-04-27 12:54:16 +02:00
Norman Jäckel
bd68997a5d Added notify system. 2017-04-27 09:30:02 +02:00
Norman Jäckel
21418f632f Added support for password validation using Django or custom validators e. g. for minimum password length. 2017-04-13 16:20:38 +02:00
Norman Jäckel
14ec6c0f44 Improved autoupdate on permission change. 2017-03-06 17:42:27 +01:00
FinnStutzenstein
bcc85f9cad Autoupdate on user permission change. 2017-03-06 15:08:23 +01:00
Norman Jäckel
688b247bcc Added flag to use Geiss. Small changes for the new getgeiss command. Changed path of collected statics. 2017-03-06 14:39:55 +01:00
Oskar Hahn
e3cc592f70 Added the command getgeiss. Work on start script to use Geiss. 2017-03-06 14:39:26 +01:00
Norman Jäckel
89192236fc Added support for CamelCase to RESTModelMixin. See #2480. 2017-02-16 13:31:57 +01:00
Norman Jäckel
1a53c7c3cc Fixed write settings command for Windows portable version. Fixed #2947. 2017-02-15 17:07:59 +01:00
Oskar Hahn
26b7f2879c Let CollectionElement fail early
Fixes #2835
Fixes #2904
2017-02-12 14:15:58 +01:00
Emanuel Schütze
1230f4a29a New full text search on client-side (Fixed #2865).
Removed server-side search by whoosh.
2017-02-10 22:52:08 +01:00
Emanuel Schütze
3d60238ce1 Fixed dynamic pdf header/footer and table border (Fixed #2923).
Updated pdfmake to 0.1.25.
Fixed some pdf style issues.
Updated gulp watch task.
2017-02-03 11:33:46 +01:00
FinnStutzenstein
d55d374211 Prevent XSS-attacks (fixes #2871) 2017-01-30 21:04:41 +01:00
Emanuel Schütze
8234340a0c Merge pull request #2909 from ostcar/rework_auth
Created a function to convert anything possible to a user-collection-element or None
2017-01-26 21:42:40 +01:00
Norman Jäckel
ad937aecb3 Typos and small changes. 2017-01-26 21:35:26 +01:00
Oskar Hahn
5dcfc69ff8 Update settings.py.tpl
Also the last line of a dict should end with a ',' or with the closing }
2017-01-26 21:17:36 +01:00
Emanuel Schütze
98e6f703e1 Use custom redis prefix for asgi and cache entries.
Note: These prefix have to be unique for each OpenSlides instance!
2017-01-26 21:17:32 +01:00
Oskar Hahn
2daafa8db9 Created a function to convert anything possible to a user-collectoin-element or None
Changed user.has_perm(...) to has_perm(user, ...) at any place.

Removed old code
2017-01-26 18:57:10 +01:00
Norman Jäckel
df60700612 Merge pull request #2882 from normanjaeckel/ChannelSendWait
Let channels' send method wait and retry if channel layer is full.
2017-01-25 16:40:43 +01:00
Oskar Hahn
44474049c3 Added docstrings 2017-01-24 15:16:29 +01:00
Oskar Hahn
fccde8de11 Changed the function has_perm to support an user id or None as the first argument.
Also fixt the case, where an anonymous user connects to the websocket connection.

Also added a function anonymous_is_enabled() to see, if the anyonmous user is enabled.

Added pip freeze to travis to see installed versions.
2017-01-24 15:16:29 +01:00
Norman Jäckel
f271d8bb47 Fixed error when running manage.py collectstatic. Fixed #2861. 2017-01-18 15:33:45 +01:00
Norman Jäckel
bb8748a506 Let channels' send method wait and retry if channel layer is full. Fixed #2353. 2017-01-15 22:01:09 +01:00
FinnStutzenstein
a6d1eeb9c3 Worked on startup process.
- fix group view on reload
2017-01-14 21:23:05 +01:00
Oskar Hahn
ebf686ef34 Send all data to the client at startup 2017-01-14 20:42:38 +01:00
Norman Jäckel
acab868c79 Quickfix for #2865. The problem is not completely solved. 2017-01-14 17:15:30 +01:00
Oskar Hahn
1dc671430a Fix channels 2017-01-13 20:53:06 +01:00
Oskar Hahn
728576d514 Performance improvements
* Add caching support to users/group
* Add a function has_perm that works with the cache.
* Removed our session backend so other session backends (without the database) can be used
2017-01-13 13:37:18 +01:00
Oskar Hahn
97b21427aa Change the way that missing cache ids are found.
This is probalby faster but in any way it maks debugging a lot easier. To go though
a big list in a for-loop is no fun at all.
2017-01-10 20:50:44 +01:00
Emanuel Schütze
41124a53ca Add new personal settings MOTIONS_ALLOW_AMENDMENTS_OF_AMENDMENTS.
Set settings value to False to disable new amendment button in motion detail
template. Default: True.
2017-01-09 14:25:28 +01:00
Emanuel Schütze
f4d468a6f6 Add new personal settings MOTION_IDENTIFIER_WITHOUT_BLANKS.
Allow to remove all whitespaces from motion identifier if settings
value is True. Default: False.
Example: "B 1 - Ä 1" -> "B1-Ä1"
2017-01-06 21:38:08 +01:00
Norman Jäckel
ad651300d9 Added settings value MOTION_IDENTIFIER_MIN_DIGITS. Solved #2696. 2016-12-01 14:41:12 +01:00
Emanuel Schütze
ff359ea629 Improved assignments and motions pdf.
Load all users in pdfmake function - not in state resolver of
assignment list.
2016-11-14 17:55:50 +01:00
Oskar Hahn
7281aa57b8 Removed old code needed be the server to serve pdf 2016-11-07 15:54:29 +01:00
Emanuel Schütze
5b544ceed2 Improve importing and sorting of users
* Add is_present field for csv import of users.
* Refactor JS functions get_full_name and get_short_name (Fixes #2136).
  - Show participant number in get_full_name() output.
  - Sort users by first or last name.
  - Extend config option to sort users.
  - Mark unused Python methods get_short_name and get_full_name.
2016-11-07 15:04:30 +01:00
Norman Jäckel
20f8875dcd Added view to follow recommendations.
for all motions of a motion block
2016-10-17 21:02:50 +02:00
Emanuel Schuetze
af10c5aa3d Fixed typo in projector autoupdate (Fixes #2492) 2016-10-07 17:02:55 +02:00
Oskar Hahn
e209dd6dfe Support to send many objects through the autoupdate system 2016-10-04 18:10:04 +02:00
Oskar Hahn
c4f6477a4d Merge pull request #2475 from normanjaeckel/FixBroadcast
Fixed broadcast. Fixed #2467.
2016-10-01 15:49:07 +02:00
Norman Jäckel
2e7555e720 Fixed broadcast. Fixed #2467. 2016-10-01 14:37:04 +02:00
Oskar Hahn
962deca506 Send full_data through the channel.
Saves db queries.
2016-10-01 13:57:53 +02:00
Oskar Hahn
97bd526dd7 Fix config cache key 2016-10-01 12:37:43 +02:00
Norman Jäckel
039795beb7 Refactored projector requirements system for autoupdate. 2016-10-01 01:49:17 +02:00
Oskar Hahn
ac9c9f4ec3 More tests, development instructions and small changes. 2016-10-01 01:48:30 +02:00
Norman Jäckel
7cd70a568c Added docstrings. Small changes. 2016-10-01 01:48:18 +02:00
Oskar Hahn
368873e738 Adds a cache system to the CollectionElement and add
a Collection class that can be used to call a collection
used this for the list and receive rest api.
2016-09-30 21:37:52 +02:00
Emanuel Schuetze
720c7e76a5 Hot fix for broadcast (will improved later). 2016-09-30 21:20:30 +02:00
Norman Jäckel
8427ffd816 Small changes for multiple projector feature. 2016-09-30 19:11:33 +02:00
Finn Stutzenstein
e6b9b21d41 Added support for multiple projectors. 2016-09-30 18:58:59 +02:00
Norman Jäckel
dc404d21f6 Implemented need_full_update check. Fixed #2396. 2016-09-23 14:36:26 +02:00
Oskar Hahn
6abb0976c2 Change system for autoupdate on the projector (#2394)
* Second websocket channel for the projector

* Removed use of projector requirements for REST API requests.

Refactored data serializing for projector websocket connection.

* Refactor the way that the projector autoupdate get its data.

* Fixed missing assignment slide title for hidden items.

* Release all items for item list slide and list of speakers slide. Fixed error with motion workflow.

* Created CollectionElement class which helps to handle autoupdate.
2016-09-17 22:26:23 +02:00
Norman Jäckel
d7936c53e3 Updated settings files. Fixed timezone support. 2016-09-16 21:17:00 +02:00
Norman Jäckel
3ea46e9dc7 Fixed autoupdate for deleted instances. Fixed #2329. 2016-08-29 16:37:53 +02:00
Norman Jäckel
aea602acb9 Merge pull request #2256 from ostcar/fix_2248
Only do an autoupdate after an ongoing transaction.
2016-08-16 00:14:15 +02:00
Oskar Hahn
ee2f6b500b Only do an autoupdate after an ongoing transaction.
This needs at least django 1.9

Fixes: #2248
2016-08-13 10:08:10 +02:00
Finn Stutzenstein
12af0256dd No crash without a browser (fixes #2249) 2016-08-09 08:22:04 +02:00
Emanuel Schütze
6cec9e9f87 Merge pull request #2251 from normanjaeckel/WooshAsync
Used whoosh.writing.AsyncWriter. See #2198.
2016-08-03 21:42:58 +02:00