From d13b4c0d36f0540b8d59c7e34f7cac681b85c008 Mon Sep 17 00:00:00 2001 From: Joshua Blum Date: Thu, 26 Oct 2023 22:38:32 -0400 Subject: [PATCH] prep for 2.13 release (#442) * prep for 2.13 release * Add Django::4.2 to setup.py --- CHANGELOG | 681 +++++++++++++++++++-------------------- docs/conf.py | 4 +- registration/__init__.py | 2 +- registration/models.py | 2 +- setup.py | 1 + 5 files changed, 333 insertions(+), 357 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 818d14b..dbba92a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,559 +2,534 @@ django-registration-redux changelog =================================== -## Version 2.13, TBD +## Version 2.14, TBD + +## Version 2.13, 26 October, 2023 + +- Feature: Add Bahasa Indonesia translations + `#434 _` +- Bugfix: Update German translations + `#438 _` +- Feature: Test against Django 4.2 + `#439 _` +- Bugfixes: + `#436 _` + `#437 _` + `#440 _` + `#441 _` ## Version 2.12, 5 February, 2023 -* BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Python 3.6 -* Bugfix: Show registration email on registation complete page -`#427 _` -* Bugfix: Update French compiled messages -`#429 _` -* Feature: Test against Django 4.1 and Python 3.11 -`#432 _` -* Bugfix: Add default_app_config (for Django 3.1 and prior) -`#430 _` +- BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Python 3.6 +- Bugfix: Show registration email on registration complete page + `#427 _` +- Bugfix: Update French compiled messages + `#429 _` +- Feature: Test against Django 4.1 and Python 3.11 + `#432 _` +- Bugfix: Add default*app_config (for Django 3.1 and prior) + `#430 *` ## Version 2.11, 21 June, 2022 -* Bugfix: Update French translations. -`#424 _` +- Bugfix: Update French translations. + `#424 _` ## Version 2.10, 8 March, 2022 -* BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django < 3.1 and Python -3.5 -* Bugfix: Update Polish translations. -`#417 _` -`#418 _` -* Bugfix: Set default_auto_field on RegistrationProfile -`#414 _` -* Feature: Django 3.2 support. -`#412 _` -* Feature: Django 4.0 support. -`#419 _` - -Version 2.9, 1 January, 2021 ----------------- -* BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django 1.11 and Python -2.7. -* Feature: Django 3.1 support. -`#398 _` -`#399 _` -`#400 _` -`#401 _` - -Version 2.8, 7 May, 2020 ----------------- -* Feature: Greek translations - `#381 +- BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django < 3.1 and Python + 3.5 +- Bugfix: Update Polish translations. + `#417 _` + `#418 _` +- Bugfix: Set default*auto_field on RegistrationProfile + `#414 *` +- Feature: Django 3.2 support. + `#412 _` +- Feature: Django 4.0 support. + `#419 _` + +## Version 2.9, 1 January, 2021 + +- BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django 1.11 and Python + 2.7. +- Feature: Django 3.1 support. + `#398 _` + `#399 _` + `#400 _` + `#401 _` + +## Version 2.8, 7 May, 2020 + +- Feature: Greek translations - `#381 _` -Version 2.7, 4 January, 2020 ----------------- -* Feature: Django 3.0 support - `#373 +## Version 2.7, 4 January, 2020 + +- Feature: Django 3.0 support - `#373 _` -* Feature: Use SHA256 instead of SHA1 for `activation_key` - `#362 +- Feature: Use SHA256 instead of SHA1 for `activation_key` - `#362 _` -* Bugfix: Changed path reference from 'login' to 'auth_login'. - -`#335 _` - -Version 2.6, 10 April, 2019 ----------------- -* Bugfix: Pass `user` instance instead of `user.get_username()` to template -context. - -`#350 _` -* Feature: Add testing for Django 2.2 and Python 3.7 (no code changes -required). - `#352 +- Bugfix: Changed path reference from 'login' to 'auth*login'. - + `#335 *` + +## Version 2.6, 10 April, 2019 + +- Bugfix: Pass `user` instance instead of `user.get_username()` to template + context. - + `#350 _` +- Feature: Add testing for Django 2.2 and Python 3.7 (no code changes + required). - `#352 _` -* Bugfix: Send emails on commit `#355 +- Bugfix: Send emails on commit `#355 _` -Version 2.5, 27 October, 2018 ----------------- -* Feature: Add support for Django 2.1. - -`#337 _` -* Bugfix: Don't delete if user.is_active=True in cleanupregistration. - -`#342 _` - -Version 2.4, 11 April, 2018 ----------------- -* Bugfix: Updates Spanish translation messages. - -`#333 _` - -Version 2.3, 10 April, 2018 ----------------- -* Bugfix: Updates Spanish translation messages. - -`#330 _` - -Version 2.2, 08 February, 2018 ----------------- -* Bugfix: Updates Russian translation messages. - -`#321 _` - -Version 2.1, 17 December, 2018 ----------------- -* Bugfix: Fix formatting issues in documentation. -`#319 _` -* Bugfix: Use ``get_username()`` instead of directly accessing the username to -support subclasses of ``AbstractBaseUser`` -`#318 _` - -Version 2.0, 05 December, 2017 ----------------- -* BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django < 1.11. -* BACKWARDS-INCOMPATIBLE CHANGE: Remove `registration/urls.py` in favor of -`registration/backends/default/urls.py` -* Feature: Add compatibility for Django 2.0. - -Version 1.9, 16 November, 2017 ----------------- -* Bugfix: Fix ``SupervisedRegistrationProfile`` so expiration depends on -profiles that have completed the entire process or have exceeded the -``ACCOUNT_ACTIVATION_DAYS`` - -`#310 _` -* Bugfix: Prevent resending an activation email if multiple -``RegistrationProfile`` objects exist for the given email address. - -`#311 _` -* Bugfix: Add logging to ``RegistrationProfile.delete_expired_users``, use -``profile.activated`` instead of ``user.is_active``. - -`#308 _` -* BACKWARDS-INCOMPATIBLE CHANGE: Change of return signature of -``RegistrationProfileManager.activate_user``. A tuple containing the User -instance and a boolean of whether or not said user was activated is now -returned. - -`#309 `_. -* Bugfix: Updates `pt_BR` translation messages. - -`#305 _` -* Bugfix: Update all translation strings with `django-admin makemessages --all`. - -`#304 _` -* Feature: Configure from email address from ``Site`` object. - -`#294 _` - -Version 1.8, 03 October, 2017 ----------------- -* Bugfix: Add `outlook.com` to the list of free email providers. - -`#287 _` -* Documentation: Add possible settings for activation emails. - -`#283 _` -* Feature: Added `REGISTRATION_ADMINS` setting to support different admins -(than those in `ADMINS`) in charge of registration. Falls back to `ADMINS` in -case this is not set. - -`#279 _` -* Documentation: Added documentation regarding admin approval registration. - -`#279 _` -* Redirect logged in users away from the registration page if authenticated. - -`#262 _` -* Document how to send password reset email with HTML content. - -`#276 _` - -Version 1.7, 18 July, 2017 ----------------- -* Fix security issue of leaking password reset token through the Referer -header. - `#268 _` -* Fix migration issue when using multiple databases - `#264 _` -* Improve German translation - `#259 _` -* Fix bug in templates if password reset is unsuccessful - `#269 +## Version 2.5, 27 October, 2018 + +- Feature: Add support for Django 2.1. - + `#337 _` +- Bugfix: Don't delete if user.is*active=True in cleanupregistration. - + `#342 *` + +## Version 2.4, 11 April, 2018 + +- Bugfix: Updates Spanish translation messages. - + `#333 _` + +## Version 2.3, 10 April, 2018 + +- Bugfix: Updates Spanish translation messages. - + `#330 _` + +## Version 2.2, 08 February, 2018 + +- Bugfix: Updates Russian translation messages. - + `#321 _` + +## Version 2.1, 17 December, 2018 + +- Bugfix: Fix formatting issues in documentation. + `#319 _` +- Bugfix: Use `get_username()` instead of directly accessing the username to + support subclasses of `AbstractBaseUser` + `#318 _` + +## Version 2.0, 05 December, 2017 + +- BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django < 1.11. +- BACKWARDS-INCOMPATIBLE CHANGE: Remove `registration/urls.py` in favor of + `registration/backends/default/urls.py` +- Feature: Add compatibility for Django 2.0. + +## Version 1.9, 16 November, 2017 + +- Bugfix: Fix `SupervisedRegistrationProfile` so expiration depends on + profiles that have completed the entire process or have exceeded the + `ACCOUNT_ACTIVATION_DAYS` - + `#310 _` +- Bugfix: Prevent resending an activation email if multiple + `RegistrationProfile` objects exist for the given email address. - + `#311 _` +- Bugfix: Add logging to `RegistrationProfile.delete_expired_users`, use + `profile.activated` instead of `user.is_active`. - + `#308 _` +- BACKWARDS-INCOMPATIBLE CHANGE: Change of return signature of + `RegistrationProfileManager.activate_user`. A tuple containing the User + instance and a boolean of whether or not said user was activated is now + returned. - + `#309 `\_. +- Bugfix: Updates `pt_BR` translation messages. - + `#305 _` +- Bugfix: Update all translation strings with `django-admin makemessages --all`. - + `#304 _` +- Feature: Configure from email address from `Site` object. - + `#294 _` + +## Version 1.8, 03 October, 2017 + +- Bugfix: Add `outlook.com` to the list of free email providers. - + `#287 _` +- Documentation: Add possible settings for activation emails. - + `#283 _` +- Feature: Added `REGISTRATION_ADMINS` setting to support different admins + (than those in `ADMINS`) in charge of registration. Falls back to `ADMINS` in + case this is not set. - + `#279 _` +- Documentation: Added documentation regarding admin approval registration. - + `#279 _` +- Redirect logged in users away from the registration page if authenticated. - + `#262 _` +- Document how to send password reset email with HTML content. - + `#276 _` + +## Version 1.7, 18 July, 2017 + +- Fix security issue of leaking password reset token through the Referer + header. - `#268 _` +- Fix migration issue when using multiple databases - `#264 _` +- Improve German translation - `#259 _` +- Fix bug in templates if password reset is unsuccessful - `#269 _` -Version 1.6, 25 April, 2017 ----------------- - -* Feature: Make search for email case insensitive when resending activation -email. - `#250 `_. -* Feature: Add ``RegistrationFormUsernameLowercase`` to force all usernames to -lowercase. - `#251 `_. - -Version 1.5, 08 April, 2017 ----------------- - -* BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django 1.7. -* BACKWARDS-INCOMPATIBLE CHANGE: Change signature of -``RegistrationProfileManager.activate_user``. -``site`` is now a required positional argument. - `#244 `_. -* Feature: Added workflow to resend activation email. See - `#161 `_. -* Enhancement: Separate logic between account creation and activation. - See: `#171 `_. -* Bugfix: Add page title to `activate.html` -* Feature: Added a 3-step registration flow requiring manual admin approval. - See: `#184 `_. -* Enhancement: Using a more cryptographically secure method for generating -activation keys. - See: `#213 `_. -* Bugfix: Add redirection setting for simple backend after successful -registration. - See: `#239 `_. -* Bugfix: Use dict instead of `RequestContext` when sending activation email. -- - See: `#194 `_. - -Version 1.4, 21 February, 2016 ------------------------------- - -* BACKWARDS-INCOMPATIBLE CHANGE: Remove unnecessary `_RequestPassingFormView`. - See `#56 `_. - -* Compatibility: Added support for Django 1.10 - -* Bugfix: Pass request object into `resend_activation_mail` so the email +## Version 1.6, 25 April, 2017 + +- Feature: Make search for email case insensitive when resending activation + email. + `#250 `\_. +- Feature: Add `RegistrationFormUsernameLowercase` to force all usernames to + lowercase. + `#251 `\_. + +## Version 1.5, 08 April, 2017 + +- BACKWARDS-INCOMPATIBLE CHANGE: Remove support for Django 1.7. +- BACKWARDS-INCOMPATIBLE CHANGE: Change signature of + `RegistrationProfileManager.activate_user`. + `site` is now a required positional argument. + `#244 `\_. +- Feature: Added workflow to resend activation email. See + `#161 `\_. +- Enhancement: Separate logic between account creation and activation. + See: `#171 `\_. +- Bugfix: Add page title to `activate.html` +- Feature: Added a 3-step registration flow requiring manual admin approval. + See: `#184 `\_. +- Enhancement: Using a more cryptographically secure method for generating + activation keys. + See: `#213 `\_. +- Bugfix: Add redirection setting for simple backend after successful + registration. + See: `#239 `\_. +- Bugfix: Use dict instead of `RequestContext` when sending activation email. + +* See: `#194 `\_. + +## Version 1.4, 21 February, 2016 + +- BACKWARDS-INCOMPATIBLE CHANGE: Remove unnecessary `_RequestPassingFormView`. + See `#56 `\_. + +- Compatibility: Added support for Django 1.10 + +- Bugfix: Pass request object into `resend_activation_mail` so the email template can render the site URL with the correct schema (HTTP, HTTPS). -* Bugfix: Ensure `register` method has consistent arguments. - See `#153 `_. +- Bugfix: Ensure `register` method has consistent arguments. + See `#153 `\_. -* Enhancement: Add invoke tasks, requirements.txt file, and make wrapper to +- Enhancement: Add invoke tasks, requirements.txt file, and make wrapper to help developers get setup. - See `#154 `_. + See `#154 `\_. -Version 1.3, 12 January, 2016 ------------------------------ +## Version 1.3, 12 January, 2016 -* Add support for Django 1.9. django-registration supports Django 1.7 and newer. +- Add support for Django 1.9. django-registration supports Django 1.7 and newer. -* Feature: Added `resend_activation_mail` method to `RegistrationManager`. +- Feature: Added `resend_activation_mail` method to `RegistrationManager`. -* Feature: Added support for additional registration forms; +- Feature: Added support for additional registration forms; `RegistrationFormTOSAndUniqueEmail` and `RegistrationFormTOSAndNoFreeEmail`. - See `#113 `_. + See `#113 `\_. -* Bugfix: Properly extend the base registration template. +- Bugfix: Properly extend the base registration template. -* Enhancement: Re-enable Python 3.3 support. +- Enhancement: Re-enable Python 3.3 support. -* Enhancement: Distinguish between account activation failure and attempted - reactivation. See `#72 `_. +- Enhancement: Distinguish between account activation failure and attempted + reactivation. See `#72 `\_. -* Bugfix: Install an unzipped package in order to support running migrations. - See `#104 `_. +- Bugfix: Install an unzipped package in order to support running migrations. + See `#104 `\_. -* Feature: Added Thai, Hungarian, and Russian localizations. +- Feature: Added Thai, Hungarian, and Russian localizations. -* Feature: Added support for specifying template paths for activation email. +- Feature: Added support for specifying template paths for activation email. +## Version 1.2, 11 May, 2015 -Version 1.2, 11 May, 2015 -------------------------- - -* BACKWARDS-INCOMPATIBLE CHANGE: When overriding the +- BACKWARDS-INCOMPATIBLE CHANGE: When overriding the `registration/activation_email.txt` template, you must also now override the `registration/activation_email.html` template or set the setting (`REGISTRATION_EMAIL_HTML`) to `False`. -* BACKWARDS-INCOMPATIBLE CHANGE: An initial migration for Django > 1.7 has been +- BACKWARDS-INCOMPATIBLE CHANGE: An initial migration for Django > 1.7 has been provided. South users will need to configure a null migration with (`SOUTH_MIGRATION_MODULES`). -* BACKWARDS-INCOMPATIBLE CHANGE: A `base.html` template is now assumed to +- BACKWARDS-INCOMPATIBLE CHANGE: A `base.html` template is now assumed to exist. -* Feature: Added support for disabling HTML emails using the setting option +- Feature: Added support for disabling HTML emails using the setting option `REGISTRATION_EMAIL_HTML`. -* Feature: Added settings' options that allows to exlude the default auth urls +- Feature: Added settings' options that allows to exlude the default auth urls (`INCLUDE_AUTH_URLS`) and register url (`INCLUDE_REGISTER_URL`). -* Feature: Added support to dynamically import any chosen registration form +- Feature: Added support to dynamically import any chosen registration form using the settings option `REGISTRATION_FORM`. -* Enhancement: Make `RegistrationForm` a subclass of Django's +- Enhancement: Make `RegistrationForm` a subclass of Django's `UserCreationForm` -* Enhancement: Use registration form `save` method to create user instance, +- Enhancement: Use registration form `save` method to create user instance, whenever form is a subclass of Django's `ModelForm`. - - -Version 1.1, 19 September, 2014 -------------------------------- +## Version 1.1, 19 September, 2014 This represents the first release of `django-registration-redux`. It is based off the defunct v1.0 `django-registration` abandoned by James Bennett. -* Compatibility: Added support for Python 3.x. +- Compatibility: Added support for Python 3.x. -* Compatibility: Added support for Django 1.6, 1.7. +- Compatibility: Added support for Django 1.6, 1.7. -* Feature: Added support for mime/multipart HTML / Text registration +- Feature: Added support for mime/multipart HTML / Text registration emails. -* Feature: Added `REGISTRATION_EMAIL_SUBJECT_PREFIX` config. +- Feature: Added `REGISTRATION_EMAIL_SUBJECT_PREFIX` config. -* Feature: Added support for `REGISTRATION_AUTO_LOGIN` config. +- Feature: Added support for `REGISTRATION_AUTO_LOGIN` config. -* Feature: Added support for `SEND_ACTIVATION_EMAIL` config. +- Feature: Added support for `SEND_ACTIVATION_EMAIL` config. -* Bugfix: Signal "user_activated" was being sent twice. +- Bugfix: Signal "user_activated" was being sent twice. -* Bugfix: Fixed broken tests. +- Bugfix: Fixed broken tests. The change log below is from the versions maintained by James Bennett. - -Version 1.0, 17 June 2013 -------------------------- +## Version 1.0, 17 June 2013 (Taken from release-notes.rst in this release) -* The 1.0 release of django-registration represents a complete +- The 1.0 release of django-registration represents a complete rewrite of the previous codebase. For information on upgrading, consult :ref:`the upgrade guide `. -* The largest overall change is that in place of the monolithic backend +- The largest overall change is that in place of the monolithic backend classes and function-based views found in django-registration 0.8, in 1.0 all views are class-based. A "backend" now consists of, typically, one or two subclasses of :ref:`the built-in base views - `. +`. -* Implementing these as class-based views allows for far simpler +- Implementing these as class-based views allows for far simpler configuration and customization, without the overhead involved in supporting large numbers of optional keyword arguments to function-based views, or the need to provide a separate class-based infrastructure for implementing the logic of registration. -* Notably, this implementation is also completely backwards-compatible +- Notably, this implementation is also completely backwards-compatible for users of django-registration 0.8 who simply used the recommended default URLConf for one of the supplied backends; those URLConfs exist in the same locations, and have been rewritten to point to the appropriate class-based views with the appropriate options. +## Version 0.8, 24 March 2012: -Version 0.8, 24 March 2012: ---------------------------- - -* Backend-based rewrite. See docs/upgrade.rst for details. - -* Compatibility through Django 1.4. +- Backend-based rewrite. See docs/upgrade.rst for details. +- Compatibility through Django 1.4. -Version 0.7, 6 November 2008: ------------------------------ +## Version 0.7, 6 November 2008: -* Project hosting moved from Google Code to Bitbucket, and from a +- Project hosting moved from Google Code to Bitbucket, and from a Subversion repository to Mercurial. -* Added test suite. +- Added test suite. -* Full Django 1.0 compatibility. +- Full Django 1.0 compatibility. -* Registration and activation views now accept an ``extra_context`` +- Registration and activation views now accept an `extra_context` argument, identical to the way that argument works in Django's generic views. -* Added a custom management command for cleaning up expired - registrations; you can now run ``manage.py cleanupregistration`` to +- Added a custom management command for cleaning up expired + registrations; you can now run `manage.py cleanupregistration` to handle this. -* BACKWARDS-INCOMPATIBLE CHANGE: The "username" field in - ``RegistrationForm`` is now a ``RegexField``. +- BACKWARDS-INCOMPATIBLE CHANGE: The "username" field in + `RegistrationForm` is now a `RegexField`. -* BACKWARDS-INCOMPATIBLE CHANGE: Removed the standalone script for +- BACKWARDS-INCOMPATIBLE CHANGE: Removed the standalone script for deleting expired user registrations; use the new management command instead. +## Version 0.6, 29 July 2008: -Version 0.6, 29 July 2008: --------------------------- +- Packaged from revision 166 in Subversion. -* Packaged from revision 166 in Subversion. - -* Fixed a multiple-objects exception in - ``RegistrationFormUniqueEmail`` when multiple users already have the +- Fixed a multiple-objects exception in + `RegistrationFormUniqueEmail` when multiple users already have the same email address. -* Changed the ``success_url`` of the ``register()`` view to use +- Changed the `success_url` of the `register()` view to use reverse URL resolution. -* Added an ``extra_context`` argument to the ``register`` and - ``activate`` views, mimicking its functionality in Django's generic +- Added an `extra_context` argument to the `register` and + `activate` views, mimicking its functionality in Django's generic views. -* BACKWARDS-INCOMPATIBLE CHANGE: Switched the admin declaration to be +- BACKWARDS-INCOMPATIBLE CHANGE: Switched the admin declaration to be compliant with the newforms-admin refactor; the admin declaration - now lives in ``registration/admin.py``. + now lives in `registration/admin.py`. -* BACKWARDS-INCOMPATIBLE CHANGE: Switched form imports from using - ``django.newforms`` to using ``django.forms``; the old style now +- BACKWARDS-INCOMPATIBLE CHANGE: Switched form imports from using + `django.newforms` to using `django.forms`; the old style now raises a deprecation warning on Django trunk and on Django 1.0 alpha. +## Version 0.5, 4 June 2008: -Version 0.5, 4 June 2008: -------------------------- - -* Packaged from revision 155 in Subversion. +- Packaged from revision 155 in Subversion. -* Added Serbian translation. +- Added Serbian translation. -* Added Italian translation. +- Added Italian translation. -* Username/email uniqueness checks are now case-insensitive. This is +- Username/email uniqueness checks are now case-insensitive. This is potentially backwards-incompatible if you relied on them being case-sensitive, but I don't know of any reason why you'd be doing that. -* Included forms now use lazy translations. +- Included forms now use lazy translations. -* The ``register`` view can now handle files submitted for use in form +- The `register` view can now handle files submitted for use in form processing. -* Reactivation of a manually-deactivated account is now prevented by +- Reactivation of a manually-deactivated account is now prevented by changing the activation key, on successful activation, to a dummy string which will fail on subsequent activation attempts. +## Version 0.4p2, 10 Feburary 2008: -Version 0.4p2, 10 Feburary 2008: --------------------------------- +- Added Brazilian Portuguese translation. -* Added Brazilian Portuguese translation. +- Added Japanese translation. -* Added Japanese translation. +- Added Hebrew translation. -* Added Hebrew translation. +- Minor documentation fixes. -* Minor documentation fixes. +## Version 0.4p1, 16 December 2007: +- Packaged from revision 129 in Subversion. -Version 0.4p1, 16 December 2007: --------------------------------- +- Added Polish translation. -* Packaged from revision 129 in Subversion. +## Version 0.4, 8 December 2007: -* Added Polish translation. +- Packaged from revision 122 in Subversion. +- Added Greek translation. -Version 0.4, 8 December 2007: ------------------------------ +- Added Russian translation. -* Packaged from revision 122 in Subversion. - -* Added Greek translation. - -* Added Russian translation. - -* Changed ``maxlength`` to ``max_length`` now that Django issues a +- Changed `maxlength` to `max_length` now that Django issues a deprecation warning for it. -* BACKWARDS-INCOMPATIBLE CHANGE: Changed the password validation to be - on ``clean()`` instead of ``clean_password2()``. This means that - errors from this must be accessed via ``non_field_errors()``. +- BACKWARDS-INCOMPATIBLE CHANGE: Changed the password validation to be + on `clean()` instead of `clean_password2()`. This means that + errors from this must be accessed via `non_field_errors()`. +## Version 0.3p5, 6 October 2007: -Version 0.3p5, 6 October 2007: ------------------------------- +- Packaged from revision 112 in Subversion. -* Packaged from revision 112 in Subversion. +- Added German translation. -* Added German translation. - -* Fixed a mismatch between the default ``RegistrationForm``'s maximum +- Fixed a mismatch between the default `RegistrationForm`'s maximum length on email addresses and the actual maximum length on Django's - ``User`` model. + `User` model. -* Fixed a situation where bad input for the ``password1`` field on - ``RegistrationForm`` could cause validation of ``password2`` to fail +- Fixed a situation where bad input for the `password1` field on + `RegistrationForm` could cause validation of `password2` to fail with an exception. +## Version 0.3p4, 4 October 2007: -Version 0.3p4, 4 October 2007: ------------------------------- - -* Packaged from revision 101 in Subversion. +- Packaged from revision 101 in Subversion. -* BACKWARDS-INCOMPATIBLE CHANGE: In response to larger numbers of +- BACKWARDS-INCOMPATIBLE CHANGE: In response to larger numbers of complaints from people trying to use the example templates as-is, the example templates have been removed. +## Version 0.3p2, 23 September 2007: -Version 0.3p2, 23 September 2007: ---------------------------------- +- Packaged from revision 100 in Subversion. -* Packaged from revision 100 in Subversion. - -* Fixed ``activate`` view to actually take the ``template_name`` +- Fixed `activate` view to actually take the `template_name` argument. +## Version 0.3p1, 22 September 2007: -Version 0.3p1, 22 September 2007: ---------------------------------- - -* Packaged from revision 99 in Subversion. - -* Fixed a typo in docs/overview.txt. +- Packaged from revision 99 in Subversion. -* Fixed a typo in bin/delete_expired_users.py. +- Fixed a typo in docs/overview.txt. -* Added French translation. +- Fixed a typo in bin/delete_expired_users.py. +- Added French translation. -Version 0.3, 19 September 2007: -------------------------------- +## Version 0.3, 19 September 2007: Packaged from revision 89 in Subversion; download at http://django-registration.googlecode.com/files/registration-0.3.tar.gz -* Changed ``register`` and ``activate`` views to accept - ``template_name`` keyword argument for selecting a custom template. +- Changed `register` and `activate` views to accept + `template_name` keyword argument for selecting a custom template. -* Changed ``register`` view to accept ``form_class`` keyword +- Changed `register` view to accept `form_class` keyword argument specifying the form to use. -* BACKWARDS-INCOMPATIBLE CHANGE: Changed - ``RegistrationManager.create_inactive_user`` to use a template for +- BACKWARDS-INCOMPATIBLE CHANGE: Changed + `RegistrationManager.create_inactive_user` to use a template for the subject of the activation email. -* BACKWARDS-INCOMPATIBLE CHANGE: Removed the ``tos`` field from - ``RegistrationForm``; if you were relying on it, switch to using - ``RegistrationFormTermsOfService`` instead. +- BACKWARDS-INCOMPATIBLE CHANGE: Removed the `tos` field from + `RegistrationForm`; if you were relying on it, switch to using + `RegistrationFormTermsOfService` instead. -* BACKWARDS-INCOMPATIBLE CHANGE: The activation email template now - receives the current ``Site`` object as the context variable - ``site``, and the ``current_site`` variable, which only held the +- BACKWARDS-INCOMPATIBLE CHANGE: The activation email template now + receives the current `Site` object as the context variable + `site`, and the `current_site` variable, which only held the domain, is no longer available. -* Added script ``bin/delete_expired_users.py`` with instructions on +- Added script `bin/delete_expired_users.py` with instructions on how to use it as a cron job to clean up expired/inactive accounts. -* Marked strings for translation and added ``locale`` directory so +- Marked strings for translation and added `locale` directory so that translations can be added. -* Updated to deal with merge of Django's Unicode branch into trunk; +- Updated to deal with merge of Django's Unicode branch into trunk; now using Unicode-aware functions everywhere. - -Version 0.2, 29 May 2007: -------------------------- +## Version 0.2, 29 May 2007: Packaged from revision 76 in Subversion; download at http://django-registration.googlecode.com/files/registration-0.2.tar.gz -* Added ability to specify a callback in - ``RegistrationManager.create_inactive_user`` or in the ``register`` +- Added ability to specify a callback in + `RegistrationManager.create_inactive_user` or in the `register` view to enable creation of site-specific user profile. -* Separated out the logic of creating the profile into a new method on - ``RegistrationManager``: ``create_profile``. +- Separated out the logic of creating the profile into a new method on + `RegistrationManager`: `create_profile`. -* Added URLConf support for various useful views in - ``django.contrib.auth``. +- Added URLConf support for various useful views in + `django.contrib.auth`. -* BACKWARDS-INCOMPATIBLE CHANGE: removed the ``key_generated`` field - from ``RegistrationProfile``; activation key expiration is now - calculated based on the ``date_joined`` field in the ``User`` model. - Drop the ``key_generated`` column from your database when upgrading +- BACKWARDS-INCOMPATIBLE CHANGE: removed the `key_generated` field + from `RegistrationProfile`; activation key expiration is now + calculated based on the `date_joined` field in the `User` model. + Drop the `key_generated` column from your database when upgrading from 0.1. - -Version 0.1, 23 May 2007: -------------------------- +## Version 0.1, 23 May 2007: Packaged from revision 56 in Subversion; download at http://django-registration.googlecode.com/files/registration-0.1.tar.gz -* First packaged version using distutils. +- First packaged version using distutils. -* Added docs/ directory and overview. +- Added docs/ directory and overview. diff --git a/docs/conf.py b/docs/conf.py index 74e4f01..4b28240 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -44,9 +44,9 @@ # built documents. # # The short X.Y version. -version = '2.12' +version = '2.13' # The full version, including alpha/beta/rc tags. -release = '2.12' +release = '2.13' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/registration/__init__.py b/registration/__init__.py index b52b372..3f823ee 100644 --- a/registration/__init__.py +++ b/registration/__init__.py @@ -1,4 +1,4 @@ -VERSION = (2, 12, 0, 'final', 0) +VERSION = (2, 13, 0, 'final', 0) # for Django-3.1 and prior default_app_config = 'registration.apps.RegistrationConfig' diff --git a/registration/models.py b/registration/models.py index b732c72..4f96558 100644 --- a/registration/models.py +++ b/registration/models.py @@ -280,8 +280,8 @@ def delete_expired_users(self): if profile.activation_key_expired(): user = profile.user logger.warning('Deleting expired Registration profile {} and user {}.'.format(profile, user)) - profile.delete() try: + profile.delete() user.delete() except (models.ProtectedError, models.RestrictedError) as e: logger.error('Deletion of user {} is prevented: {}'.format(user, e)) diff --git a/setup.py b/setup.py index fb22bcb..a2742b5 100644 --- a/setup.py +++ b/setup.py @@ -42,6 +42,7 @@ def run_tests(self): 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', 'Framework :: Django :: 4.1', + 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent',