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.
* 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
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.
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.
* 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.
Uses django channels instead of tornado for the autoupdate. Therefore
tornado is nolonger a dependency of OpenSlides (but channels).
This uses websockets instead of SockJS.
Use the flag insecure in the start command to provide static files serving.
Use a new session backend that has a ForeignKey to User.
Removed form_field attributes.
Added extra fields for HTML rendering like label and help text.
Added fields for sorting and grouping. Removed old collection system.
Added config groups to config view via OPTIONS requests.
Regrouped all variables.
Added validation. Changed internal handling.
Config item agenda_agenda_fixed removed'.
Config items agenda_agenda_fixed and agenda_enable_auto_numbering removed.
FixAgendaView and ResetAgendaView removed. AgendaNumberingView added.
Old two fix- and reset numbering buttons replaced by 'Number agenda items'.
Fixed organizational item structuring. Prevented organizational items
from having agenda items as descendents. Some coding style changes.
Added CHANGELOG and README entries.
- Fixed js error on dashboard page if no cookie is found.
- Use cookies only until end of session. For dashboard cookies use url /dashboard only.
- Updated permission numbering of builtin groups and added can_use_chat permission.
- Used minified version of jquery.cookie.
- Added TODO comment for django session way from pull request.
- rename static subdirs to css and js
- move global static dir to core/static, changed
- move global templates dir to core/templates
- check comments and code style of all our own CSS and JS files
- minor changes related to the changes of template and static files
* Set a static projector title
* absolute_urls for the activate links
* update the projector when a slide changes (in save())
* insert the absolute_url template filter
* Preview to slides
* renamed is_active to is_active_slide
* The SlideMixin has to come before the PersonMixin
* Update list of speakers
* Render Countdown via JS
* Reconnect projector after connection lost
* Overlays can allways be active and do not appear in the widget
* Rewrote the clock as overlay
- Translate group name in participant overview table.
- Move 'status_link' function from participants.js to utils.js for using in VoteCollector plugin.
- Added hook 'post_js' for VoteCollector plugin.
- Fixed poll id in poll_form.
- Improved 'show log' button
- Used welcome_title for default custom slide
- Used bootstraps' fluid grid nesting for responsive layout of widgets.
- Added microphone icon for 'add-me-to-list-of-speakers' button.
- Format motion identifier and title in (motion and account) widgets.
- Format list of speakers (slide, overlay, view, overview)
- Format list of speakers widget and view. Added view to link to current list of speakers (without add to list).
- Fixed motion slide. Made up/down animation faster and the scroll way shorter.
- Fixed icon name.
- Set default context of 'extra_javascript' to use kwargs['context']['extra_javascript'].append('...') without error.
- Fixed translation of motion state.
Moved css code.