* 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
* 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
* 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.
* 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.
Now, only staff users has this permission by default. (Fixed #2004.)
Some more work on users/groups template:
- Added description to permission string to show that only 'present' and
'comment' fields are affected by this permission.
- Allowed to create groups without permissions.
- Fixed showing group names in users lists view for staff and normal users.
Also added the derective osPerms to check if the current user has permissions.
Removed old Django views and urls for user.
Created utils.views.APIView which should be used instead of the AjaxView.
Fixes: #1470Fixes: #1454
Refactored user creation and update via REST API. Used new serializer.
Cleaned up management commands, signals and imports. Moved code from 'api.py' to 'models.py'.
Changed usage of group 'Registered'. Now the users don't have to be members to gain its permissions. Used customized auth backend for this.
Added and changed some tests.
* seperate unittests and integration tests
* moved old tests in seperat folder 'old'
* created a testrunner that does not create a testdatabase, if only unittests are run
* wrote some unit- and integration tests as examples
* fixed user.get_short_name() to use the sort order from config
* fixed wrong url_pattern in the user app