Changelog

This section lists the biggest changes done on each release.

Release 2.4

  • add support Django 4

  • add support Python 3.10

Release 2.3

  • Removes code producing DeprecationError

  • add AUTO_CREATE_TRIGGERS and deprecate MANUAL_TRIGGERS

  • add support for Postgres 13

  • add ability to customise SQL to create triggers TRIGGERS_FACTORY

Release 2.2

  • drop suppot django<3.0

  • drop suppot Python<3.6

Release 2.1.1

  • fixes packaging

Release 2.1 ( not released on pypi)

  • drop support Python < 3.5

  • add support Django 2.2 / 3.0

  • drop support Django < 1.11

Release 2.0

  • drop official support to Django < 1.10

  • add support Django 2.1

  • removed deprecated api concurrency_check

  • BACKWARD INCOMPATIBLE: version field is now mandatory in any save operation. Use VERSION_FIELD_REQUIRED=False to have the old behaviour.

  • disable_concurrency now has start(), finish() to be called as command

Release 1.4 (13 Sep 2016)

  • closes issue #81. Add docs and check.

  • fixes issue #80. (thanks Naddiseo for the useful support)

  • Django 1.11 compatibility

  • some minor support for Django 2.0

Release 1.3.2 (10 Sep 2016)

  • fixes bug in ConditionalVersionField that produced ‘maximum recursion error’ when a model had a ManyToManyField with a field to same model (self-relation)

Release 1.3.1 (15 Jul 2016)

  • just packaging

Release 1.3 (15 Jul 2016)

  • drop support for Python < 3.3

  • add support Django>=1.10

  • change license

  • fixes issue #36. (thanks claytondaley)

  • new IGNORE_DEFAULT to ignore default version number

Release 1.2 (05 Apr 2016)

  • better support for django 1.9 ( TemplateDoesNotExist is now in django.template.exceptions

  • improved eror message in ConcurrencyListEditableMixin issue #63 issue #64

  • fixes issue #61. Error in ConditionalVersionField (thanks ticosax)

  • fixes skipif test in pypy

Release 1.1 (13 Feb 2016)

  • drop support for django<1.7

  • add support for pypy

  • new concurrency.fields.ConditionalVersionField

  • new decorator concurrency.api.concurrency_disable_increment

  • concurrency.api.disable_concurrency is now a noop if applied to a model not under concurrency management

Release 1.0.1

  • fixes issue #56 “Can’t upgrade django-concurrency to 1.0” (thanks oppianmatt).

Release 1.0

  • BACKWARD INCOMPATIBLE:: dropped support for Django prior 1.6

  • code clean

  • fixes issue #54 “Incorrect default for IntegerVersionField” (thanks vmspike).

  • fixes issue #53. updates Documentation

  • disable_concurrency() can now disable concurrency in any model

  • disable_concurrency() is now also a decorator

  • BACKWARD INCOMPATIBLE:: removed custom backends. TriggerVerionField can be used with standard Django

  • new way to create triggers (thanks Naddiseo)

  • new trigger code

  • new TriggerVersionField.check.

  • new TriggerVersionField.trigger_name.

  • new CONCURRECY_ENABLED to fully disable concurrency

  • new CONCURRECY_MANUAL_TRIGGERS to disable triggers auto creation fixes issue #41 (thanks Naddiseo)

Release 0.9

  • Django 1.8 compatibility

  • python 3.4 compatibility

  • BACKWARD INCOMPATIBLE disable_concurrency() works differently if used with classes or instances

  • better support for external Models (models that are part of plugged-in applications)

  • fixes issue with TriggerVersionField and Proxy Models (thanx Richard Eames)

Release 0.8.1

  • avoid to use concurrency when selecting all items (select_across)

Release 0.8

  • Django 1.7 compatibility

  • fixes typo in delete_selected_confirmation.html template

  • python 3.2/3.3 compatibility

Release 0.7.1

  • backward compatibility updates. Do not check for concurrency if 0 is passed as version value

    (ie. no value provided by the form)

Release 0.7

  • new concurrency.fields.TriggerVersionField

  • start using pytest

  • moved tests outside main package

  • new protocol see:ref:protocols

  • it’s now possible disable concurrency in Models that extends concurrency enabled models

  • fixed issue #23 (thanks matklad)

  • new USE_SELECT_FOR_UPDATE

Release 0.6.0

Release 0.5.0

Release 0.4.0

  • start deprecation of concurrency.core.VersionChangedError, concurrency.core.RecordModifiedError,

    concurrency.core.InconsistencyError,moved in concurrency.exceptions

  • start deprecation of concurrency.core.apply_concurrency_check, concurrency.core.concurrency_check moved in concurrency.api

  • added CONCURRECY_SANITY_CHECK settings entry

  • signing of version number to avoid tampering (ConcurrentForm)

  • added ConcurrencyTestMixin to help test on concurrency managed models

  • changed way to add concurrency to existing models (apply_concurrency_check())

  • fixed issue #4 (thanks FrankBie)

  • removed RandomVersionField

  • new concurrency_check

  • added ConcurrentForm to mitigate some concurrency conflict

  • select_for_update now executed with nowait=True

  • removed some internal methods, to avoid unlikely but possible name clashes

Release 0.3.2