Merge pull request #4990 from emanuelschuetze/changelog3.0

Updated Changelog
This commit is contained in:
Emanuel Schütze 2019-09-12 23:44:58 +02:00 committed by GitHub
commit 7d307e5ffe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 136 additions and 105 deletions

View File

@ -2,57 +2,102 @@
CHANGELOG of OpenSlides CHANGELOG of OpenSlides
========================= =========================
https://openslides.org/ https://openslides.com
Version 3.0 (unreleased) Version 3.0 (2019-09-13)
======================== ========================
`Milestone <https://github.com/OpenSlides/OpenSlides/milestones/3.0>`_
Core: General (Client):
- Changed personal settings.py, updated to channels2, complete rework of - OpenSlides client completely rewritten, based on Angular 8 and Material Design.
startup and caching system, dropped support for Geiss [#3796, #3789]. - OpenSlides is now a Progressive Web App (PWA).
- Dropped support for Python 3.5 [#3805]. - New browser caching via IndexedDB (one cache store for all browser tabs).
- Added a websocket protocol for server client communication using - New list views optimized with virtual scrolling (improved performance for long lists).
JSON schema [#3807, #3949]. - New global quick search using by shortcut 'Alt+Shift+F'.
- Changed URL schema [#3798]. - New built-in design themes for customizing user interface.
- Enabled docs for using OpenSlides with Gunicorn and Uvicorn in big - New update notification if OpenSlides static files are updated.
mode [#3799, #3817]. - New config option for pdf page size (DIN A4 or A5).
- Changed format for elements send via autoupdate [#3926]. - Added TinyMCE 5 editor (switched from CKEditor caused by changed license).
- Fixed autoupdate system for related objects [#4140, #4201]. - Switched from yarn/gulp to npm.
- Add a change-id system to get only new elements [#3938]. - Improved pdf gerneration with progress bar and cancel option.
- Switch from Yarn back to npm [#3964]. - Translations available for EN, DE, RU and CS.
- Added password reset link (password reset via email) [#3914, #4199].
- Added global history mode [#3977, #4141, #4369, #4373, #4767]. General (Server):
- Projector refactoring [4119, #4130]. - New websocket protocol for server client communication using JSON schema.
- Fixed logo configuration if logo file is deleted [#4374]. - New change-id system to send only updated elements to client.
- New global history mode (useable for admin group only).
- Updated to Channels 2.
- Dropped support for Python 3.5.
- Dropped support for Geiss.
- Complete rework of startup and caching system. Dropped restricted data cache.
- Changed URL schema.
- Changed personal settings.py.
- Changed format for elements send via autoupdate.
- Changed projector concept.
- Compressed autoupdates before sending to clients (reduced traffic).
- Fixed autoupdate system for related objects.
- Fixed logo configuration if logo file is deleted.
- Added several bulk views for motions and users (one request for updating multiple selected elements).
- Added docs for using OpenSlides in 'big mode' with Gunicorn and Uvicorn.
- Added docs for configure OpenSlides in settingy.py.
- Dropped chat functionality.
- Server performance improvements.
Agenda: Agenda:
- Added viewpoint to assign multiple items to a new parent item [#4037]. - Agenda items are now optional (for motions, elections and mediafiles). New config to set default behavior.
- New drag&drop view to sort agenda items.
- New config option: only present participants can be added to list of speakers.
- New config option to hide number of speakers on projector.
Motions: Motions:
- Option to customly sort motions [#3894]. - New call list for custom sort of motions.
- Added support for adding a statute [#3894]. - New tile layout view with all categories (each category a tile).
- Added new permission to manage metadata, i. e. set motion state, set and - New statute motions with managing statute paragraphs.
follow recommendation, manage submitters and supporters, change motion - New permission to manage metadata (state, recommendation, submitters and supporters, category,
category, motion block and origin and manage motion polls [#3913]. motion block and polls).
- Added new permission to create amendments [#4128]. - New permission to create amendments.
- Added new flag to motion state to control access restrictions for different - New permission to see motions in internal states.
users. Added new permission to see motions in some internal state - New access restrictions definable for each motion state in workflow.
[#4235, #4518, #4521]. - New 'internal' option for motion blocks.
- Allowed submitters to set state of new motions in complex and customized - New sorting view for categories to create subcategories.
workflow. Changed default workflows. No migration provided [#4236, #4703]. - New custom comment fields for all motions (read/write access can be managed via permission groups).
- Added multi select action to manage submitters, categories, motion blocks, - New motion history (each action is stored in global OpenSlides history which can be restored any time,
tags, states and recommendations [#4037, #4132, #4702]. replaced old motion version and log features).
- Added timestampes for motions [#4134]. - New XLSX export (docx support is dropped).
- New config option to set reason as required field [#4232]. - New navigation for next/previous motion in detail view (shortcut: 'Alt+Shift+Left/Right').
- Added subcategories and altered behaviour of motion numbering in - New multi select actions.
categories: Motions of subcategories are also numbered, and parents of - New timestampes for motions (for sorting by creation date and last modified).
amendments needs to be in the numbered category or any subcategory [#4756]. - New config option to set reason as required field.
- New config option to change multiple paragraphs with an amendment.
- New config option to hide motion text on projector.
- New config option to show sequential number.
- New config option to show all motions which are referred to a special motion.
- New config option to show submitters and recommendation in table of contents of PDF.
- New config options to control identifier generation - number of digits and blanks (moved from settings.py).
- Improved PDF export (optional with toc, page numbers, date, comments and meta information)
- Improved motion numbering in (sub)categories: Motions of subcategories are also numbered, and parents of
amendments needs to be in the numbered category or any subcategory.
- Improved projection layout of motion blocks.
- Changed default workflows: Allowed submitters to set state of new motions in complex and customized workflow.
No migration provided.
- Change CSV import to add tags.
User: User:
- Added new admin group which grants all permissions. Users of existing group - New admin group which grants all permissions. Users of existing group 'Admin' or 'Staff' are move to the
'Admin' or 'Staff' are move to the new group during migration [#3859]. new group during migration.
- Added new permission to set its own password [#4131]. - New gender field.
- Added gender field [#4124]. - New password forget/reset function via email.
- New permission to change own password.
- New config option for sender name and reply email address (From address is defined in settings.py).
Mediafiles:
- New support for (sub)folders and permission groups.
Projector:
- New views to list, manage and control created OpenSlides projectors.
- New projector queue (add slide to queue), all projected slides are logged.
- New chyron for current speaker.
- New color settings for each projector.
Version 2.3 (2018-09-20) Version 2.3 (2018-09-20)

View File

@ -172,9 +172,11 @@ README.md using following command::
OpenSlides in big mode OpenSlides in big mode
====================== ======================
In the so called big mode you should use OpenSlides with Redis, PostgreSQL and To install OpenSlides for big assemblies (in 'big mode') you have to setup some
a webserver like Apache HTTP Server or NGINX as proxy server in front of your additional components and configurations. In the 'big mode' you should use a webserver
OpenSlides interface server. like NGINX to serve the static and media files as proxy server in front of your OpenSlides
interface server. You should also use a database like PostgreSQL. Use Redis as channels backend,
cache backend and session engine. Finally you should use gunicorn with uvicorn as interface server.
1. Install and configure PostgreSQL and Redis 1. Install and configure PostgreSQL and Redis

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2011-2018 Authors of OpenSlides, see AUTHORS Copyright (c) 2011-2019 Authors of OpenSlides, see AUTHORS
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -2,8 +2,8 @@ include AUTHORS
include CHANGELOG include CHANGELOG
include LICENSE include LICENSE
include README.rst include README.rst
include SETTINGS.rst
include requirements/production.txt include requirements/production.txt
include requirements/big_mode.txt include requirements/big_mode.txt
include bower.json
recursive-include openslides *.* recursive-include openslides *.*
exclude openslides/__pycache__/* exclude openslides/__pycache__/*

View File

@ -7,19 +7,16 @@ What is OpenSlides?
OpenSlides is a free, web based presentation and assembly system for OpenSlides is a free, web based presentation and assembly system for
managing and projecting agenda, motions and elections of an assembly. See managing and projecting agenda, motions and elections of an assembly. See
https://openslides.org/ for more information. https://openslides.com for more information.
Requirements
============
The OpenSlides server runs everywhere where Python is running (for example on
GNU/Linux, Mac or Windows). For the OpenSlides client a current webbrowser is required.
Installation Installation
============ ============
The OpenSlides server runs everywhere where Python is running (for example on
GNU/Linux, Mac or Windows). For the OpenSlides client a current web browser is required.
1. Installation on GNU/Linux or Mac OS X 1. Installation on GNU/Linux or Mac OS X
---------------------------------------- ----------------------------------------
@ -66,7 +63,7 @@ This installs the latest stable version. To install a specific (beta)
version use ``openslides==x.y``. version use ``openslides==x.y``.
You can also use the package from the `OpenSlides website You can also use the package from the `OpenSlides website
<https://openslides.org/>`_. Download latest OpenSlides release as <https://openslides.com/>`_. Download latest OpenSlides release as
compressed tar archive and run:: compressed tar archive and run::
$ pip install openslides-x.y.tar.gz $ pip install openslides-x.y.tar.gz
@ -110,9 +107,40 @@ instances of OpenSlides::
2. Installation on Windows 2. Installation on Windows
-------------------------- --------------------------
Download the latest portable version of OpenSlides for Windows from Follow the instructions above (1. Installation on GNU/Linux or Mac OS X) but care
`OpenSlides website <https://openslides.org/>`_ which does not require any of the following variations.
install steps. Simply unzip the downloaded file and run ``openslides.exe``.
To get Python download and run the latest `Python 3.7 32-bit (x86) executable
installer <https://www.python.org/downloads/windows/>`_. Note that the 32-bit
installer is required even on a 64-bit Windows system. If you use the 64-bit
installer, step 1c of the instruction might fail unless you installed some
packages manually.
In some cases you have to install `MS Visual C++ 2015 build tools
<https://www.microsoft.com/en-us/download/details.aspx?id=48159>`_ before you
install the required python packages for OpenSlides (unfortunately Twisted
needs it).
To setup and activate the virtual environment in step 1b use::
> .virtualenv\Scripts\activate.bat
All other commands are the same as for GNU/Linux and Mac OS X.
3. Installation with Docker
---------------------------
The installation instruction for (1) and (2) described a way to use OpenSlides in a
'small mode' with max 10 concurrent clients. To install OpenSlides for big assemblies
('big mode') you have to setup some additional components and configurations.
The easiest way to run the OpenSlides 'big mode' environment (with PostgreSQL, Redis
and NGINX) with Docker Compose: use our docker compose suite. Follow the instruction in
the `openslides-doccker-compose Repository <https://github.com/OpenSlides/openslides-docker-compose>`_.
To install and configure all components of our 'big mode' manually you can read the
`big-mode-instruction <https://github.com/OpenSlides/OpenSlides/blob/master/DEVELOPMENT.rst#openslides-in-big-mode>`_
Configuration Configuration
@ -124,58 +152,14 @@ find out about all configurations, especially when using OpenSlides for big
assemblies. assemblies.
Using the Dockerfile
====================
You can either pull the image ``openslides/openslides`` or build it yourself
(via `docker build -t openslides/openslides .`). You have all prequistes installed
it to start a quick server. To see how it should be used to setup an
production environment, see `openslides-docker
<https://github.com/OpenSlides/openslides-docker>`_.
You can start a quick-setup (not for production purposes, only local testing) with:
$ docker run -v /path/to/save/something:/app/personal_data -p 4200:4200 openslides/openslides /bin/bash -c "python manage.py createsettings && python manage.py migrate && (python manage.py runserver & (cd client && npm start))"
Development Development
=========== ===========
If you want to contribute to OpenSlides, have a look at `OpenSlides website To setup a development environment for OpenSlides follow the instruction of
<https://openslides.org/>`_ and write us an email. There is also an `DEVELOPMENT.rst
`instruction to install the development version
<https://github.com/OpenSlides/OpenSlides/blob/master/DEVELOPMENT.rst>`_. <https://github.com/OpenSlides/OpenSlides/blob/master/DEVELOPMENT.rst>`_.
Installation for big assemblies
===============================
The installation steps described above install OpenSlides in a way that
does NOT support hundreds of concurrent clients. To install OpenSlides for
big assemblies some variables have to be changed in the OpenSlides settings
file (usually called settings.py).
The configuration values that have to be altered are:
* CHANNEL_LAYERS
* DATABASES
* SESSION_ENGINE
* REDIS_ADDRESS
You should use a webserver like Apache HTTP Server or nginx to serve the
static and media files as proxy server in front of your OpenSlides
interface server. You also should use a database like PostgreSQL and Redis
as channels backend, cache backend and session engine. Finally you should
use gunicorn with uvicorn as interface server.
Please see the respective section in the `DEVELOPMENT.rst
<https://github.com/OpenSlides/OpenSlides/blob/master/DEVELOPMENT.rst>`_ and:
* https://channels.readthedocs.io/en/latest/deploying.html
* https://github.com/sebleier/django-redis-cache
* https://docs.djangoproject.com/en/1.10/ref/settings/#databases
Used software Used software
============= =============