========================= CHANGELOG of OpenSlides ========================= https://openslides.org/ Version 2.2 (unreleased) ========================== [https://github.com/OpenSlides/OpenSlides/milestones/2.2] Agenda: - Fixed wrong sorting of last speakers [#3193]. - Fixed issue when sorting a new inserted speaker [#3210]. - New permission for managing lists of speakers [#3366]. - Fixed multiple request on creation of agenda related items [#3341]. - Added possibility to mark speakers [#3570]. - New DOCX export of agenda [#3569]. - Hide closed agenda items in the item slide [#3567]. - Agenda is now collapsable for a better overview [#3567]. Motions: - New export dialog [#3185]. - New feature: Personal notes for motions [#3190, #3267, #3404]. - Fixed issue when creating/deleting motion comment fields in the settings [#3187]. - Fixed empty motion comment field in motion update form [#3194]. - Fixed error on category sort [#3318]. - Removed server side image to base64 transformation and added local transformation [#3181]. - Added support for export motions in a ZIP archive [#3189]. - Performance improvement for ZIP creation [#3251]. - Bugfix: Changing motion line length did not invalidate cache [#3202]. - Bugfix: Added more distance in motion PDF for DEL-tags in new lines [#3211]. - Added warning message if an edit dialog was already opened by another client [#3212]. - Reworked DOCX export parser and added comments to DOCX [#3258]. - New PDF export for personal note and comments [#3239]. - Bugfix: Creating colliding change recommendation is now prevented on server side [#3304]. - Added config value for customize sorting of category list in pdf/docx export [#3329]. - Added config value for pagenumber alignment in PDF [#3327]. - Bugfix: Several bugfixes regarding splitting list items in change recommendations [#3288]. - Bugfix: Several bugfixes regarding diff version [#3407, #3408, #3410, #3440, #3450, #3465, #3537, #3546, #3548]. - Added inline Editing for motion reason [#3361]. - Added multiselect filter for motion comments [#3372]. - Added support for pinning personal notes to the window [#3360]. - Clear identifier on state reset [#3356]. - New config options to hide reason and recommendation on projector [#3432]. - Show motion identifier in (current) list of speakers [#3442] - Added navigation between single motions [#3459]. - Improved the multiselect state filter [#3459]. - Added karma:watch command [#3466]. - Show the number of next speakers in motion list view [#3470]. - Reference to motions by id in state and recommendation special field [#3498]. - Added new change recommendation type "other" [#3495]. - Combined all boolean filters into one dropdown menu and added a filter for amendments [#3501]. - Allow to delete own motions [#3516]. - Log which comment was updated [#3569]. - Save pagination sate to session storage [#3569]. - Split up 'can_see_and_manage_comments' permission in two seperate ones [#3565]. Elections: - Added pagination for list view [#3393]. Users: - User without permission to see users can now see agenda item speakers, motion submitters and supporters, assignment candidates, mediafile uploader and chat message users if they have the respective permissions [#3191, #3233]. - Added support for password validation using Django or custom validators e. g. for minimum password length [#3200]. - Fixed compare of duplicated users while CSV user import [#3201]. - Added fast mass import for users [#3290]. - Removed OPTIONS request. All permissions are now provided on startup [#3306]. - Added option to enable updating the last_login field in the database. The default is now disabled [#3400]. - Hide password in change password view [#3417]. - Added a change presence view [#3496]. - New feature to send invitation emails with OpenSlides login [#3503]. Core: - No reload on logoff. OpenSlides is now a full single page application [#3172]. - Adding support for choosing image files as logos for projector, PDF and web interface header [#3184, #3207, #3208, #3310]. - Fixing error when clearing empty chat [#3199]. - Added notify system [#3212]. - Enhanced performance esp. for server restart and first connection of all clients by refactoring autoupdate, Collection and AccessPermission [#3223, #3539]. - Fixes autoupdate bug for a user without user.can_see_name permission [#3233]. - Improved reconnect handling if the server was flushed [#3297]. - Highlight list entries in a light blue, if a related object is projected (e. g. a list of speakers of a motion) [#3301]. - Select the projector resolution with a slider and an aspect ratio [#3311]. - Fixed bug the elements are projected and the deleted [#3336]. - Delay the 'could not load projector' error 3 seconds to not irritate users with a slow internet connection [#3323]. - Added config value for standard font size in PDF [#3332]. - Added default sorting for agenda, motions, elections, mediafiles and users [#3334, 3348]. - Added config for disabling header and footer in the projector [#3357]. - Updated CKEditor to 4.7 [#3375]. - Reduced ckeditor toolbar for inline editing [#3368]. - Added custom translations in config [#3383]. - Added dynamic webpage title [#3404]. - Added 'go to top'-link [#3404]. - Added caching for the index views [#3419, #3424]. - Added projector prioritization [#3425]. - Use native twisted mode for daphne [#3487]. - Saved language selection to session storage [#3543]. - Set default of projector resolution to 1220x915 [#2549]. - Preparations for the SAML plugin; Fixed caching of main views [#3535]. - Removed unnecessary OPTIONS request in config [#3541]. - Added possibility to upload custom fonts for projector and pdf [#3568]. - Use custom format cleanup plugin for CKEditor [#3576]. Mediafiles: - Fixed reloading of PDF on page change [#3274]. - Custom CKEditor plugin for browsing mediafiles [#3337]. - Project images always in fullscreen [#3355]. - Protect mediafiles for forbidden access [#3384]. General: - Several bugfixes and minor improvements. - Switched from npm to Yarn [#3188]. - Improved performance for PDF generation significantly (by upgrading to pdfmake 0.1.30) [#3278, #3285]. - Bugfixes for PDF creation [#3227, #3251, #3279, #3286, #3346, #3347, #3342]. - Improvements for plugin integration [#3330]. - Cleanups for the collection and autoupdate system [#3390] Version 2.1.1 (2017-04-05) ========================== [https://github.com/OpenSlides/OpenSlides/milestones/2.1.1] Agenda: - Fixed issue #3173 that the agenda item text cannot be changed. Other: - Set required version for optional Geiss support to <1.0.0. Version 2.1 (2017-03-29) ======================== [https://github.com/OpenSlides/OpenSlides/milestones/2.1] Agenda: - Added button to remove all speakers from a list of speakers. - Added option to create or edit agenda items as subitems of others. - Fixed security issue: Comments were shown for unprivileged users. - Added option to choose whether to show the current list of speakers slide as a slide or an overlay. - Manage speakers on the current list of speakers view. - List of speakers for hidden items is always visible. Core: - Added support for multiple projectors. - Added control for the resolution of the projectors. - Added smooth projector scroll. - Set the projector language in the settings. - Added migration path from OpenSlides 2.0. - Added support for big assemblies with lots of users. - Django 1.10 is now supported. Dropped support for Django 1.8 and 1.9. - Used Django Channels instead of Tornado. Refactoring of the autoupdate process. Added retry with timeout in case of ChannelFull exception. - Made a lot of autoupdate improvements for projector and site. - Added new caching system with support for Redis. - Support https as websocket protocol (wss). - Accelerated startup process (send all data to the client after login). - Add the command getgeiss to download the latest version of Geiss. - Add a version of has_perm that can work with cached users. - Removed our AnonymousUser. Make sure not to use user.has_perm() anymore. - Added function utils.auth.anonymous_is_enabled which returns true, if it is. - Changed has_perm to support an user id or None (for anyonmous) as first argument. - Cache the group with there permissions. - Added watching permissions in client and change the view immediately on changes. - Used session cookies and store filter settings in session storage. - Removed our db-session backend and added possibility to use any django session backend. - Added template hook system for plugins. - Used Roboto font in all templates. - Added HTML support for messages on the projector. - Moved custom slides to own app "topics". Renamed it to "Topic". - Added button to clear the chatbox. - Better dialog handling. Show dialog just in forground without changing the state url. Added new dialog for profile, change password, tag and category update view. - Switched editor back from TinyMCE to CKEditor which provides a better copy/paste support from MS Word. - Validate HTML strings from CKEditor against XSS attacks. - Use a separate dialog with CKEditor for editing projector messages. - Use CKEditor in settings for text markup. - Used pdfMake for clientside generation of PDFs. Run pdf creation in background (in a web worker thread). - Introduced new table design for list views with serveral filters and CSV export. - New CSV import layout. - Replaced angular-csv-import by Papa Parse for CSV parsing. - Added UTF-8 byte order mark for every CSV export. - Removed config cache to support multiple threads or processes. - Added success/error symbol to config to show if saving was successful. - Fixed bug, that the last change of a config value was not send via autoupdate. - Moved full-text search to client-side (removed the server-side search engine Whoosh). - Made a lot of code clean up, improvements and bug fixes in client and backend. Motions: - Added adjustable line numbering mode (outside, inside, none) for each motion text. - Allowed to add change recommendations for special motion text lines (with diff mode). - Added projection support for change recommendations. - Added button to sort and number all motions in a category. - Added recommendations for motions. - Added options to calculate percentages on different bases. - Added calculation for required majority. - Added blocks for motions which can be used in agenda. Set states for multiple motions of a motion block by following the recommendation for each motion. - Used global config variable for preamble. - Added configurable fields for comments. - Added new origin field. - Reimplemented amendments. - New PDF layout. - Added DOCX export with docxtemplater. - Changed label of former state "commited a bill" to "refered to committee". - Number of ballots printed can now be set in config. - Add new personal settings to remove all whitespaces from motion identifier. - Add new personal settings to allow amendments of amendments. - Added inline editing for comments. Elections: - Added options to calculate percentages on different bases. - Added calculation for required majority. - Candidates are now sortable. - Removed unused assignment config to publish winner election results only. - Number of ballots printed can now be set in config. - Added inline edit field for a specific hint on ballot papers. Users: - Added new matrix-interface for managing groups and their permissions. - Added autoupdate on permission change (permission added). - Improved password reset view for administrators. - Changed field for initial password to an unchangeable field. - Added new field for participant number. - Added new field 'is_committee' and new default group 'Committees'. - Improved users CSV import (use group names instead of id). - Allowed to import/export initial user password. - Added more multiselect actions. - Added QR code in users access pdf. Mediafiles: - Allowed to project uploaded images (png, jpg, gif) and video files (e. g. mp4, wmv, flv, quicktime, ogg). - Allowed to hide uploaded files in overview list for non authorized users. - Enabled removing of files from filesystem on model instance delete. Other: - Added Russian translation (Thanks to Andreas Engler). - Added command to create example data. Version 2.0 (2016-04-18) ======================== [https://github.com/OpenSlides/OpenSlides/milestones/2.0] OpenSlides 2.0 is essentially not compatible to OpenSlides 1.7. E. g. customized templates, databases and plugins can not be reused without adaption. Agenda: - Updated the tests and changed internal parts of method of the agenda model. - Changed API of related objects. All assignments, motions and custom slides are now agenda items and can be hidden. - Removed django-mptt. - Added attachments to custom sldies. - Improved CSV import. Assignments: - Renamed app from assignment to assignments. - Removed possibility to block candidates. - Massive refactoring and cleanup of the app. Motions: - Renamed app from motion to motions. - Massive refactoring and cleanup of the app. Mediafiles: - Renamed app from mediafile to mediafiles. - Used improved pdf presentation with angular-pdf. - Massive refactoring and cleanup of the app. Users: - Massive refactoring of the participant app. Now called 'users'. - Used new anonymous user object instead of an authentification backend. Used special authentication class for REST requests. - Used authentication frontend via AngularJS. - Improved CSV import. Other: - New OpenSlides logo. - New design for web interface. - Added multiple countdown support. - Added colored countdown for the last n seconds (configurable). - Switched editor from CKEditor to TinyMCE. - Changed supported Python version to >= 3.4. - Used Django 1.8 as lowest requirement. - Django 1.9 is supported - Added Django's application configuration. Refactored loading of signals and projector elements/slides. - Setup migrations. - Added API using Django REST Framework 3.x. Added several views and mixins for generic Django REST Framework views in OpenSlides apps. - Removed most of the Django views and templates. - Removed Django error pages. - Added page for legal notice. - Refactored projector API using metaclasses now. - Renamed SignalConnectMetaClass classmethod get_all_objects to get_all (private API). - Refactored config API and moved it into the core app. - Removed old style personal info page, main menu entries and widget API. - Used AngularJS with additional libraries for single page frontend. - Removed use of 'django.views.i18n.javascript_catalog'. Used angular-gettext now. - Updated to Bootstrap 3. - Used SockJS for automatic update of AngularJS driven single page frontend. - Refactored plugin API. - Refactored start script and management commands. Changed command line option and path for local installation. - Refactored tests. - Used Bower and gulp to manage third party JavaScript and Cascading Style Sheets libraries. - Used setup.cfg for development tools. - Removed code for documentation and for Windows portable version with GUI. Used new repositories for this. Cleaned up main repository. - Updated all dependencies. Translations: - Updated DE, FR, CS and PT translations. - Added ES translations. Version 1.7 (2015-02-16) ======================== [https://github.com/OpenSlides/OpenSlides/milestones/1.7] Core: - New feature to tag motions, agenda and assignments. - Fixed search index problem to index contents of many-to-many tables (e. g. tags of a motion). - Fixed AttributeError in chatbox on_open method. Motions: - New Feature to create amendments, which are related to a parent motion. - Added possibility to hide motions from non staff users in some states. Assignments: - Fixed permissions to alter assignment polls. Other: - Cleaned up utils.views to increase performance when fetching single objects from the database for a view (#1378). - Fixed bug on projector which was not updated when an object was deleted. - Fixed bug and show special characters in PDF like ampersand (#1415). - Updated pdf.js to 1.0.907. - Improve the usage of bsmselect jquery plugin. - Updated translations. Version 1.6.1 (2014-12-08) ========================== [https://github.com/OpenSlides/OpenSlides/issues?milestone=16] Agenda: - Fixed error in item numbers. Motions: - Show supporters on motion slide if available. - Fixed motion detail view template. Added block to enable extra content via plugins. Assignments: - Fixed PDF build error when an election has more than 20 posts or candidates. Participants: - Fixed participant csv import with group ids: * Allowed to add multiple groups in csv group id field, e. g. "3,4". * Fixed bug that group ids greater than 9 can not be imported. * Updated error message if group id does not exists. Other: - Fixed CKEditor stuff (added insertpre plugin and removed unused code). - Updated French, German and Czech translation. Version 1.6 (2014-06-02) ======================== [https://github.com/OpenSlides/OpenSlides/issues?milestone=14] Dashboard: - Added shortcuts for the countdown. - Enabled copy and paste in widgets. Agenda: - New projector view with the current list of speakers. - Added CSV import of agenda items. - Added automatic numbering of agenda items. - Fixed organizational item structuring. Motions: - New slide for vote results. - Created new categories during CSV import. Assignments/Elections: - Coupled assignment candidates with list of speakers. - Created a poll description field for each assignment poll. - New slide for election results. Participants: - Disabled dashboard widgets by default. - Added form field for multiple creation of new participants. Files: - Enabled update and delete view for uploader refering to his own files. Other: - Added global chatbox for managers. - New config option to set the 100 % base for polls (motions/elections). - Changed api for plugins. Used entry points to detect them automaticly. Load them automaticly from plugin directory of Windows portable version. - Added possibility to use custom templates and static files in user data path directory. - Changed widget api. Used new metaclass. - Changed api for main menu entries. Used new metaclass. - Inserted api for the personal info widget. Used new metaclass. - Renamed config api classes. Changed permission system for config pages. - Regrouped config collections and pages. - Renamed some classes of the poll api. - Renamed method and attribute of openslides.utils.views.PermissionMixin. - Added api for absolute urls in models. - Inserted command line option to translate config strings during database setup. - Enhanced http error pages. - Improved responsive design for templates. - Fixed headings on custom slides without text. - Moved dashboard and select widgets view from projector to core app. - Renamed and cleaned up static direcories. - Used jsonfield as required package. Removed jsonfield code. - Added new package backports.ssl_match_hostname for portable build script. - Used new app "django-ckeditor-updated" to render WYSIWYG html editors. Removed CKEditor from sources. - Only reload the webserver in debug-mode. Version 1.5.1 (2014-03-31) ========================== [https://github.com/OpenSlides/OpenSlides/issues?milestone=15] Projector: - Fixed path and config help text for logo on the projector. Agenda: - Fixed permission error in the list of speakers widget. - Fixed Item instance method is_active_slide(). Motion: - Fixed sorting of motions concerning the identifier. Used natsort and DataTables Natural Sort Plugin. Participant: - Added permission to see participants to the manager group. - Fixed user status view for use without Javascript. Files: - Fixed error when an uploaded file was removed from filesystem. Other: - Set minimum Python version to 2.6.9. Fixed setup file for use with Python 2.6. - Used unicode font for circle in ballot pdf. Removed Pillow dependency package. - Fixed http status code when requesting a non-existing static page using Tornado web server. - Fixed error in main script when using other database engine. - Fixed error on motion PDF with nested lists. Version 1.5 (2013-11-25) ======================== [https://github.com/OpenSlides/OpenSlides/issues?milestone=10] Projector: - New feature: Show PDF presentations on projector (with included pdf.js). - Improved projector update process via new websocket API (using sockjs and tornado). - New projector template with twitter bootstrap. - Improved projector zoom and scroll behaviour. Agenda: - New config option: couple countdown with list of speakers. - Used HTML editor (CKEditor) for agenda item text field. - Added additional input format for agenda item duration field. Motions: - Enabled attachments for motions. - Refactored warnings on CSV import view. Elections: - Refactored assignment app to use class based views instead of functions. Polls: - Added percent base to votes cast values. Participants: - Updated access data PDF: WLAN access (with QRCode for WLAN ssid/password) and OpenSlides access (with QRCode for system URL), printed on a single A4 page for each participant. Other: - Full text search integration (with Haystack and Whoosh). - New start script with new command line options (see python manage.py --help) - Fixed keyerror on user settings view. - New messages on success or error of many actions like creating or editing objects. - Changed messages backend, used Django's default now. - A lot of template fixes and improvements. - Extended css style options in CKEditor. - Added feature to config app to return the default value for a key. - Cleaned up OpenSlides utils views. - Improved README (now with install instructions and used components). - Updated all required package versions. - Used flake8 instead of pep8 for style check, sort all import statements with isort. - Added Portuguese translation (Thanks to Marco A. G. Pinto). - Switched to more flexible versions of required third party packages. - Updated to Django 1.6.x. - Updated German documentation. - Change license from GPLv2+ to MIT, see LICENSE file. Version 1.4.2 (2013-09-10) ========================== [https://github.com/OpenSlides/OpenSlides/issues?milestone=12] - Used jQuery plugin bsmSelect for better