Starting with this release, the legacy installation script is no longer supporter. You can now use the brand new docker-based installation.
TODO: describe docker installation when it will be prod-ready
## Breaking changes
### New python dependencies management system
The new way to manage python dependencies changed from pip to poetry. To migrate, you will have to install poetry (by following you distribution instructions), then run `poetry install --extras "mysql postgres ldap` (you can remove the features you don't use from the list). Finally, to run any re2o command, prefix it with `poetry run`. For example, to run the server, you now have to run `poetry run python3 ./manage.py runserver`. You will have to change the systemd service file if you use one.
### Update to Django 2.2
This version updates Django from 1.11 to 2.2. This can break a few things in your custom modules if you have some. Please follow Django's instructions to migrate your modules.
Old migrations have been cleaned. This means that you will be able to update your database to this version only from Re2o 2.9. If you have a older version of Re2o, you will have to update first to 2.9, then apply migrations, and then update to 3.0.
You will also have to define the proper LDAP router in your settings_local.py if you use the `ldap_sync` optional app. See `re2o/settings_local.example.py` for an example.
## New features
### New API-based Radius script [!614](https://gitlab.federez.net/re2o/re2o/-/merge_requests/614)
This new Radius script will no longer need to have a full re2o installation on the Radius VM. To use it, activate `api` and `radius` optional apps in your `settings_local.py`, then install [the script itself](https://gitlab.federez.net/re2o/re2o-radius) on the Radius VM by following the repository instructions.
If you don't use the Apache configuration distributed in re2o, please not that for this optional app to function, you will need to add a `AllowEncodedSlashes On` (or equivalent in your reverse proxy configuration) to the configuration.
### New deposits optional app [!622](https://gitlab.federez.net/re2o/re2o/-/merge_requests/622)
### Invoices are now generated from HTML templates instead of LaTeX ones [!621](https://gitlab.federez.net/re2o/re2o/-/merge_requests/621)
### New custom navbar link option [!631](https://gitlab.federez.net/re2o/re2o/-/merge_requests/631)
## Deprecation
The old Radius script is now deprecated. Support for this script will be dropped in a further release. Please migrate to the new API-based one.
## Bug fixes
You can view the full list of closed issues [here](https://gitlab.federez.net/re2o/re2o/-/issues?scope=all&state=all&milestone_title=Re2o%202.9).
To install the latest version of Re2o, checkout the [dedicated wiki entry](https://gitlab.federez.net/re2o/re2o/-/wikis/User-Documentation/Quick-Start#update-re2o).
## Post-install steps
### MR 531: FreeRADIUS Python3 backend
On the Radius server, add `buster-backports` to your `/etc/apt/sources.list`:
```bash
echo "deb http://deb.debian.org/debian buster-backports main contrib" >> /etc/apt/sources.list
```
**Note:** If you are running Debian Bullseye, the package should already be available without going through backports.
Here is a list of noteworthy features brought by this update:
* [!488](https://gitlab.federez.net/re2o/re2o/-/merge_requests/488): Use `+` in searches to combine keywords (e.g. `John+Doe`).
* [!495](https://gitlab.federez.net/re2o/re2o/-/merge_requests/495): Add optional behavior allowing users to override another user's room, if that user is no longer active.
* [!496](https://gitlab.federez.net/re2o/re2o/-/merge_requests/496): Add option to allow users to choose their password during account creation. They will have to separately confirm their email address.
* [!504](https://gitlab.federez.net/re2o/re2o/-/merge_requests/504): Add setting to change the minimum password length.
* [!507](https://gitlab.federez.net/re2o/re2o/-/merge_requests/507): New form for editing lists of rights that should make everyone happier.
* [!512](https://gitlab.federez.net/re2o/re2o/-/merge_requests/512): Add ability to comment on tickets.
* [!513](https://gitlab.federez.net/re2o/re2o/-/merge_requests/513): IP and MAC address history (`Statistics > Machine history` tab) which also works for deleted interfaces. Uses already existing history so events before the upgrade are taken into account.
* [!516](https://gitlab.federez.net/re2o/re2o/-/merge_requests/516): Detailed events in history views (e.g. show `old_email -> new_email`).
* [!519](https://gitlab.federez.net/re2o/re2o/-/merge_requests/519): Add ability to filter event logs (e.g. to show all the subscriptions added by an admin).
* [!569](https://gitlab.federez.net/re2o/re2o/-/merge_requests/569): Add ability to install custom themes (checkout [this repository](https://gitlab.federez.net/re2o/re2o-themes) for a list of Re2o themes).
* [!578](https://gitlab.federez.net/re2o/re2o/-/merge_requests/578) : Migrations squashed to ease the installation process.
* [!582](https://gitlab.federez.net/re2o/re2o/-/merge_requests/582): Improve autocomplete fields so they load faster and have a clearer behavior (no more entering a value without clicking and thinking it was taken into account).
* [!589](https://gitlab.federez.net/re2o/re2o/-/merge_requests/589): Move LDAP to a separate optional app.
* There are more tools available with it but some function have changed, report to [the dedicated wiki page](https://gitlab.federez.net/re2o/re2o/wikis/User%20Documentation/Setup%20script)for more informations or run:
* The installation templates (LDIF files and `re2o/settings_locale.example.py`) have been changed to use `example.net` instead of `example.org` (more neutral and generic)
Creates a new (nearly) REST API to expose all models of Re2o. See [the dedicated wiki page](https://gitlab.federez.net/re2o/re2o/wikis/API/Raw-Usage) for more details on how to use it.
* Activate HTTP Authorization passthrough in by adding the following in `/etc/apache2/site-available/re2o.conf` (example in `install_utils/apache2/re2o.conf`):
## MR 174 : Fix online payment + allow users to pay their subscription
Add the possibility to use custom payment methods. There is also a boolean field on the
Payments allowing every user to use some kinds of payment. You have to add the rights `cotisations.use_every_payment` and `cotisations.buy_every_article`
to the staff members so they can use every type of payment to buy anything.
Don't forget to run migrations, several settings previously in the `preferences` app ar now