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 <dmuel...@suse.com> + +- 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/cache@v3.2.4 + - uses: actions/cache@v3.2.6 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/setup-python@v4.5.0 + 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}]