# Django-table-sort
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/TheRealVizard/django-table-sort/main.svg)](https://results.pre-commit.ci/latest/github/TheRealVizard/django-table-sort/main) [![Documentation Status](https://readthedocs.org/projects/django-table-sort/badge/?version=latest)](https://django-table-sort.readthedocs.io/en/latest/?badge=latest) [![codecov](https://codecov.io/gh/TheRealVizard/django-table-sort/branch/main/graph/badge.svg?token=KGXHPZ6HOB)](https://codecov.io/gh/TheRealVizard/django-table-sort) ![django-table-sort](https://img.shields.io/pypi/v/django-table-sort?color=blue) ![python-versions](https://img.shields.io/pypi/pyversions/django-table-sort) ![django-versions](https://img.shields.io/pypi/frameworkversions/django/django-table-sort?label=django) ![license](https://img.shields.io/pypi/l/django-table-sort?color=blue) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) ![downloads](https://img.shields.io/pypi/dm/django-table-sort)
Create tables with sorting links on the headers in Django templates.
Documentation, including installation and configuration instructions, is available at https://django-table-sort.readthedocs.io/.
The Django Table Sort is released under the BSD license, like Django itself. If you like it, please consider [contributing!](./CONTRIBUTING.md)
## Installation
**First**, install with pip:
```bash
pip install django-table-sort
```
**Second**, add the app to your INSTALLED_APPS setting:
```python
INSTALLED_APPS = [
...,
"django_table_sort",
...,
]
```
## Usage
**First**, add the static to your Template:
```html
<link rel="stylesheet" href="{% static 'django_table_sort.css' %}"/>
```
`django-sort-table` uses by default Font Awesome 6 to display the icons, so you might need to add it too.
```html
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
```
**Second**, Use `django-table-sort` to display your tables.
In your _view.py_ file:
```python
class ListViewExample(ListView):
model = Person
template_name: str = "base.html"
ordering_key = "o"
def get_ordering(self) -> tuple:
return self.request.GET.getlist(
self.ordering_key, None
) # To make Django use the order
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["table"] = TableSort(
self.request,
self.object_list,
sort_key_name=self.ordering_key,
table_css_clases="table table-light table-striped table-sm",
)
return context
```
In your _template.html_ file:
```html
{{ table.render }}
```
Result:
The table is render with 2 link, one to Toggle the sort direction and another to remove the sort.
<p align="center">
<img width="375" height="149" src="https://github.com/TheRealVizard/django-table-sort/raw/main/result.png">
</p>
You can filter by each field you declare as a column.
<p align="center">
<img width="375" height="45" src="https://github.com/TheRealVizard/django-table-sort/raw/main/url_result.png">
</p>
Raw data
{
"_id": null,
"home_page": "https://github.com/TheRealVizard/django-table-sort",
"name": "django-table-sort",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "django,table,sort,templates",
"author": "TheRealVizard",
"author_email": "vizard@divineslns.com",
"download_url": "https://files.pythonhosted.org/packages/f7/41/97495dd609d08c737e9cc69af7b9ea372b1ee4e814f168b2320e6ae64de7/django_table_sort-0.6.0.tar.gz",
"platform": null,
"description": "# Django-table-sort\n\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/TheRealVizard/django-table-sort/main.svg)](https://results.pre-commit.ci/latest/github/TheRealVizard/django-table-sort/main) [![Documentation Status](https://readthedocs.org/projects/django-table-sort/badge/?version=latest)](https://django-table-sort.readthedocs.io/en/latest/?badge=latest) [![codecov](https://codecov.io/gh/TheRealVizard/django-table-sort/branch/main/graph/badge.svg?token=KGXHPZ6HOB)](https://codecov.io/gh/TheRealVizard/django-table-sort) ![django-table-sort](https://img.shields.io/pypi/v/django-table-sort?color=blue) ![python-versions](https://img.shields.io/pypi/pyversions/django-table-sort) ![django-versions](https://img.shields.io/pypi/frameworkversions/django/django-table-sort?label=django) ![license](https://img.shields.io/pypi/l/django-table-sort?color=blue) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) ![downloads](https://img.shields.io/pypi/dm/django-table-sort)\n\nCreate tables with sorting links on the headers in Django templates.\n\nDocumentation, including installation and configuration instructions, is available at https://django-table-sort.readthedocs.io/.\n\nThe Django Table Sort is released under the BSD license, like Django itself. If you like it, please consider [contributing!](./CONTRIBUTING.md)\n\n## Installation\n\n**First**, install with pip:\n\n```bash\npip install django-table-sort\n```\n\n**Second**, add the app to your INSTALLED_APPS setting:\n\n```python\nINSTALLED_APPS = [\n ...,\n \"django_table_sort\",\n ...,\n]\n```\n\n## Usage\n**First**, add the static to your Template:\n\n```html\n<link rel=\"stylesheet\" href=\"{% static 'django_table_sort.css' %}\"/>\n```\n\n`django-sort-table` uses by default Font Awesome 6 to display the icons, so you might need to add it too.\n\n```html\n<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css\" integrity=\"sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />\n```\n\n**Second**, Use `django-table-sort` to display your tables.\n\nIn your _view.py_ file:\n\n```python\nclass ListViewExample(ListView):\n model = Person\n template_name: str = \"base.html\"\n ordering_key = \"o\"\n\n def get_ordering(self) -> tuple:\n return self.request.GET.getlist(\n self.ordering_key, None\n ) # To make Django use the order\n\n def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context[\"table\"] = TableSort(\n self.request,\n self.object_list,\n sort_key_name=self.ordering_key,\n table_css_clases=\"table table-light table-striped table-sm\",\n )\n return context\n```\n\nIn your _template.html_ file:\n\n```html\n{{ table.render }}\n```\n\nResult:\n\nThe table is render with 2 link, one to Toggle the sort direction and another to remove the sort.\n\n<p align=\"center\">\n <img width=\"375\" height=\"149\" src=\"https://github.com/TheRealVizard/django-table-sort/raw/main/result.png\">\n</p>\n\nYou can filter by each field you declare as a column.\n<p align=\"center\">\n <img width=\"375\" height=\"45\" src=\"https://github.com/TheRealVizard/django-table-sort/raw/main/url_result.png\">\n</p>\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Create tables with sorting links on the headers in Django templates.",
"version": "0.6.0",
"project_urls": {
"Documentation": "https://django-table-sort.readthedocs.io/en/latest/",
"Homepage": "https://github.com/TheRealVizard/django-table-sort",
"Repository": "https://github.com/TheRealVizard/django-table-sort"
},
"split_keywords": [
"django",
"table",
"sort",
"templates"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "03725d8406aa3126c2971a755e56f19fb3dd4a1861daac4a634e3333e8b75fbb",
"md5": "17669456f23afd67924c2452011fc772",
"sha256": "ab7a9b84813cedd9ef1ab2f867ee343aeaec9a18ae5489c341e368b1485c6adc"
},
"downloads": -1,
"filename": "django_table_sort-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "17669456f23afd67924c2452011fc772",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 8591,
"upload_time": "2023-09-17T18:34:11",
"upload_time_iso_8601": "2023-09-17T18:34:11.359554Z",
"url": "https://files.pythonhosted.org/packages/03/72/5d8406aa3126c2971a755e56f19fb3dd4a1861daac4a634e3333e8b75fbb/django_table_sort-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f74197495dd609d08c737e9cc69af7b9ea372b1ee4e814f168b2320e6ae64de7",
"md5": "3bcdc44bdda618ee9b1bb2e032ac89bf",
"sha256": "dc66524ccb18e73f2ed57f98f7393605a6bea937c32bb9652823a8191797c480"
},
"downloads": -1,
"filename": "django_table_sort-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "3bcdc44bdda618ee9b1bb2e032ac89bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 8261,
"upload_time": "2023-09-17T18:34:12",
"upload_time_iso_8601": "2023-09-17T18:34:12.493406Z",
"url": "https://files.pythonhosted.org/packages/f7/41/97495dd609d08c737e9cc69af7b9ea372b1ee4e814f168b2320e6ae64de7/django_table_sort-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-17 18:34:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TheRealVizard",
"github_project": "django-table-sort",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "django-table-sort"
}