- Fix urls to screenshots in on pypi description (fixes #398)
- Prevent superfluous spaces when a callable
row_attrs['class']
returns an empty string ([#417](jieter#417 by @Superman8218), fixes #416)
- Return
None
fromTable.as_values()
for missing values. #419 - Fix ordering by custom fields, and refactor
TableData
#424, fixes #413 - Revert removing
TableData.__iter__()
(removed in this commit), fixes #427, #361 and #421.
- Implement method
Table.as_values()
to get it's raw values. #394 by @intiocean - Fix some compatibility issues with django 2.0 #408 by djk2
- Apply
title
to a column'sverbose_name
when it is derived from a model, fixes #249. (#382 by @shawnnapora) - Update documentation after deprecation of
STATIC_URL
in django (#384, by @velaia) - Cleanup of the templates, making the output more equal (#381 by @ralgozino)
- Use new location for
urlresolvers
in Django and add backwards compatible import (#388 by @felixxm) - Fix a bug where using
sequence
and thenexclude
in a child table would result in aKeyError
- Some documentation fixes and cleanups.
- Added
get_table_kwargs()
method toSingleTableMixin
to allow passing custom keyword arguments to theTable
constructor. (#366 by @fritz-k) - Allow the children of
TableBase
render in the{% render_table %}
template tag. (#377 by @shawnnapora) - Refactor
BoundColumn
attributes to allow override of CSS class names, fixes #349 (#370 by @graup). Current behaviour should be intact, we will change the default in the future so it will not add the column name to the list of CSS classes.
- Fixed an issue preventing the rest of the row being rendered if a
BooleanColumn
was in the table for a model without custom choices defined on the model field. (#360)
- Added Norwegian Locale (#356 by @fanzypantz)
- Restore default pagination for
SingleTableMixin
, fixes #354 (#395 by @graup)
- Accept
text
parameter inFileColumn
, analogous toLinkColumn
(#343 by @graup) - Fix TemplateColumn RemovedInDjango110Warning fixes #346.
- Use field name in RelatedColumnLink (#350, fixes #347)
- Allow use of custom class names for ordered columns through
attrs
. ( #329 by @theTarkus) - Column ordering queryset passthrough (#330 by @theTarkus)
- Cleanup/restructuring of documentation, (#325)
- Fixed an issue where explicitly defined column options where not preserved over inheritance (#339, issue #337)
- Fixed an issue where
exclude
in combination withsequence
raised a KeyError (#341, issue #205)
- table footers (#323)
- Non-field based
LinkColumn
only renders default value if lookup fails. (#322) - Accept
text
parameter inBaseLinkColumn
-based columns. (#322) - Pass the table instance into SingleTableMixin's get_table_pagination (#320 by @georgema1982, fixes #319)
- Check if the view has
paginate_by
before before trying to access it. (fixes #326)
- Allow custom attributes for rows (fixes #47)
- Pass the table instance into
SingleTableMixin.get_table_pagination()
(#320 by (@georgema1982)[https://github.com/georgema1982]) - Ability to change the body of the
<a>
-tag, by passingtext
kwarg to the columns inheriting from BaseLinkColumn (#318 by @desecho, #322) - Non-field based LinkColumn only renders default value if lookup fails and text is not set. (#322, fixes #257)
- Added Italian translation (#315 by @paolodina
- Added Dutch translation.
- Fixed {% blocktrans %} template whitespace issues
- Fixed errors when using a column named
items
(#316) - Obey
paginate_by
(fromMultipleObjectMixin
) if no later pagination is defined (#242)
- Correct error message about request context processors for current Django (#314)
- Skipped 1.1.5 due to an error while creating the tag.
- Fix broken
setup.py
if Django is not installed before django-tables2 (fixes #312)
- Drop support for Django 1.7
- Add argument to CheckBoxColumn to render it as checked (original PR: #208)
- Fix
BooleanColumn
with choices set will always render as ifTrue
(#301) - Fix a bug with
TemplateColumn
while using cached template loader (#75)
- Allow Meta.fields to be a list as well as a tuple (#250)
- Call template.render with a dict in Django >= 1.8. (#298)
- Added
RelatedLinkColumn()
to render links to related objects (#297) - Remove default value from request param to table.as_html()
- Add tests for
TimeColumn
- Remove
sortable
argument forTable
and Column constructors and its associated methods. Deprecated since 2012. - Remove deprecated aliases for
attrs
inCheckboxColumn
. - Remove deprecated
OrderByTuple
cmp
method (deprecated since 2013). - Add bootstrap template and (#293, fixes #141, #285)
- Fix different html for tables with and without pagination (#293, fixes #149, #285)
- Remove
{% nospaceless %}
template tag and remove wrapping template in{% spaceless %}
Possible breaking change, if you use custom templates.
- Explicitly check if
column.verbose_name
is not None to support empty column headers (fixes #280) - Cleanup the example project to make it work with modern Django versions.
- Do not sort queryset when orderable=False (#204 by @bmihelac)
show_header
attribute onTable
allows disabling the header (#175 by @kviktor)LinkColumn
now tries to callget_absolute_url
on a record if noviewname
is provided (#283, fixes #231).- Add
request
argument toTable.as_html()
to allow passing correct request objects instead of poorly generated ones #282 - Add coverage reporting to build #282
- Drop support for python 3.2 (because of coverage), support ends feb 2016 #282
- move
build_request
fromdjango_table2.utils
totests.utils
and amend tests #282
- Support for custom text value in LinkColumn (#277 by @toudi)
- Refactor LinkColumn.render_link() to not escape twice #279
- Removed
Attrs
(wrapper for dict), deprecated on 2012-09-18 - Convert README.md to rst in setup.py to make PyPI look nice (fixes #97)
- First version released by new maintainer @jieter
- Dropped support for django 1.5 and 1.6, add python 3.5 with django 1.8 and 1.9 to the build matrix (#273)
- Prevent
SingleTableView
from callingget_queryset
twice. (fixes #155) - Don't call managers when resolving accessors. (#214 by @mbertheau, fixes #211)
- Fix bug in retrieving
field.verbose_name
under Django 1.8.
- Remove setup.cfg as PyPI doesn't actually support it, instead it's a distutils2 thing that's been discontinued.
- Add setup.cfg to declare README.md for PyPI.
- Convert README to markdown so it's formatted nicely on PyPI.
- Travis CI builds pass.
- Added Python 3.4 support.
- Added Django 1.7 and Django 1.8 support.
- Convert tests to using py.test.
- Django 1.8 fixes
BoundColumn.verbose_name
now titlises only if no verbose_name was given.verbose_name
is used verbatim.- Add max_length attribute to person CharField
- Add Swedish translation
- Update docs presentation on readthedocs
- Add UK, Russian, Spanish, Portuguese, and Polish translations
- Add support for computed table
attrs
.
querystring
andseturlparam
template tags now require the request to be in the context (backwards incompatible) -- #127- Add Travis CI support
- Add support for Django 1.5
- Add L10N control for columns #120 (ignored in < Django 1.3)
- Drop Python 2.6.4 support in favour of Python 3.2 support
- Non-queryset data ordering is different between Python 3 and 2. When comparing different types, their truth values are now compared before falling back to string representations of their type.
- Add FileColumn.
- When resolving an accessor, all exceptions are smothered into
None
.
- Improve performance by removing unnecessary queries
- Simplified pagination:
Table.page
is an instance attribute (no longer@property
)- Exceptions raised by paginators (e.g.
EmptyPage
) are no longer smothered byTable.page
- Pagination exceptions are raised by
Table.paginate
RequestConfig
can handles pagination errors silently, can be disabled by includingsilent=False
in thepaginate
argument value
- Add
DateTimeColumn
andDateColumn
to handle formattingdatetime
and timezones. - Add
BooleanColumn
to handle bool values render_table
can now build and render a table for a queryset, rather than needing to be passed a table instance- Table columns created automatically from a model now use specialised columns
Column.render
is now skipped if the value is considered empty, the default value is used instead. Empty values are specified viaColumn.empty_values
, by default is(None, '')
(backward incompatible)- Default values can now be specified on table instances or
Table.Meta
- Accessor's now honor
alters_data
during resolving. Fixes issue that would delete all your data when a column had an accessor ofdelete
- Add
default
andvalue
to context ofTemplateColumn
- Add cardinality indication to the pagination area of a table
Attrs
is deprecated, usedict
instead
- Add
URLColumn
to render URLs in a data source into hyperlinks - Add
EmailColumn
to render email addresses into hyperlinks TemplateColumn
can now Django's template loaders to render from a file
- Fix more bugs on Python 2.6.4, all tests now pass.
- Fix issues for Python 2.6.4 -- thanks Steve Sapovits & brianmay
- Reduce Django 1.3 dependency to Table.as_html -- thanks brianmay
- Fix MANIFEST.in to include example templates, thanks TWAC.
- Upgrade django-attest to fix problem with tests on Django 1.3.1
- Fixed support for Django 1.4's paginator (thanks koledennix)
- Some juggling of internal implementation.
TableData
now supports slicing and returns newTableData
instances.BoundRows
now takes a single argumentdata
(aTableData
instance). - Add support for
get_pagination
onSingleTableMixin
. SingleTableMixin
andSingleTableView
are now importable directly fromdjango_tables2
.
-
Renamed
BoundColumn.order_by
toorder_by_alias
and never returnsNone
(Backwards incompatible). Templates are affected if they use something like:{% querystring table.prefixed_order_by_field=column.order_by.opposite|default:column.name %}
Which should be rewritten as:
{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}
-
Added
next
shortcut toOrderBy
returned fromBoundColumn.order_by_alias
-
Added
OrderByTuple.get()
-
Deprecated
BoundColumn.sortable
,Column.sortable
,Table.sortable
,sortable
CSS class,BoundColumns.itersortable
,BoundColumns.sortable
; useorderable
instead ofsortable
. -
Added
BoundColumn.is_ordered
-
Introduced concept of an
order by alias
, see glossary in the docs for details.
- Fix bug that caused an ordered column's th to have no HTML attributes.
- Updated example project to add colspan on footer cell so table border renders correctly in Webkit.
- Fix regression that caused 'sortable' class on .
- Table.init no longer always calls .order_by() on querysets, fixes #55.
This does introduce a slight backwards incompatibility.
Table.order_by
now has the possibility of returningNone
, previously it would always return anOrderByTuple
. - DeclarativeColumnsMetaclass.new now uses super()
- Testing now requires pylint and Attest >=0.5.3
- Fix regression that caused column verbose_name values that were marked as safe to be escaped. Now any verbose_name values that are instances of SafeData are used unmodified.
- Fix regression in
SingleTableMixin
. - Remove stray
print
statement.
SingleTableView
now usesRequestConfig
. This fixes issues withorder_by_field
,page_field
, andper_page_field
not being honored.- Add
Table.Meta.per_page
and changeTable.paginate
to use it as default. - Add
title
template filter. It differs from Django's built-intitle
filter because it operates on an individual word basis and leaves words containing capitals untouched. Warning: use{% load ... from ... %}
to avoid inadvertantly replacing Django's builtintitle
template filter. BoundColumn.verbose_name
no longer doescapfirst
, titlising is now the responsbility ofColumn.header
.BoundColumn.__unicode__
now usesBoundColumn.header
rather thanBoundColumn.verbose_name
.
- Fix version in setup.py (doh)
- Add support for column attributes (see Attrs)
- Add BoundRows.items() to yield (bound_column, cell) pairs
- Tried to make docs more concise. Much stronger promotion of using RequestConfig and {% querystring %}
- Removed random 'print' statements.
- Tweaked 'paleblue' theme css to be more flexible:
- removed
whitespace: no-wrap
- header background image to support more than 2 rows of text
- removed
- Fixed stupid import mistake. Tests didn't pick it up due to them ignoring
ImportError
.
SingleTableView
now inherits fromListView
which enables automaticfoo_list.html
template name resolution (thanks dramon for reporting)render_table
template tag no suppresses exceptions whenDEBUG=True
- Fixed bug in render_table when giving it a template (issue #41)
- Added translation support in the default template via
{% trans %}
- Removed
basic_table.html
,Table.as_html()
now renderstable.html
but will clobber the querystring of the current request. Use therender_table
template tag instead render_table
now supports an optional second argument -- the template to use when rendering the tableTable
now supports declaring which template to use when rendering to HTML- Django >=1.3 is now required
- Added support for using django-haystack's
SearchQuerySet
as a data source - The default template
table.html
now includes block tags to make it easy to extend to change small pieces - Fixed table template parsing problems being hidden due to a subsequent exception being raised
- Http404 exceptions are no longer raised during a call to
Table.paginate()
, instead it now occurs whenTable.page
is accessed - Fixed bug where a table couldn't be rendered more than once if it was paginated
- Accessing
Table.page
now returns a new page every time, rather than reusing a single object
- Tables now support using both
sequence
andexclude
(issue #32). Sequence
class moved todjango_tables2/utils.py
.- Table instances now support modification to the
exclude
property. - Removed
BoundColumns._spawn_columns
. Table.data
,Table.rows
, andTable.columns
are now attributes rather than properties.