Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-tables2 for
openSUSE:Factory checked in at 2023-04-16 16:07:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-tables2 (Old)
and /work/SRC/openSUSE:Factory/.python-django-tables2.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-tables2"
Sun Apr 16 16:07:26 2023 rev:7 rq:1079723 version:2.5.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-tables2/python-django-tables2.changes
2023-02-17 16:45:28.395020848 +0100
+++
/work/SRC/openSUSE:Factory/.python-django-tables2.new.19717/python-django-tables2.changes
2023-04-16 16:07:45.821055050 +0200
@@ -1,0 +2,12 @@
+Sun Apr 16 08:15:06 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 2.5.3:
+ * Assign request to table before anything else in
+ `RequestConfig.configure()` (#888) fixes: #865
+ * Add type hints to get_context_data (#895) by @mschoettle
+ * Document hidden table attributes setting (#897) by
+ @mschoettle
+ * Fix building of the docs (#900) by @danielroseman
+ * Add template bootstrap5-responsive.html (#896) by @mschoettle
+
+-------------------------------------------------------------------
Old:
----
django-tables2-2.5.2.tar.gz
New:
----
django-tables2-2.5.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-tables2.spec ++++++
--- /var/tmp/diff_new_pack.0RUHiZ/_old 2023-04-16 16:07:46.341058048 +0200
+++ /var/tmp/diff_new_pack.0RUHiZ/_new 2023-04-16 16:07:46.345058071 +0200
@@ -19,7 +19,7 @@
%define skip_python2 1
%define skip_python36 1
Name: python-django-tables2
-Version: 2.5.2
+Version: 2.5.3
Release: 0
Summary: Table/data-grid framework for Django
License: BSD-2-Clause
++++++ django-tables2-2.5.2.tar.gz -> django-tables2-2.5.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/.github/workflows/ci.yml
new/django-tables2-2.5.3/.github/workflows/ci.yml
--- old/django-tables2-2.5.2/.github/workflows/ci.yml 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/.github/workflows/ci.yml 2023-03-06
07:18:04.000000000 +0100
@@ -49,7 +49,7 @@
with:
python-version: ${{ matrix.python-version }}
- uses: actions/checkout@v3
- - uses: actions/[email protected]
+ - uses: actions/[email protected]
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
@@ -63,3 +63,20 @@
python -m pip install coverage
python -m pip install -r requirements/common.pip
- run: coverage run --source=django_tables2 manage.py test
+
+ build_docs:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/[email protected]
+ with:
+ python-version: 3.9
+ cache: 'pip'
+ cache-dependency-path: |
+ docs/requirements.txt
+ common/requirements.txt
+ - name: Install and build
+ run: |
+ cd docs
+ python -m pip install -r requirements.txt
+ make html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/CHANGELOG.md
new/django-tables2-2.5.3/CHANGELOG.md
--- old/django-tables2-2.5.2/CHANGELOG.md 2023-02-07 08:47:16.000000000
+0100
+++ new/django-tables2-2.5.3/CHANGELOG.md 2023-03-06 07:18:04.000000000
+0100
@@ -1,39 +1,46 @@
# Change log
-# 2.5.2 (2023-02-07)
-- Assign `request` to table before anything else in
`RequestConfig.configure()`
([#888](https://github.com/jieter/django-tables2/pull/888)) fixes:
[#865](https://github.com/jieter/django-tables2/issues/865)
+## 2.5.3 (2023-03-05)
+ - Assign request to table before anything else in `RequestConfig.configure()`
([#888](https://github.com/jieter/django-tables2/pull/888)) fixes:
[#865](https://github.com/jieter/django-tables2/issues/865)
+ - Add type hints to get_context_data
([#895](https://github.com/jieter/django-tables2/pull/895)) by
[@mschoettle](https://github.com/mschoettle)
+ - Document hidden table attributes setting
([#897](https://github.com/jieter/django-tables2/pull/897)) by
[@mschoettle](https://github.com/mschoettle)
+ - Fix building of the docs
([#900](https://github.com/jieter/django-tables2/pull/900)) by
[@danielroseman](https://github.com/danielroseman)
+ - Add template bootstrap5-responsive.html
([#896](https://github.com/jieter/django-tables2/pull/896)) by
[@mschoettle](https://github.com/mschoettle)
-# 2.5.1 (2023-01-07)
+## 2.5.2 (2023-02-07)
+ - Assign `request` to table before anything else in
`RequestConfig.configure()`
([#888](https://github.com/jieter/django-tables2/pull/888)) fixes:
[#865](https://github.com/jieter/django-tables2/issues/865)
+
+## 2.5.1 (2023-01-07)
- `TableMixinBase`: implement `get_paginate_by`
([#811](https://github.com/jieter/django-tables2/pull/811)) by
[@Alirezaja1384](https://github.com/Alirezaja1384)
-# 2.5.0 (2022-12-27)
-- Dropped support for python 3.6, added support for python 3.11
-- Add django_tables2/bootstrap4-responsive.html
([#874](https://github.com/jieter/django-tables2/pull/874)) by
[@botlabsDev](https://github.com/botlabsDev)
-- Pass record/value to `LinkColumn`'s attrs callables too
([#852](https://github.com/jieter/django-tables2/pull/852)) by
[@wsldankers](https://github.com/wsldankers)
+## 2.5.0 (2022-12-27)
+ - Dropped support for python 3.6, added support for python 3.11
+ - Add django_tables2/bootstrap4-responsive.html
([#874](https://github.com/jieter/django-tables2/pull/874)) by
[@botlabsDev](https://github.com/botlabsDev)
+ - Pass record/value to `LinkColumn`'s attrs callables too
([#852](https://github.com/jieter/django-tables2/pull/852)) by
[@wsldankers](https://github.com/wsldankers)
- Add template `bootstrap5.html` to support bootstrap 5
([#880](https://github.com/jieter/django-tables2/pull/880), fixes
[#796](https://github.com/jieter/django-tables2/issues/796)
-# 2.4.1 (2021-10-04)
-- Add Persian (Farsi) locale
([#806](https://github.com/jieter/django-tables2/pull/806)) by
[@Alirezaja1384](https://github.com/jieter/django-tables2/commits?author=Alirezaja1384)
-- Improved error message if openpyxl is not installed
([#816](https://github.com/jieter/django-tables2/pull/816))
-- Use correct mime type for xlsx (fixes:
[#810](https://github.com/jieter/django-tables2/issues/810))
-- Add support for django 4.0, drop support for python 3.5
([#822](https://github.com/jieter/django-tables2/issues/822))
+## 2.4.1 (2021-10-04)
+ - Add Persian (Farsi) locale
([#806](https://github.com/jieter/django-tables2/pull/806)) by
[@Alirezaja1384](https://github.com/jieter/django-tables2/commits?author=Alirezaja1384)
+ - Improved error message if openpyxl is not installed
([#816](https://github.com/jieter/django-tables2/pull/816))
+ - Use correct mime type for xlsx (fixes:
[#810](https://github.com/jieter/django-tables2/issues/810))
+ - Add support for django 4.0, drop support for python 3.5
([#822](https://github.com/jieter/django-tables2/issues/822))
-# 2.4.0 (2021-05-15)
+## 2.4.0 (2021-05-15)
- Add support for django 3.2 and python 3.9, drop support for django 3.0
- Add Django 3.0 and 3.1 trove classifiers
[#803](https://github.com/jieter/django-tables2/pull/803) by
[@Asday](https://github.com/Asday)
- Strip leading and trailing whitespace from TemplateColumn.value()
[#794](https://github.com/jieter/django-tables2/pull/794) by
[@jeremystretch](https://github.com/jeremystretch)
- Providing link for django-bootstrap3
[#793](https://github.com/jieter/django-tables2/pull/793) by
[@TareqMonwer](https://github.com/TareqMonwer)
- Fix for crash on windows while deleting temp file
[#788](https://github.com/jieter/django-tables2/pull/788)
-# 2.3.4 (2021-01-10)
+## 2.3.4 (2021-01-10)
- Removed deprecation warnings with django==3.1 regarding `JSONField`
[#785](https://github.com/jieter/django-tables2/pull/785)
-# 2.3.3 (2020-10-29)
+## 2.3.3 (2020-10-29)
- Use `table.default` for empty `ManyToMany` relations
([#773](https://github.com/jieter/django-tables2/pull/773)) fixes:
[#769](https://github.com/jieter/django-tables2/issues/769)
- Pass record/value to `CheckboxColumn`'s `attrs` callables too
([#774](https://github.com/jieter/django-tables2/pull/774)), fixes:
[#762](https://github.com/jieter/django-tables2/issues/762)
-# 2.3.2 (2020-10-10)
-- Fix popping the extra_context of TemplateColumn
[#767](https://github.com/jieter/django-tables2/pull/767) by
[@bernhardmiller](https://github.com/bernhardmiller)
+## 2.3.2 (2020-10-10)
+ - Fix popping the extra_context of TemplateColumn
[#767](https://github.com/jieter/django-tables2/pull/767) by
[@bernhardmiller](https://github.com/bernhardmiller)
- Fix typo for the translation of the word 'next' in greek
[#759]](https://github.com/jieter/django-tables2/pull/759) by
[@orfeasa](https://github.com/orfeasa)
- Add `format_html` import to prevent `NameError`
[#752](https://github.com/jieter/django-tables2/pull/752) by
[@MBfromOK](https://github.com/MBfromOK)
- Fixed Russian translation
[#768](https://github.com/jieter/django-tables2/pull/768) by
[@Real-Gecko](https://github.com/Real-Gecko)
@@ -129,8 +136,8 @@
## 2.0.0a3 (2018-05-24)
Hello from [DjangoCon Europe](https://2018.djangocon.eu/)!
-- Fix table prefix being overwritten in `MultiTableView`,
[#576](https://github.com/jieter/django-tables2/pull/576) by
[@ETinLV](https://github.com/ETinLV), (fixes
[#572](https://github.com/jieter/django-tables2/issues/572))
-- Fix `empty_text` cannot be translated (fixes
[#579](https://github.com/jieter/django-tables2/issues/579))
+ - Fix table prefix being overwritten in `MultiTableView`,
[#576](https://github.com/jieter/django-tables2/pull/576) by
[@ETinLV](https://github.com/ETinLV), (fixes
[#572](https://github.com/jieter/django-tables2/issues/572))
+ - Fix `empty_text` cannot be translated (fixes
[#579](https://github.com/jieter/django-tables2/issues/579))
## 2.0.0a2 (2018-04-13)
- Another round of template cleanup.
@@ -147,6 +154,7 @@
- Cleaned up templates to add consistency in what is presented across all
templates.
- Added bootstrap4.html template
- Fixed translation inconsistencies.
+
### breaking changes 2.0.0
- Appearance of the paginators might be different from the current 1.x
templates. Use a custom template if you need to keep the appearance the same.
- Removed the `template` argument to the table constructor, use
`template_name` instead.
@@ -164,8 +172,7 @@
## 1.21.2 (2018-03-26)
- Moved table instantiation from `get_context_data` to `get_tables`
[#554](https://github.com/jieter/django-tables2/pull/554) by
[@sdolemelipone](https://github.com/sdolemelipone)
- - Pass request as kwarg to `template.render()`, rather than as part of
context.
- (fixes [#552](https://github.com/jieter/django-tables2/issues/552))
+ - Pass request as kwarg to `template.render()`, rather than as part of
context. (fixes [#552](https://github.com/jieter/django-tables2/issues/552))
## 1.21.1 (2018-03-12)
- Do not perform extra `COUNT()` queries for non-paginated tables. Fixes
[#551](https://github.com/jieter/django-tables2/issues/551)
@@ -202,6 +209,7 @@
## 1.16.0 (2017-11-27)
This is the last version supporting Django 1.8, 1.9 and 1.10. Django 1.8 is
only supported until April 2018, so consider upgrading to Django 1.11!
+
- Added `tf` dictionary to `Column.attrs` with default values for the footer,
so footers now have `class` attribute by default
[#501](https://github.com/jieter/django-tables2/pull/501) by
[@mpasternak](https://github.com/mpasternak)
## 1.15.0 (2017-11-23)
@@ -236,7 +244,7 @@
- Fixed display of pinned rows if table has no data.
[#477](https://github.com/bradleyayers/django-tables2/pull/477) by
[@khirstinova](https://github.com/khirstinova)
## 1.10.0 (2017-06-30)
- - Added `ManyToManyColumn` automatically added for `ManyToManyField`s.
+- Added `ManyToManyColumn` automatically added for `ManyToManyField`s.
## 1.9.1 (2017-06-29)
- Allow customizing the value used in `Table.as_values()` (when using a
`render_<name>` method) using a `value_<name>` method. (fixes
[#458](https://github.com/bradleyayers/django-tables2/issues/458))
@@ -270,6 +278,7 @@
## 1.5.0 (2017-04-18)
_Full disclosure: as of april 1st, 2017, I am an employee of
[Zostera](http://zostera.nl/), as such I will continue to maintain and improve
django-tables2._
+
- Made `TableBase.as_values()` an iterator
([#432](https://github.com/bradleyayers/django-tables2/pull/432) by
[@pziarsolo](https://github.com/pziarsolo))
- Added `JSONColumn` for data in JSON format.
- Added `__all__` in `django_tables2/__init__.py` and
`django_tables2/columns/__init__.py`
@@ -297,8 +306,7 @@
- Documentation for `None`-column attributes
[#401](https://github.com/bradleyayers/django-tables2/pull/401) by
[@dyve](https://github.com/dyve)
## 1.2.8 (2016-12-21)
- - `None`-column attributes on child class overwrite column attributes of
parent class
- [#400](https://github.com/bradleyayers/django-tables2/pull/400) by
[@dyve](https://github.com/dyve)
+ - `None`-column attributes on child class overwrite column attributes of
parent class [#400](https://github.com/bradleyayers/django-tables2/pull/400) by
[@dyve](https://github.com/dyve)
## 1.2.7 (2016-12-12)
- Apply `title` to a column's `verbose_name` when it is derived from a model,
fixes [#249](https://github.com/bradleyayers/django-tables2/issues/249).
([#382](https://github.com/bradleyayers/django-tables2/pull/382) by
[@shawnnapora](https://github.com/shawnnapora))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/django_tables2/__init__.py
new/django-tables2-2.5.3/django_tables2/__init__.py
--- old/django-tables2-2.5.2/django_tables2/__init__.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/django_tables2/__init__.py 2023-03-06
07:18:04.000000000 +0100
@@ -20,7 +20,7 @@
from .utils import A
from .views import MultiTableMixin, SingleTableMixin, SingleTableView
-__version__ = "2.5.2"
+__version__ = "2.5.3"
__all__ = (
"Table",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/django_tables2/rows.py
new/django-tables2-2.5.3/django_tables2/rows.py
--- old/django-tables2-2.5.2/django_tables2/rows.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/django_tables2/rows.py 2023-03-06
07:18:04.000000000 +0100
@@ -311,15 +311,13 @@
def __iter__(self):
# Top pinned rows
- for pinned_record in
self.generator_pinned_row(self.pinned_data.get("top")):
- yield pinned_record
+ yield from self.generator_pinned_row(self.pinned_data.get("top"))
for record in self.data:
yield BoundRow(record, table=self.table)
# Bottom pinned rows
- for pinned_record in
self.generator_pinned_row(self.pinned_data.get("bottom")):
- yield pinned_record
+ yield from self.generator_pinned_row(self.pinned_data.get("bottom"))
def __len__(self):
length = len(self.data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/django_tables2/tables.py
new/django-tables2-2.5.3/django_tables2/tables.py
--- old/django-tables2-2.5.2/django_tables2/tables.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/django_tables2/tables.py 2023-03-06
07:18:04.000000000 +0100
@@ -345,7 +345,7 @@
self._sequence = sequence.expand(base_columns.keys())
# reorder columns based on sequence.
- base_columns = OrderedDict(((x, base_columns[x]) for x in sequence if
x in base_columns))
+ base_columns = OrderedDict((x, base_columns[x]) for x in sequence if x
in base_columns)
self.columns = columns.BoundColumns(self, base_columns)
# `None` value for order_by means no order is specified. This means we
# `shouldn't touch our data's ordering in any way. *However*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-tables2-2.5.2/django_tables2/templates/django_tables2/bootstrap5-responsive.html
new/django-tables2-2.5.3/django_tables2/templates/django_tables2/bootstrap5-responsive.html
---
old/django-tables2-2.5.2/django_tables2/templates/django_tables2/bootstrap5-responsive.html
1970-01-01 01:00:00.000000000 +0100
+++
new/django-tables2-2.5.3/django_tables2/templates/django_tables2/bootstrap5-responsive.html
2023-03-06 07:18:04.000000000 +0100
@@ -0,0 +1,13 @@
+{% extends 'django_tables2/bootstrap4.html' %}
+
+{% block table-wrapper %}
+<div class="table-container table-responsive">
+ {% block table %}
+ {{ block.super }}
+ {% endblock table %}
+
+ {% block pagination %}
+ {{ block.super }}
+ {% endblock pagination %}
+</div>
+{% endblock table-wrapper %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/django_tables2/utils.py
new/django-tables2-2.5.3/django_tables2/utils.py
--- old/django-tables2-2.5.2/django_tables2/utils.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/django_tables2/utils.py 2023-03-06
07:18:04.000000000 +0100
@@ -281,7 +281,7 @@
>>> order_by.opposite
('-name', 'age')
"""
- return type(self)((o.opposite for o in self))
+ return type(self)(o.opposite for o in self)
class Accessor(str):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/django_tables2/views.py
new/django-tables2-2.5.3/django_tables2/views.py
--- old/django-tables2-2.5.2/django_tables2/views.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/django_tables2/views.py 2023-03-06
07:18:04.000000000 +0100
@@ -1,5 +1,5 @@
from itertools import count
-from typing import Optional
+from typing import Any, Dict, Optional
from django.core.exceptions import ImproperlyConfigured
from django.views.generic.list import ListView
@@ -152,7 +152,7 @@
"""
return {}
- def get_context_data(self, **kwargs):
+ def get_context_data(self, **kwargs: Any) -> Dict[str, Any]:
"""
Overridden version of `.TemplateResponseMixin` to inject the table into
the template's context.
@@ -227,7 +227,7 @@
"""
return self.tables_data
- def get_context_data(self, **kwargs):
+ def get_context_data(self, **kwargs: Any) -> Dict[str, Any]:
context = super().get_context_data(**kwargs)
tables = self.get_tables()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/docs/conf.py
new/django-tables2-2.5.3/docs/conf.py
--- old/django-tables2-2.5.2/docs/conf.py 2023-02-07 08:47:16.000000000
+0100
+++ new/django-tables2-2.5.3/docs/conf.py 2023-03-06 07:18:04.000000000
+0100
@@ -4,12 +4,11 @@
from pathlib import Path
import sphinx_rtd_theme
-from recommonmark.parser import CommonMarkParser
os.environ["DJANGO_SETTINGS_MODULE"] = "example.settings"
# import project
-sys.path.insert(0, Path("../").resolve())
+sys.path.insert(0, str(Path("../").resolve()))
project = "django-tables2"
with open("../django_tables2/__init__.py", "rb") as f:
@@ -19,16 +18,12 @@
default_role = "py:obj"
-# allow markdown to be able to include the CHANGELOG.md
-source_parsers = {".md": CommonMarkParser}
-source_suffix = [".rst", ".md"]
-
# symlink CHANGELOG.md from repo root to the pages dir.
basedir = Path(__file__).parent.parent
filename = "CHANGELOG.md"
target = basedir / "docs" / "pages" / filename
-if not target.is_symlink:
- (basedir / filename).symlink_to(target)
+if not target.is_symlink():
+ target.symlink_to(basedir / filename)
extensions = [
"sphinx.ext.autodoc",
@@ -37,6 +32,7 @@
"sphinx.ext.viewcode",
"sphinx.ext.doctest",
"sphinxcontrib.spelling",
+ "myst_parser",
]
intersphinx_mapping = {
@@ -68,3 +64,5 @@
# Boolean controlling whether suggestions for misspelled words are printed.
# Defaults to False.
spelling_show_suggestions = True
+
+myst_heading_anchors = 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/docs/pages/api-reference.rst
new/django-tables2-2.5.3/docs/pages/api-reference.rst
--- old/django-tables2-2.5.2/docs/pages/api-reference.rst 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/docs/pages/api-reference.rst 2023-03-06
07:18:04.000000000 +0100
@@ -20,9 +20,7 @@
.. autoclass:: django_tables2.tables.Table
:members: paginate, as_html, as_values, get_column_class_names,
- before_render,
- get_top_pinned_data, get_bottom_pinned_data,
- get_column_class_names
+ before_render, get_top_pinned_data, get_bottom_pinned_data
`.Table.Meta`
@@ -378,7 +376,6 @@
~~~~~~~~~~~~~~~~~~~~~
.. autoclass:: django_tables2.export.ExportMixin
- :members:
`.LazyPaginator`
~~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/docs/pages/custom-rendering.rst
new/django-tables2-2.5.3/docs/pages/custom-rendering.rst
--- old/django-tables2-2.5.2/docs/pages/custom-rendering.rst 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/docs/pages/custom-rendering.rst 2023-03-06
07:18:04.000000000 +0100
@@ -25,12 +25,26 @@
>>> # renders to something like this:
'<table class="mytable">...'
+By default, django-tables2 looks for the ``DJANGO_TABLES2_TABLE_ATTRS``
+setting which allows you to define attributes globally for all tables.
+For example, to have a Bootstrap5 table with hoverable rows
+and a light table header define it as follows:
+
+.. sourcecode:: python
+
+ DJANGO_TABLES2_TABLE_ATTRS = {
+ 'class': 'table table-hover',
+ 'thead': {
+ 'class': 'table-light',
+ },
+ }
+
You can also specify ``attrs`` attribute when creating a column. ``attrs``
is a dictionary which contains attributes which by default get rendered
on various tags involved with rendering a column. You can read more about
them in :ref:`column-attributes`. django-tables2 supports three different
dictionaries, this way you can give different attributes
-to column tags in table header (``th``), rows (``td``) or footer (``tf``)
+to column tags in table header (``th``), rows (``td``) or footer (``tf``).
.. sourcecode:: python
@@ -54,23 +68,26 @@
We ship a couple of different templates:
-========================================
======================================================
-Template name Description
-========================================
======================================================
-django_tables2/table.html Basic table template (default).
-django_tables2/bootstrap.html Template using bootstrap 3
structure/classes
-django_tables2/bootstrap4.html Template using bootstrap 4
structure/classes
-django_tables2/bootstrap-responsive.html Same as bootstrap, but wrapped in
``.table-responsive``
-django_tables2/semantic.html Template using semantic UI
-========================================
======================================================
+=========================================
======================================================
+Template name Description
+=========================================
======================================================
+django_tables2/table.html Basic table template (default).
+django_tables2/bootstrap.html Template using bootstrap 3
structure/classes
+django_tables2/bootstrap-responsive.html Same as bootstrap, but wrapped in
``.table-responsive``
+django_tables2/bootstrap4.html Template using bootstrap 4
structure/classes
+django_tables2/bootstrap4-responsive.html Same as bootstrap4, but wrapped in
``.table-responsive``
+django_tables2/bootstrap5.html Template using bootstrap 5
structure/classes
+django_tables2/bootstrap5-responsive.html Same as bootstrap5, but wrapped in
``.table-responsive``
+django_tables2/semantic.html Template using semantic UI
+=========================================
======================================================
By default, django-tables2 looks for the ``DJANGO_TABLES2_TEMPLATE`` setting
which is ``django_tables2/table.html`` by default.
-If you use bootstrap 3 for your site, it makes sense to set the default to
-the bootstrap 3 template::
+If you use bootstrap 5 for your site, it makes sense to set the default to
+the bootstrap 5 template::
- DJANGO_TABLES2_TEMPLATE = "django_tables2/bootstrap.html"
+ DJANGO_TABLES2_TEMPLATE = "django_tables2/bootstrap5.html"
If you want to specify a custom template for selected tables in your project,
you can set a ``template_name`` attribute to your custom ``Table.Meta`` class::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/docs/pages/export.rst
new/django-tables2-2.5.3/docs/pages/export.rst
--- old/django-tables2-2.5.2/docs/pages/export.rst 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/docs/pages/export.rst 2023-03-06
07:18:04.000000000 +0100
@@ -12,7 +12,7 @@
.. note::
For all supported formats (xls, xlsx, etc.), you must install additional
dependencies:
- `Installing tablib:
<https://tablib.readthedocs.io/en/stable/install/#installing-tablib`_
+ `Installing tablib
<https://tablib.readthedocs.io/en/stable/install/#installing-tablib>`_
Adding ability to export the table data to a class based views looks like
this::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/docs/requirements.txt
new/django-tables2-2.5.3/docs/requirements.txt
--- old/django-tables2-2.5.2/docs/requirements.txt 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/docs/requirements.txt 2023-03-06
07:18:04.000000000 +0100
@@ -1,7 +1,7 @@
-r ../requirements/common.pip
-Sphinx==2.2.0
-sphinx_rtd_theme==0.5.0
-recommonmark==0.4.0
+Sphinx==6.1.3
+sphinx_rtd_theme==1.2.0
django
-sphinxcontrib-spelling==5.2.0
-pyenchant==3.1.1
+sphinxcontrib-spelling==8.0.0
+pyenchant==3.2.2
+myst-parser==0.19.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-tables2-2.5.2/example/app/migrations/0001_initial.py
new/django-tables2-2.5.3/example/app/migrations/0001_initial.py
--- old/django-tables2-2.5.2/example/app/migrations/0001_initial.py
2023-02-07 08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/example/app/migrations/0001_initial.py
2023-03-06 07:18:04.000000000 +0100
@@ -1,5 +1,4 @@
# Generated by Django 1.11.5 on 2017-09-22 13:23
-from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/tests/columns/test_general.py
new/django-tables2-2.5.3/tests/columns/test_general.py
--- old/django-tables2-2.5.2/tests/columns/test_general.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/tests/columns/test_general.py 2023-03-06
07:18:04.000000000 +0100
@@ -308,7 +308,7 @@
with self.assertRaises(ImproperlyConfigured):
@library.register
- class Klass(object):
+ class Klass:
pass
self.assertEqual(len(library.columns), currently_registered)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-tables2-2.5.2/tests/columns/test_templatecolumn.py
new/django-tables2-2.5.3/tests/columns/test_templatecolumn.py
--- old/django-tables2-2.5.2/tests/columns/test_templatecolumn.py
2023-02-07 08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/tests/columns/test_templatecolumn.py
2023-03-06 07:18:04.000000000 +0100
@@ -15,7 +15,7 @@
self.pinned = data
revised_data = []
- super(TestOnlyPinnedTable, self).__init__(revised_data)
+ super().__init__(revised_data)
def get_top_pinned_data(self):
return self.pinned
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/tests/test_export.py
new/django-tables2-2.5.3/tests/test_export.py
--- old/django-tables2-2.5.2/tests/test_export.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/tests/test_export.py 2023-03-06
07:18:04.000000000 +0100
@@ -259,9 +259,9 @@
response = OccupationView.as_view()(build_request("/?_export=xls"))
data = response.content
# binary data, so not possible to compare to an exact expectation
- self.assertTrue(data.find("Vlaanderen".encode()))
- self.assertTrue(data.find("Ecoloog".encode()))
- self.assertTrue(data.find("Timmerman".encode()))
+ self.assertTrue(data.find(b"Vlaanderen"))
+ self.assertTrue(data.find(b"Ecoloog"))
+ self.assertTrue(data.find(b"Timmerman"))
def test_datetime_xls(self):
"""Verify datatime objects can be exported to xls."""
@@ -294,7 +294,7 @@
self.assertEqual(data, expected_csv)
response = View.as_view()(build_request("/?_export=xls"))
- self.assertIn("07/22/2019 1:11 p.m.".encode(), response.content)
+ self.assertIn(b"07/22/2019 1:11 p.m.", response.content)
def test_export_invisible_columns(self):
"""Verify columns with visible=False *do* get exported."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/tests/test_models.py
new/django-tables2-2.5.3/tests/test_models.py
--- old/django-tables2-2.5.2/tests/test_models.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/tests/test_models.py 2023-03-06
07:18:04.000000000 +0100
@@ -90,7 +90,7 @@
class Table(tables.Table):
class Meta:
model = Person
- fields = (str("first_name"),)
+ fields = ("first_name",)
table = Table(Person.objects.all())
self.assertEqual(table.rows[0].get_cell("first_name"), "Bradley")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/tests/test_templatetags.py
new/django-tables2-2.5.3/tests/test_templatetags.py
--- old/django-tables2-2.5.2/tests/test_templatetags.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/tests/test_templatetags.py 2023-03-06
07:18:04.000000000 +0100
@@ -179,7 +179,7 @@
)
url = parse(template.render(context)).text
qs = parse_qs(url[1:]) # trim the ?
- self.assertEqual(set(qs.keys()), set(["name", "c"]))
+ self.assertEqual(set(qs.keys()), {"name", "c"})
def test_only_without(self):
context = Context({"request": build_request("/?a=b&name=dog&c=5"),
"a_var": "a"})
@@ -188,7 +188,7 @@
)
url = parse(template.render(context)).text
qs = parse_qs(url[1:]) # trim the ?
- self.assertEqual(set(qs.keys()), set(["c"]))
+ self.assertEqual(set(qs.keys()), {"c"})
def test_querystring_syntax_error(self):
with self.assertRaisesMessage(TemplateSyntaxError, "Malformed
arguments to 'querystring'"):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-tables2-2.5.2/tests/test_utils.py
new/django-tables2-2.5.3/tests/test_utils.py
--- old/django-tables2-2.5.2/tests/test_utils.py 2023-02-07
08:47:16.000000000 +0100
+++ new/django-tables2-2.5.3/tests/test_utils.py 2023-03-06
07:18:04.000000000 +0100
@@ -49,7 +49,7 @@
assert sorted(items, key=obt.key) == [{"a": 1, "b": 3}, {"a": 1, "b":
2}]
def test_sort_key_empty_comes_first(self):
- obt = OrderByTuple(("a"))
+ obt = OrderByTuple("a")
items = [{"a": 1}, {"a": ""}, {"a": 2}]
assert sorted(items, key=obt.key) == [{"a": ""}, {"a": 1}, {"a": 2}]