Prepared 3.0 release

Updated CHANGELOG, README, DEVELOPMENT, LICENSE and MANIFEST.
This commit is contained in:
Emanuel Schütze 2019-09-12 23:29:54 +02:00
parent d5cfdd24e6
commit 8ef7dceb8b
5 changed files with 136 additions and 105 deletions

View File

@ -2,57 +2,102 @@
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:
- Changed personal settings.py, updated to channels2, complete rework of
startup and caching system, dropped support for Geiss [#3796, #3789].
- Dropped support for Python 3.5 [#3805].
- Added a websocket protocol for server client communication using
JSON schema [#3807, #3949].
- Changed URL schema [#3798].
- Enabled docs for using OpenSlides with Gunicorn and Uvicorn in big
mode [#3799, #3817].
- Changed format for elements send via autoupdate [#3926].
- Fixed autoupdate system for related objects [#4140, #4201].
- Add a change-id system to get only new elements [#3938].
- Switch from Yarn back to npm [#3964].
- Added password reset link (password reset via email) [#3914, #4199].
- Added global history mode [#3977, #4141, #4369, #4373, #4767].
- Projector refactoring [4119, #4130].
- Fixed logo configuration if logo file is deleted [#4374].
General (Client):
- OpenSlides client completely rewritten, based on Angular 8 and Material Design.
- OpenSlides is now a Progressive Web App (PWA).
- New browser caching via IndexedDB (one cache store for all browser tabs).
- New list views optimized with virtual scrolling (improved performance for long lists).
- New global quick search using by shortcut 'Alt+Shift+F'.
- New built-in design themes for customizing user interface.
- New update notification if OpenSlides static files are updated.
- New config option for pdf page size (DIN A4 or A5).
- Added TinyMCE 5 editor (switched from CKEditor caused by changed license).
- Switched from yarn/gulp to npm.
- Improved pdf gerneration with progress bar and cancel option.
- Translations available for EN, DE, RU and CS.
General (Server):
- New websocket protocol for server client communication using JSON schema.
- 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:
- 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:
- Option to customly sort motions [#3894].
- Added support for adding a statute [#3894].
- Added new permission to manage metadata, i. e. set motion state, set and
follow recommendation, manage submitters and supporters, change motion
category, motion block and origin and manage motion polls [#3913].
- Added new permission to create amendments [#4128].
- Added new flag to motion state to control access restrictions for different
users. Added new permission to see motions in some internal state
[#4235, #4518, #4521].
- Allowed submitters to set state of new motions in complex and customized
workflow. Changed default workflows. No migration provided [#4236, #4703].
- Added multi select action to manage submitters, categories, motion blocks,
tags, states and recommendations [#4037, #4132, #4702].
- Added timestampes for motions [#4134].
- New config option to set reason as required field [#4232].
- Added subcategories and altered behaviour of motion numbering in
categories: Motions of subcategories are also numbered, and parents of
amendments needs to be in the numbered category or any subcategory [#4756].
- New call list for custom sort of motions.
- New tile layout view with all categories (each category a tile).
- New statute motions with managing statute paragraphs.
- New permission to manage metadata (state, recommendation, submitters and supporters, category,
motion block and polls).
- New permission to create amendments.
- New permission to see motions in internal states.
- New access restrictions definable for each motion state in workflow.
- New 'internal' option for motion blocks.
- New sorting view for categories to create subcategories.
- New custom comment fields for all motions (read/write access can be managed via permission groups).
- New motion history (each action is stored in global OpenSlides history which can be restored any time,
replaced old motion version and log features).
- New XLSX export (docx support is dropped).
- New navigation for next/previous motion in detail view (shortcut: 'Alt+Shift+Left/Right').
- New multi select actions.
- New timestampes for motions (for sorting by creation date and last modified).
- 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:
- Added new admin group which grants all permissions. Users of existing group
'Admin' or 'Staff' are move to the new group during migration [#3859].
- Added new permission to set its own password [#4131].
- Added gender field [#4124].
- New admin group which grants all permissions. Users of existing group 'Admin' or 'Staff' are move to the
new group during migration.
- New gender field.
- 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)

View File

@ -172,9 +172,11 @@ README.md using following command::
OpenSlides in big mode
======================
In the so called big mode you should use OpenSlides with Redis, PostgreSQL and
a webserver like Apache HTTP Server or NGINX as proxy server in front of your
OpenSlides interface server.
To install OpenSlides for big assemblies (in 'big mode') you have to setup some
additional components and configurations. In the 'big mode' you should use a webserver
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

View File

@ -1,6 +1,6 @@
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
of this software and associated documentation files (the "Software"), to deal

View File

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

View File

@ -7,19 +7,16 @@ What is OpenSlides?
OpenSlides is a free, web based presentation and assembly system for
managing and projecting agenda, motions and elections of an assembly. See
https://openslides.org/ 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.
https://openslides.com for more information.
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
----------------------------------------
@ -66,7 +63,7 @@ This installs the latest stable version. To install a specific (beta)
version use ``openslides==x.y``.
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::
$ pip install openslides-x.y.tar.gz
@ -110,9 +107,40 @@ instances of OpenSlides::
2. Installation on Windows
--------------------------
Download the latest portable version of OpenSlides for Windows from
`OpenSlides website <https://openslides.org/>`_ which does not require any
install steps. Simply unzip the downloaded file and run ``openslides.exe``.
Follow the instructions above (1. Installation on GNU/Linux or Mac OS X) but care
of the following variations.
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
@ -124,58 +152,14 @@ find out about all configurations, especially when using OpenSlides for big
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
===========
If you want to contribute to OpenSlides, have a look at `OpenSlides website
<https://openslides.org/>`_ and write us an email. There is also an
`instruction to install the development version
To setup a development environment for OpenSlides follow the instruction of
`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
=============