Skip to content
Snippets Groups Projects
CHANGELOG.rst 29.6 KiB
Newer Older
Nik | Klampfradler's avatar
Nik | Klampfradler committed
Changelog
=========

All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog`_,
and this project adheres to `Semantic Versioning`_.
Tom Teichler's avatar
Tom Teichler committed

Unreleased
----------

Deprecated
~~~~~~~~~~

* The `webpack_bundle` management command is replaced by the new `vite`
  command. The `webpack_bundle` command will be removed in AlekSIS-Core 4.0.

Added
~~~~~

* Notification drawer in top nav bar
* GraphQL queries and mutations for core data management

Changed
~~~~~~~

* Rewrite of frontend using Vuetify
  * The runuwsgi dev server now starts a Vite dev server with HMR in the
    background
* OIDC scope "profile" now exposes the avatar instead of the official photo
* Based on Django 4.0
  * Use built-in Redis cache backend
  * Introduce PBKDF2-SHA1 password hashing
* Persistent database connections are now health-checked as to not fail
  requests
* Incorporate SPDX license list for app licenses on About page
* [Dev] The undocumented field `check` on `DataCheckResult` was renamed to `data_check`
* Frontend bundling migrated from Webpack to Vite
* The system tried to send notifications for done background tasks
  in addition to tasks started in the foreground.
magicfelix's avatar
magicfelix committed
* Invitations for existing short name did not work.
* Invitations for persons without pre-defined e-mail address did not behave correctly
Removed
~~~~~~~

* Support for materialize-based frontend views (deprecated in 2.11)
* Django debug toolbar
  * It caused major performance issues and is not useful with the new
    frontend anymore
`2.12.1`_ - 2022-11-06
----------------------

Fixed
~~~~~

* An invalid backport caused OIDC clients without PKCD to fail.

Jonathan Weth's avatar
Jonathan Weth committed
`2.12`_ - 2022-11-04
--------------------

Added
~~~~~

* Show also group ownerships on person detail page
* [Dev] Provide plain PDF template without header/footer for special layouts.
* [Dev] Introduce support for reformattinga and linting JS, Vue, and CSS files.

Changed
~~~~~~~

* OIDC scope "profile" now exposes the avatar instead of the official photo
Jonathan Weth's avatar
Jonathan Weth committed
* Language selection on Vue pages now runs via GraphQL queries.
* [Dev] Provide function to generate PDF files from fully-rendered templates.
* [Dev] Accept pre-created file object for PDF generation to define
  the redirect URL in advance.
Jonathan Weth's avatar
Jonathan Weth committed

Fixed
~~~~~

* The logo in the PDF files was displayed at the wrong position.
* Sometimes the PDF files were not generated correctly
  and images were displayed only partially.
* Error message in permission form was misleading.
magicfelix's avatar
magicfelix committed
* Personal invites did not work
magicfelix's avatar
magicfelix committed
* Invite Person view threw an error when personal invites existed
* Detailed information for done Celery tasks weren't saved.
`2.11`_ - 2022-08-27
--------------------

This release sunsets the 2.x series of the AleKSIS core.

Deprecated
~~~~~~~~~~

* All frontends using Django views and Django templates are deprecated and support
  for them will be removed in AlekSIS-Core 3.0. All frontend code must be written in
  Vue.js and be properly separated from the backend. In the same spirit, all backend
  features must expose GraphQL APIs for the frontend to use.
The following features are introduced here mainly to simplify gradual
updates. GraphQL and the Vuetify/Vue.js frontend mechanisms are preview
functionality and app developers should not rely on them before AlekSIS-Core
3.0.

* Introduce GraphQL API and Vue.js frontend implementation
* Introduce webpack bundling for frontend code
`2.10.2`_ - 2022-08-25
----------------------

Nik | Klampfradler's avatar
Nik | Klampfradler committed
Fixed
~~~~~

* Celery's logging did not honour Django's logging level
* Automatically clean up expired OAuth tokens after 24 hourse
Jonathan Weth's avatar
Jonathan Weth committed
`2.10.1`_ - 2022-07-24
----------------------
magicfelix's avatar
magicfelix committed
Changed
~~~~~~~

* Make External Link Widget icons clickable

Fixed
~~~~~

* The progress page for background tasks didn't show all status messages.

`2.10`_ - 2022-06-25
--------------------
* Add Ukrainian locale (contributed by Sergiy Gorichenko from Fre(i)e Software GmbH).
Tom Teichler's avatar
Tom Teichler committed
* Add third gender to gender choices
Julian's avatar
Julian committed
* Add DataCheck to validate specific fields of specific models
Changed
~~~~~~~

* Restructure group page and show more information about members.
* django-two-factor-auth >= 1.14.0 is now required due to a
  backwards-incompatible breakage in that library
Julian's avatar
Julian committed
Fixed
~~~~~~~

* Password change view did not redirect to login when accessed unauthenticated.
Julian's avatar
Julian committed
* Sorting icons were inlined into stylesheet
* iOS devices used the favicon instead of the PWA icon when the PWA was added to the home screen.
Julian's avatar
Julian committed
Changed
~~~~~~~

* Update icon choices for models to new icon set

Jonathan Weth's avatar
Jonathan Weth committed
`2.9`_ - 2022-05-25
-------------------
Added
~~~~~

* Allow to disable exception mails to admins
Julian's avatar
Julian committed
* Add possibility to create iCal feeds in all apps and dynamically create user-specific urls.
Fixed
~~~~~

* The menu button used to be displayed twice on smaller screens.
* The icons were loaded from external servers instead from local server.
* Weekdays were not translated if system locales were missing
  * Added locales-all to base image and note to docs
Tom Teichler's avatar
Tom Teichler committed

Julian's avatar
Julian committed
* The icons in the account menu were still the old ones.
* Due to a merge error, the once removed account menu in the sidenav appeared again.
* Scheduled notifications were shown on dashboard before time.
* Remove broken notifications menu item in favor of item next to account menu.
* [OAuth2] Resources which are protected with client credentials
  allowed access if no scopes were allowed (CVE-2022-29773).
* The site logo could overlap with the menu for logos with an unexpected aspect ratio.
* Some OAuth2 views stopped working with long scope names.
Tom Teichler's avatar
Tom Teichler committed
* Resetting password was impossible due to a missing rule
* Language selection was broken when only one language was enabled in
  preferences.

Removed
~~~~~~~

* Remove option to limit available languages in preferences.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
Changed
~~~~~~~

* [Dev] ActionForm now checks permissions on objects before executing
* [Dev] ActionForm now returns a proper return value from the executed action
Tom Teichler's avatar
Tom Teichler committed
* Pin version of javascript dependencies
Jonathan Weth's avatar
Jonathan Weth committed
`2.8.1`_ - 2022-03-13
Tom Teichler's avatar
Tom Teichler committed
--------------------
Changed
~~~~~~~

* Official apps can now override any setting

`2.8`_ - 2022-03-11
-------------------
Julian's avatar
Julian committed
Added
~~~~~

Tom Teichler's avatar
Tom Teichler committed
* Add iconify icons
Julian's avatar
Julian committed
* Use identicons where avatars are missing.
* Display personal photos instead of avatars based on a site preference.
* Add an account menu in the top navbar.
* Create a reusable snippet for avatar content.
* Allow to configure if additional field is required
* Allow to configure description of additional fields
* Allow configuring regex for allowed usernames
* [Dev] Support scheduled notifications.
magicfelix's avatar
magicfelix committed
* Implement StaticContentWidget
* Allow to enable password change independently of password reset
Julian's avatar
Julian committed

Changed
~~~~~~~

* Added a `Retry` button to the server error page

* The user handbook was lacking images and instructions on PWA usage with the Safari browser.
* The ``reset password`` button on the login site used to overflow the card on smaller devices.

Tom Teichler's avatar
Tom Teichler committed
Deprecated
~~~~~~~~~~

* Legacy material icon font will be removed in AlekSIS-Core 3.0

`2.7.4`_ - 2022-02-09
---------------------
Changed
~~~~~~~

* Allow disabling query caching with cachalot
* Add invitation key to success message when a person without e-mail address is invited by id
* Only exactly one person without e-mail address could be invited
* No person was created and linked to the PersonInvitation object when invite by e-mail is used
* No valid data in the second e-mail field of the signup form when it was disabled
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Invitation options were displayed to superusers even when the feature was disabled
* Inviting newly created persons for registration failed
* Invited person was not displayed correctly in list of sent invitations
* [Docker] Do not clear cache in migration container die to session invalidation issues
* Notification email about user changes was broken
* SQL cache invalidation could fail when hitting OOT database
`2.7.3`_ - 2022-02-03
---------------------
* Migration added in 2.7.2 did not work in all scenarios
* [Dev] Field change tracking API for Person was broken in 2.7.2
* [OAuth] Automatic clean-up of expired OAuth tokens could fail
* Allow maskable icons for non-masked use
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Add missing documentation
Known issues
~~~~~~~~~~~~

* Maskable and non-masked icons *purpose) any cannot be separated

`2.7.2`_ - 2022-01-31
---------------------
Changed
~~~~~~~

* [Dev] The (undocumented) setting PDF_CONTEXT_PROCESSORS is now named NON_REQUEST_CONTEXT_PROCESSORS
* [Docker] Cache is now cleared if migrations are applied
* Update German translations.
Fixed
~~~~~

* Celery progress could be inaccurate if recording progress during a transaction


`2.7.1`_ - 2022-01-28
---------------------
Changed
~~~~~~~

* PWA icons can now be marked maskable
* [OAuth] Expired tokens are now cleared in a periodic task
* PDF file jobs are now automatically expired
* Data checks are now scheduled every 15 minutes by default
Fixed
~~~~~

* PDF generation failed with S3 storage due to incompatibility with boto3
* PWA theme colour defaulted to red
* Form for editing group type displayed irrelevant fields
* Permission groups could get outdated if re-assigning a user account to a different person
* User preferences didn't work correctly sometimes due to race conditions.
`2.7`_ - 2022-01-24
-------------------
Added
~~~~~

* Periodic tasks can now have a default schedule, which is automatically created

Tom Teichler's avatar
Tom Teichler committed
Fixed
~~~~~

* Signup was forbidden even if it was enabled in settings
* Phone numbers were not properly linked and suboptimally formatted on person page
* Favicon upload failed with S3 storage.
* Some combinations of allowed self-edit fields on persons could cause errors
* Some preferences were required when they shouldn't, and vice versa.
* IO errors on accessing backup directory in health check are now properly reported
* Date picker was not properly initialized if field was already filled.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* The menu item for entering an invitation code received offline was missing
Tom Teichler's avatar
Tom Teichler committed
* CleaveJS was not loaded properly when using an external CDN
Tom Teichler's avatar
Tom Teichler committed

Tom Teichler's avatar
Tom Teichler committed
Changed
-------

* Allow non-superusers with permission to invite persons
Julian's avatar
Julian committed

`2.6`_ - 2022-01-10
-------------------
* Add option to open entry in new tab for sidebar navigation menu.
* Add preference for configuring the default phone number country code.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Persons and groups now have two image fields: official photo and public avatar
Benedict Suska's avatar
Benedict Suska committed
* Admins recieve an mail for celery tasks with status "FAILURE"
* OpenID Connect RSA keys can now be passed as string in config files
* Views filtering for person names now also search the username of a linked user
Jonathan Weth's avatar
Jonathan Weth committed
* OAuth2 applications now take an icon which is shown in the authorization progress.
* Add support for hiding the main side nav in ``base.html``.
Jonathan Weth's avatar
Jonathan Weth committed
* Provide base template and function for sending emails with a template.
* Changing the favicon did not result in all icons being replaced in some cases
* Superusers with a dummy person were able to access the dashboard edit page.
* GroupManager.get_queryset() returned an incomplete QuerySet
* OAuth was broken by a non-semver-adhering django-oauth-toolkit update
* Too long texts in chips didn't result in a larger chip.
* The ``Person`` model had an ``is_active`` flag that was used in unclear ways; it is now removed
* The data check results list view didn't work if a related object had been deleted in the meanwhile.
Tom Teichler's avatar
Tom Teichler committed
* Socialaccount login template was not overriden
* Atomic transactions now cause only one Haystack update task to run
Julian's avatar
Julian committed
* Too long headlines didn't break in another line.
* Configuration files are now deep merged by default
* Improvements for shell_plus module loading
  * core.Group model now takes precedence over auth.Group
  * Name collisions are resolved by prefixing with the app label
  * Apps can extend SHELL_PLUS_APP_PREFIXES and SHELL_PLUS_DONT_LOAD
* [Docker] Base image now contains curl, grep, less, sed, and pspg
* Views raising a 404 error can now customise the message that is displayed on the error page
* OpenID Connect is enabled by default now, without RSA support
Jonathan Weth's avatar
Jonathan Weth committed
* Login and authorization pages for OAuth2/OpenID Connect now indicate that the user is in progress
  to authorize an external application.
* Tables can be scrolled horizontally.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Overhauled person detail page
Jonathan Weth's avatar
Jonathan Weth committed
* Use common base template for all emails.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
`2.5`_ – 2022-01-02
-------------------
Nik | Klampfradler's avatar
Nik | Klampfradler committed
Added
~~~~~

* Recursive helper methods for group hierarchies

Fixed
~~~~~

* Remove left-over reference to preferences in a form definition that caused
  form extensions in downstream apps to break
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Allow non-LDAP users to authenticate if LDAP is used with password handling
Jonathan Weth's avatar
Jonathan Weth committed
* Additional button on progress page for background tasks was shown even if the task failed.
Tom Teichler's avatar
Tom Teichler committed
* Register preference for available allowed oauth grants.
`2.4`_ – 2021-12-24
-------------------
Added
~~~~~

* Allow configuration of database options
* User invitations with invite codes and targeted invites for existing
  persons
Fixed
~~~~~

* Correctly update theme colours on change again
* Use correct favicon as default AlekSIS favicon
* Show all years in a 200 year range around the current year in date pickers
* Imprint is now called "Imprint" and not "Impress".
* Logo files weren't uploaded to public namespace.
* Limit LDAP network timeouts to not hang indefinitely on login if LDAP
  server is unreachable
Lloyd Meins's avatar
Lloyd Meins committed
Changed
~~~~~~~

* Modified the appearance of tables for mobile users to be more user friendly
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* [Dev] Remove lock file; locking dependencies is the distribution's
  responsibility
Removed
~~~~~~~

* Remove old generated AlekSIS icons
`2.3.1`_ – 2021-12-17
---------------------
Fixed
~~~~~

* Small files could fail to upload to S3 storage due to MemoryFileUploadHandler
* Corrected typos in previous changelog
`2.3`_ – 2021-12-15
-------------------
Added
~~~~~

* [OAuth] Allow apps to fill in their own claim data matching their scopes

Jonathan Weth's avatar
Jonathan Weth committed
Fixed
~~~~~

* View for assigning permissions didn't work with some global permissions.
Jonathan Weth's avatar
Jonathan Weth committed
* PDFs generated in background didn't contain logo or site title.
Jonathan Weth's avatar
Jonathan Weth committed
* Admins were redirected to their user preferences
  while they wanted to edit the preferences of another user.
Tom Teichler's avatar
Tom Teichler committed
* Some CharFields were using NULL values in database when field is empty
Tom Teichler's avatar
Tom Teichler committed
* Optional dependecy `sentry-sdk` was not optional
Jonathan Weth's avatar
Jonathan Weth committed

Changed
~~~~~~~

* Docker base image ships PostgreSQL 14 client binaries for maximum compatibility
* Docker base image contains Sentry client by default (disabled in config by default)
Tom Teichler's avatar
Tom Teichler committed
Removed
~~~~~~~

* Remove impersonation page. Use the impersonation button on the person
  detail view instead.

`2.2.1`_ – 2021-12-02
--------------------

Fixed
~~~~~

* [Docker] Stop initialisation if migrations fail
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* [OAuth] Register `groups` scope and fix claim
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* [OAuth] Fix OAuth claims for follow-up requests (e.g. UserInfo)
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* [OAuth] Fix grant types checking failing on wrong types under some circumstances
* [OAuth] Re-introduce missing algorithm field in application form
* Remove errornous backup folder check for S3
Jonathan Weth's avatar
Jonathan Weth committed
`2.2`_ - 2021-11-29
-------------------
Jonathan Weth's avatar
Jonathan Weth committed

Jonathan Weth's avatar
Jonathan Weth committed
Added
~~~~~

Tom Teichler's avatar
Tom Teichler committed
* Support config files in sub-directories
Jonathan Weth's avatar
Jonathan Weth committed
* Provide views for assigning/managing permissions in frontend
Jonathan Weth's avatar
Jonathan Weth committed
* Support (icon) tabs in the top navbar.

Jonathan Weth's avatar
Jonathan Weth committed
Changed
~~~~~~~

* Update German translations.

Jonathan Weth's avatar
Jonathan Weth committed
Fixed
~~~~~

Jonathan Weth's avatar
Jonathan Weth committed
* Use new MaterializeCSS fork because the old version is no longer maintained.
Jonathan Weth's avatar
Jonathan Weth committed
* Sender wasn't displayed for notifications on dashboard.
* Notifications and activities on dashboard weren't sorted from old to new.

`2.1.1`_ - 2021-11-14
---------------------
Jonathan Weth's avatar
Jonathan Weth committed
Added
~~~~~

* Provide ``SITE_PREFERENCES`` template variable for easier and request-independent access on all site preferences.

Jonathan Weth's avatar
Jonathan Weth committed
Fixed
~~~~~

Jonathan Weth's avatar
Jonathan Weth committed
* Make style.css and favicons cachable.
Jonathan Weth's avatar
Jonathan Weth committed
* Import model extensions from other apps before form extensions.
Jonathan Weth's avatar
Jonathan Weth committed
* Recreate backwards compatiblity for OAuth URLs by using ``oauth/`` again.
Jonathan Weth's avatar
Jonathan Weth committed
* Show correct logo and school title in print template if created in the background.
Jonathan Weth's avatar
Jonathan Weth committed

Jonathan Weth's avatar
Jonathan Weth committed
Removed
~~~~~~~

* Remove fallback code from optional Celery as it's now non-optional.

Jonathan Weth's avatar
Jonathan Weth committed
`2.1`_ - 2021-11-05
-------------------
Tom Teichler's avatar
Tom Teichler committed

Added
~~~~~

Jonathan Weth's avatar
Jonathan Weth committed
* Provide an ``ExtensiblePolymorphicModel`` to support the features of extensible models for polymorphic models and vice-versa.
* Implement optional Sentry integration for error and performance tracing.
* Option to limit allowed scopes per application, including mixin to enforce that limit on OAuth resource views
* Support trusted OAuth applications that leave out the authorisation screen.
Lukas Weichelt's avatar
Lukas Weichelt committed
* Add birthplace to Person model.
Tom Teichler's avatar
Tom Teichler committed

Jonathan Weth's avatar
Jonathan Weth committed
Changed
~~~~~~~
Jonathan Weth's avatar
Jonathan Weth committed
* Replace dev.sh helper script with tox environments.
* OAuth Grant Flows are now configured system-wide instead of per app.
Jonathan Weth's avatar
Jonathan Weth committed
* Refactor OAuth2 application management views.
Jonathan Weth's avatar
Jonathan Weth committed

Fixed
~~~~~

* Fix default admin contacts

Credits
~~~~~~~

* We welcome new contributor 🐧 Jonathan Krüger!
* We welcome new contributor 🐭 Lukas Weichelt!

Jonathan Weth's avatar
Jonathan Weth committed
`2.0`_ - 2021-10-29
-------------------

Jonathan Weth's avatar
Jonathan Weth committed
Changed
~~~~~~~

* Refactor views/forms for creating/editing persons.
Tom Teichler's avatar
Tom Teichler committed
Fixed
~~~~~

Jonathan Weth's avatar
Jonathan Weth committed
* Fix order of submit buttons in login form and restructure login template
  to make 2FA work correctly.
Pinguin's avatar
Pinguin committed
* Fix page title bug on the impersonate page.
Jonathan Weth's avatar
Jonathan Weth committed
* Users were able to edit the linked user if self-editing was activated.
* Users weren't able to edit the allowed fields although they were configured correctly.
Jonathan Weth's avatar
Jonathan Weth committed
* Provide `style.css` and icon files without any authentication to avoid caching issues.
Jonathan Weth's avatar
Jonathan Weth committed

Tom Teichler's avatar
Tom Teichler committed

Removed
~~~~~~~

Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Remove mass linking of persons to accounts, bevcause the view had performance issues,
  but was practically unused.
`2.0rc7`_ - 2021-10-18
----------------------
Jonathan Weth's avatar
Jonathan Weth committed

Fixed
~~~~~

* Configuration mechanisms for OpenID Connect were broken.
* Set a fixed version for django-sass-processor to avoid a bug with searching ``style.css`` in the wrong storage.
Julian's avatar
Julian committed
* Correct the z-index of the navbar to display the main title again on mobile devices.
Jonathan Weth's avatar
Jonathan Weth committed

Jonathan Weth's avatar
Jonathan Weth committed
Removed
~~~~~~~

* Leftovers from a functionality already dropped in the development process
  (custom authentication backends and alternative login views).

`2.0rc6`_ - 2021-10-11
----------------------
Tom Teichler's avatar
Tom Teichler committed

Added
~~~~~

Tom Teichler's avatar
Tom Teichler committed
* OpenID Connect scope and accompanying claim ``groups``
Tom Teichler's avatar
Tom Teichler committed
* Support config files in JSON format
* Allow apps to dynamically generate OAuth scopes

Changed
~~~~~~~

* Do not log or e-mail ALLOWED_HOSTS violations
* Update translations.
* Use initial superuser settings as default contact and from addresses
Tom Teichler's avatar
Tom Teichler committed

Tom Teichler's avatar
Tom Teichler committed
* Show link to imprint in footer
* Fix API for adding OAuth scopes in AppConfigs
Jonathan Weth's avatar
Jonathan Weth committed
* Deleting persons is possible again.
* Removed wrong changelog section
Jonathan Weth's avatar
Jonathan Weth committed
* Dropped data anonymization (django-hattori) support for now
* ``OAUTH2_SCOPES`` setting in apps is not supported anymore. Use ``get_all_scopes`` method
  on ``AppConfig`` class instead.
`2.0rc5`_ - 2021-08-25
----------------------
Tom Teichler's avatar
Tom Teichler committed

Tom Teichler's avatar
Tom Teichler committed

* The view for getting the progress of celery tasks didn't respect that there can be anonymous users.
Tom Teichler's avatar
Tom Teichler committed
* Updated django to latest 3.2.x
Tom Teichler's avatar
Tom Teichler committed

`2.0rc4`_ - 2021-08-01
----------------------
Tom Teichler's avatar
Tom Teichler committed

Added
~~~~~

* Allow to configure port for prometheus metrics endpoint.

Fixed
~~~~~

* Correctly deliver server errors to user
* Use text HTTP response for serviceworker.js insteas of binary stream
* Use Django permission instead of rule to prevent performance issues.
`2.0rc3`_ - 2021-07-26
----------------------
Jonathan Weth's avatar
Jonathan Weth committed

Added
~~~~~

* Support PDF generation without available request object (started completely from background).
Julian's avatar
Julian committed
* Display a loading animation while fetching search results in the sidebar.

Fixed
~~~~~

* Make search suggestions selectable using the arrow keys.
Jonathan Weth's avatar
Jonathan Weth committed

Jonathan Weth's avatar
Jonathan Weth committed
Fixed
~~~~~

* Use correct HTML 5 elements for the search frontend and fix CSS accordingly.

`2.0rc2`_ - 2021-06-24
---------------------
Tom Teichler's avatar
Tom Teichler committed
Added
~~~~~

* Allow to install system and build dependencies in docker build


`2.0rc1`_ - 2021-06-23
----------------------

Added
~~~~~

* Add option to disable dashboard auto updating as a user and sitewide.

* Use semantically correct html elements for headings and alerts.

Tom Teichler's avatar
Tom Teichler committed
Fixed
~~~~~

* Add missing dependency python-gnupg
Tom Teichler's avatar
Tom Teichler committed
* Add missing AWS options to ignore invalid ssl certificates
`2.0b2`_ - 2021-06-15
--------------------
Added
~~~~~~~

* Add option to disable dashboard auto updating as a user and sitewide.

Changed
~~~~~~~

* Add verbose names for all preference sections.
* Add verbose names for all openid connect scopes and show them in grant
  view.
* Include public dashboard in navigation
* Update German translations.
Tom Teichler's avatar
Tom Teichler committed
Fixed
~~~~~

* Fix broken backup health check
* Make error recovery in about page work
Removed
~~~~~~~

* Drop all leftovers of DataTables.

`2.0b1`_ - 2021-06-01
---------------------
* Rename every occurance of "social account" by "third-party account".
* Use own templates and views for PWA meta and manifest.
* Use term "application" for all authorized OAuth2 applications/tokens.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Use importlib instead of pkg_resources (no functional changes)

Fixed
~~~~~

* Fix installation documentation (nginx, uWSGI).
* Use a set for data checks registry to prevent double entries.
* Progress page tried to redirect even if the URL is empty.
`2.0b0`_ - 2021-05-21
---------------------

Added
~~~~~

* Allow defining several search configs for LDAP users and groups
* Use setuptools entrypoints to find apps
* Add django-cachalot as query cache
Tom Teichler's avatar
Tom Teichler committed
* Add ``syncable_fields`` property to ``ExtensibleModel`` to discover fields
  sync backends can write to
Tom Teichler's avatar
Tom Teichler committed
* Add ``aleksis-admin`` script to wrap django-admin with pre-configured settings
* Auto-create persons for users if matching attributes are found
Tom Teichler's avatar
Tom Teichler committed
* Add ``django-allauth`` to allow authentication using OAuth, user registration,
  password changes and password reset
* Add OAuth2 and OpenID Connect provider support
Tom Teichler's avatar
Tom Teichler committed
* Add ``django-uwsgi`` to use uWSGI and Celery in development
* Add loading page for displaying Celery task progress
* Implement generic PDF generation using Chromium
* Support Amazon S3 storage for /media files
* Enable Django REST framework for apps to use at own discretion
* Add method to inject permissions to ExtensibleModels dynamically
* Add helper function which filters queryset by permission and user
* Add generic support for Select 2 with materialize theme
* Add simple message that is shown whenever a page is served from the PWA cache
* Add possibility to upload files using ckeditor
* Show guardians and children on person full page
* Manage object-level permissions in frontend
* Add a generic deletion confirmation view
* Serve Prometheus metrics from app
* Provide system health check endpoint and checks for some components
* Add impersonate button to person view
* Implement a data check system for sanity checks and guided resolution of inconsistencies
* Make the dashboard configurable for users and as default dashboard by admins
* Support dynamic badges in menu items
* Auto-delete old /media files when related model instance is deleted
* Add SortableJS
* Add a widget for links/buttons to other websites

Changed
~~~~~~~

* Make Redis non-optional (see documentation)
* Use Redis as caching and session store to allow horizontal scaling
* Enable PostgreSQL connection pooling
* Use uWSGI to serve /static under development
* Use a token-secured storage as default /media storage
* Rewrite Docker image to serve as generic base image for AlekSIS distributions
* Make Docker image run completely read-only
* Ensure Docker image is compatible with K8s
* Remove legacy file upload functoin; all code is required to use the storage API
* Default search index backend is now Whoosh with Redis storage
* Re-style search result page
* Move notifications to separate page with indicator in menu
Tom Teichler's avatar
Tom Teichler committed
* Move to ``BigAutoField`` for all AlekSIS apps
* Require Django 3.2 and Python 3.9
* Person and group lists can now be filtered
* Allow displaying the default widget to anonymous users

Fixed
~~~~~

* Correct behavious of celery-beat in development
* Fix precaching of offline fallback page
* Use correct styling for language selector
* Rewrite notification e-mail template for AlekSIS
* Global search now obeys permissions correctly
* Improve performance of favicon generation
* Dashboard widgets now handle exceptions gracefully
* Roboto font was not available for serving locally

Removed
~~~~~~~

* Dropped support for other search backends than Whoosh
* Drop django-middleware-global-request completely

---------------------
Added
~~~~~

* Frontend-ased announcement management.
* Auto-create Person on User creation.
* Select primary group by pattern if unset.
* Shortcut to personal information page.
* Support for defining group types.
* Add description to Person.
* age_at method and age property to Person.
* Synchronise AlekSIS groups with Django groups.
* Add celery worker, celery-beat worker and celery broker to docker-compose setup.
* Global search.
* License information page.
* Roles and permissions.
* User preferences.
* Additional fields for people per group.
* Support global permission flags by LDAP group.
* Persistent announcements.
* Custom menu entries (e.g. in footer).
* New logo for AlekSIS.
* Two factor authentication with Yubikey, OTP or SMS.
* Devs: Add ExtensibleModel to allow apps to add fields, properties.
* Devs: Support multiple recipient object for one announcement.

Changes
~~~~~~~

* Make short_name for group optional.
* Generalised live loading of widgets for dashboard.
* Devs: Add some CSS helper classes for colours.
* Devs: Mandate use of AlekSIS base model.
* Devs: Drop import_ref field(s); apps shold now define their own reference fields.

Fixed
~~~~~

* DateTimeField Announcement.valid_from received a naive datetime.
* Enable SASS processor in production.
* Fix too short fields.
* Load select2 locally.

`2.0a1`_ - 2020-02-01
---------------------

Added
~~~~~

* Migrate to MaterializeCSS.
* Dashboard.
* Notifications via SMS (Twilio), Email or on the dashboard.
* Admin interface.
* Turn into installable, progressive web app.
* Devs: Background Tasks with Celery.

Changed
~~~~~~~

* Customisable save_button template.
* Redesign error pages.

Fixed
~~~~~

* setup_data no longer forces database connection.

`1.0a4`_ - 2019-11-25
---------------------

Added
~~~~~
Nik | Klampfradler's avatar
Nik | Klampfradler committed

* Two-factor authentication with TOTP (Google Authenticator), Yubikey, SMS
  and phone call.
Nik | Klampfradler's avatar
Nik | Klampfradler committed
* Devs: CRUDMixin provides a crud_event relation that returns all CRUD
`1.0a2`_ - 2019-11-11
---------------------

* Devs: Add ExtensibleModel to allow injection of methods and properties into models.


`1.0a1`_ - 2019-09-17
---------------------
* Devs: Add API to get an audit trail for any school-related object.
* Devs: Provide template snippet to display an audit trail.
* Devs: Provide base template for views that allow browsing back/forth.
* Add management command and Cron job for full backups.
* Add system status overview page.
* Allow enabling and disabling maintenance mode from frontend.
* Allow editing the dates of the current school term.
* Add logo to school information.
* Allow editing school information.
* Ensure all actions are reverted if something fails (atomic requests).
* Only show active persons in group and persons views.
* Silence KeyError in get_dict template tag.
* Use bootstrap buttons everywhere.
.. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning: https://semver.org/spec/v2.0.0.html
.. _1.0a1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/1.0a1
.. _1.0a2: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/1.0a2
.. _1.0a4: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/1.0a4
.. _2.0a1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0a1
.. _2.0a2: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0a2
.. _2.0b0: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0b0
.. _2.0b1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0b1
.. _2.0b2: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0b2
.. _2.0rc1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc1
.. _2.0rc2: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc2
.. _2.0rc3: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc3
.. _2.0rc4: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc4
.. _2.0rc5: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc5
.. _2.0rc6: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc6
.. _2.0rc7: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0rc7
Jonathan Weth's avatar
Jonathan Weth committed
.. _2.0: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.0
Jonathan Weth's avatar
Jonathan Weth committed
.. _2.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.1
.. _2.1.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.1.1
Jonathan Weth's avatar
Jonathan Weth committed
.. _2.2: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.2
.. _2.2.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.2.1
.. _2.3: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.3
.. _2.3.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.3.1
.. _2.4: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.4
Nik | Klampfradler's avatar
Nik | Klampfradler committed
.. _2.5: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.5
.. _2.6: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.6
.. _2.7: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.7
.. _2.7.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.7.1
.. _2.7.2: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.7.2
.. _2.7.3: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.7.3
.. _2.7.4: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.7.4
.. _2.8: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.8
Tom Teichler's avatar
Tom Teichler committed
.. _2.8.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.8.1
Jonathan Weth's avatar
Jonathan Weth committed
.. _2.9: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.9
.. _2.10: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.10