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.
* 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
* 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
Restructure the titles for motion, motion-block, assignment and topic.
Less possibilities for more clear code. Added mote base models enabling
functionalities of projection and being a content object for items
* 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
The old hidden type was used as internal, so everything is changed to
not be shown if the item is internal. hidden is "new", and actually
behaves as hidden now.
- Show item duration and done for normal users correctly.
- Fixed CSS class for countdown warning time.
- Improved projector manage button layout.
- Updated fontawsome icons to 4.7.
- Fixed iframe width/height to show border correctly.
- Improved 'close list of speakers' button.
- Improved 'clear all filter' icons.
- Fixed election pdf if candidate was deleted.
- Moved ban icon for internal icons.
- Improved edit projector form. Show simple scaling steps instead of
width/height resolution.
- Consolidated both agenda item filters.
- Used better sort icon.
- Installed colordialog plugin for ckeditor to select more colors.
- Several css improvements.
- new-style template hooks. See changes in the template hook documentation
- reordered user list view to get more space for extra things
- added template hooks.
- Fixed agenda import preview (Fixed#3603)
- Show import error only if available; for agenda/motions/users (Fixed#3601)
- Added missing tooltips in detail views (Fixed#3555).
- 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.
- Fix IE11 that projector shows JS error if 'startsWith' is used.
Projector was updated very slowly.
- Hide the valid/invalid/casted ballot rows on projector if empty.
- Use 80% width for motion reason in PDF.
* 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)
These are
- agenda item speakers,
- motion submitters and supporters,
- assignment candidates,
- mediafile uploader and
- chat message users
but only if the user has respective permissions. Fixed#3002.
- Motions catalog pdf: Show categories of filtered motions only.
- Fixed permission for "reject all change recommendations" button
- Use color for yes/no/abstain for progress bars in assignment detail.