Changelog

This section lists the biggest changes done on each release.

Release 1.5

  • drop support Django <= 1.8
  • add support Django 2.0
  • removed deprecated api concurrency_check

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 (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