- Drop support for Django 4.0.
- Add support for Django 4.2.
- Fix unescaped string representation of
AL_Node
models in the Django admin. Thanks to goodguyandy for reporting the issue. - Optimise
MP_Node.get_descendants
to avoid database queries when called on a leaf node.
- Drop support for Django 3.1 and lower.
- Add support for Django 4.0 and 4.1.
- Drop support for Python 3.7 and lower.
- Add support for Python 3.10 and Python 3.11.
- Change the return value of
delete()
for all node classes to be consistent with Django, and return a tuple of the number of objects deleted and a dictionary with the number of deletions per object type. - Change the
delete()
methods for all node classes to accept arbitrary positional and keyword arguments which are passed to the parent method. - Set
alters_data
andqueryset_only
attributes on thedelete()
methods for all node classes to prevent them being used in an unwanted context (e.g., in Django templates). - Drop dependency on jQuery UI in the admin.
- Removed unnecessary default in MP's depth field.
- Add support for custom primary key fields with custom names.
- Add support for Python 3.9.
- Add support for MSSQL 2019.
- Add Code of conduct
- Removed outdated Sqlite workaround code
- Remove last remains of Python 2.7 code
- Use Pytest-django and fixtures for testing
- Implement a non-destructive path-fixing algorithm for
MP_Node.fix_tree
. - Ensure
post_save
is triggered after the parent node is updated inMP_AddChildHandler
. - Fix static URL generation to use
static
template tag instead of constructing the URL manually. - Declare support for Django 2.2, 3.0 and 3.1.
- Drop support for Django 2.1 and lower.
- Drop support for Python 2.7 and Python 3.5.
- Increase performance for
MoveNodeForm
when using large trees.
- Added check to avoid unnecessary database query for
MP_Node.get_ancestors()
if the node is a root node. - Drop support for Python-3.4.
- Play more nicely with other form classes, that implement
__init__(self, *args, **kwargs)
, e.g. django-parler'sTranslatableModelForm
, wherekwargs.get('instance')
isNone
when called from here. - Sorting on path on necessary queries, fixes some issues and stabilizes the whole MP section.
- Add German translation strings.
- Support for Django-2.0
- Bugfix issues #97: UnboundLocalError raised on treebeard admin
- Bugfix issues #90: admin change list view and jsi18n load for Django-1.11
- Support for Django-2.0
- Fixed MANIFEST.in for Debian packaging.
- Removed deprecated templatetag inclusion
- Added support for Python-3.6
- Added support for MS-SQL
- Add support for Django-1.10
- Drop support for Django-1.7
- Moved Repository from Bitbucket to GitHub
- Moved documentation to https://django-treebeard.readthedocs.io/
- Moved continuous integration to https://travis-ci.org/django-treebeard/django-treebeard
- Escape input in forms (Martin Koistinen / Divio)
- Clarification on model detail pages (Michael Huang)
- Added support for 3.5 and Django 1.7, 1.8 and 1.9
- Django 1.6 is no longer supported.
- Remove deprecated backports needed for now unsupported Django versions
- Fixed a bug with queryset deletion not handling inheritance correctly.
- Assorted documentation fixes
- Limited tests (and hence support) to Python 2.7+/3.4+ and Django 1.6+
- Removed usage of deprecated Django functions.
- Fixed documentation issues.
- Fixed issues in MoveNodeForm
- Added get_annotated_list_qs and max_depth for get_annotated_list
- Stable release.
- Support models that use multi-table inheritance (Matt Wescott)
- Tree methods called on proxy models should consistently return instances of that proxy model (Matt Wescott)
- Fixed unicode related issue in the template tags.
- Major documentation cleanup.
- More warnings on the use of managers.
- Faster MP's is_root() method.
- Dropped support for Python 2.5
This is a beta release.
- Added support for Django 1.5 and Python 3.X
- Updated docs: the library supports python 2.5+ and Django 1.4+. Dropped support for older versions
- Revamped admin interface for MP and NS trees, supporting drag&drop to reorder
nodes. Work on this patch was sponsored by the
Oregon Center for Applied Science
, inspired byFeinCMS
developed byJesús del Carpio
_ with tests fromFernando Gutierrez
_. Thanks ORCAS! - Updated setup.py to use distribute/setuptools instead of distutils
- Now using pytest for testing
- Small optimization to ns_tree.is_root
- Moved treebeard.tests to it's own directory (instead of tests.py)
- Added the runtests.py test runner
- Added tox support
- Fixed drag&drop bug in the admin
- Fixed a bug when moving MP_Nodes
- Using .pk instead of .id when accessing nodes.
- Removed the Benchmark (tbbench) and example (tbexample) apps.
- Fixed url parts join issues in the admin.
- Fixed: Now installing the static resources
- Fixed ManyToMany form field save handling
- In the admin, the node is now saved when moving so it can trigger handlers and/or signals.
- Improved translation files, including javascript.
- Renamed Node.get_database_engine() to Node.get_database_vendor(). As the name implies, it returns the database vendor instead of the engine used. Treebeard will get the value from Django, but you can subclass the method if needed.
- Added admin i18n. Included translations: es, ru
- Fixed a bug when trying to introspect the database engine used in Django 1.2+ while using new style db settings (DATABASES). Added Node.get_database_engine to deal with this.
- Added get_annotated_list
- Complete revamp of the documentation. It's now divided in sections for easier reading, and the package includes .rst files instead of the html build.
- Added raw id fields support in the admin
- Fixed setup.py to make it work in 2.4 again
- The correct ordering in NS/MP trees is now enforced in the queryset.
- Cleaned up code, removed some unnecessary statements.
- Tests refactoring, to make it easier to spot the model being tested.
- Fixed support of trees using proxied models. It was broken due to a bug in Django.
- Fixed a bug in add_child when adding nodes to a non-leaf in sorted MP.
- There are now 648 unit tests. Test coverage is 96%
- This will be the last version compatible with Django 1.0. There will be a a 1.6.X branch maintained for urgent bug fixes, but the main development will focus on recent Django versions.
- Really fixed the installation of templates.
- Forgot to include treebeard/tempates/*.html in MANIFEST.in
New features added
* Forms
- Added MoveNodeForm
* Django Admin
- Added TreeAdmin
* MP_Node
- Added 2 new checks in MP_Node.find_problems():
4. a list of ids of nodes with the wrong depth value for
their path
5. a list of ids nodes that report a wrong number of children
- Added a new (safer and faster but less comprehensive) MP_Node.fix_tree()
approach.
* Documentation
- Added warnings in the documentation when subclassing MP_Node or NS_Node
and adding a new Meta.
- HTML documentation is now included in the package.
- CHANGES file and section in the docs.
* Other changes:
- script to build documentation
- updated numconv.py
Bugs fixed
~~~~~~~~~~
* Added table quoting to all the sql queries that bypass the ORM.
Solves bug in postgres when the table isn't created by syncdb.
* Removing unused method NS_Node._find_next_node
* Fixed MP_Node.get_tree to include the given parent when given a leaf node
Release 1.1 (Nov 20, 2008)
--------------------------
Bugs fixed
~~~~~~~~~~
* Added exceptions.py
Release 1.0 (Nov 19, 2008)
--------------------------
* First public release.
.. _Oregon Center for Applied Science: http://www.orcasinc.com/
.. _FeinCMS: http://www.feincms.org
.. _Jesús del Carpio: http://www.isgeek.net
.. _Fernando Gutierrez: http://xbito.pe