diff options
Diffstat (limited to 'python-django-ajax-tables.spec')
-rw-r--r-- | python-django-ajax-tables.spec | 417 |
1 files changed, 417 insertions, 0 deletions
diff --git a/python-django-ajax-tables.spec b/python-django-ajax-tables.spec new file mode 100644 index 0000000..93ffa90 --- /dev/null +++ b/python-django-ajax-tables.spec @@ -0,0 +1,417 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-ajax-tables +Version: 1.1.1 +Release: 1 +Summary: Django tag for ajax-enabled tables +License: MIT License +URL: https://github.com/KiwiTrinsic/django-ajax-tables +Source0: https://mirrors.aliyun.com/pypi/web/packages/12/f7/0240d6694bb29be34ada44364e5459d0ce318e5b34b850fd4a6b576847ef/django_ajax_tables-1.1.1.tar.gz +BuildArch: noarch + + +%description +# A Django app to add Ajax capabilities to django-tables2 + +This app is an enhancement for [django-tables2](https://pypi.python.org/pypi/django-tables2). It adds Ajax capability to allow tables to be sorted and paged without reloading the entire page. + +- On Pypi [django-ajax-tables](https://pypi.org/project/django-ajax-tables/) +- On Git [django-ajax-tables](https://github.com/KiwiTrinsic/django-ajax-tables) + +## Requirements + +- Python 3 +- Django (version 2+) +- [django-tables2](https://pypi.python.org/pypi/django-tables2) + +## Installation + +Install with pip: + +```python +pip install django-ajax-tables +``` + +Add django_ajax_tables to the settings.py installed_apps: + +```python +INSTALLED_APPS = ( + ..., + "django_ajax_tables", +) +``` + +## Features + +This app adds a new Django template tag {% ajax_table %}. +This is a replacement for the django-tables2 {% render_table %} tag. + +To implement the Ajax functionality you will need to add a view which returns the raw table html (example shown below). +The {% ajax_table %} tag will use that html to render the table on the page. +It will also configure the table sorting and pagination links to perform Ajax calls and in-place updates of the table. +This will allow you to sort and page through the table without the entire webpage refreshing on each click. + +This will not affect any LinkColumns that have been added to the table layout. + +## Example + +Create a django-tables2 table and wire it to a model as normal: + +```python +import django_tables2 as tables + +class SimpleTable(tables.Table): + class Meta: + model = Simple +``` + +Create a view that exposes the table as raw html: + +```python +from django.http import HttpResponse +from django_tables2 import RequestConfig + +def simple_view(request): + simple_table = SimpleTable(Simple.objects.all()) + RequestConfig(request).configure(simple_table) + return HttpResponse(simple_table.as_html(request)) +``` +Create a url mapping for the view: + +``` +urlpatterns = [ + ..., + url(r'^simple_url$', simple_view, name='simple_url_name'), +``` + +Place ajax_table tags where tables are to be displayed: + +``` +{% ajax_table "unique_div_id" "simple_url_name" %} +``` + +## Usage + +The ajax_table tag requires at least two parameters. + +- The first parameter is a unique id. This id should not used for any other element on the page. The ajax_table tag will create a div element with this id to contain the table. +- The second parameter is the name of the url that is mapped to the table view. +- Any additional non-keyword arguments will be passed as positional arguments to the url. If used this will prevent the passing of keyword arguments to the url. +- The template keyword argument can be used to replace the django-ajax-tables javascript with custom javascript. +- Any additional keyword arguments will be passed as keyword aguments to the url but only if there were no positional arguments passed to the url. + +### Example with positional arguments +``` +{% ajax_table "unique_div_id" "simple_url_name" arg1 arg2 %} +``` + +### Example with keyword arguments +``` +{% ajax_table "unique_div_id" "simple_url_name" filter1=arg1 filter2=arg2 %} +``` + +## Javascript API + +The table loading function can also be caled direcly in javascript. +This can be useful if the data needs to be refreshed. +The function name will be in the form of *update_\<id\>* where *\<id\>* is the unique id parameter that was pased in to the ajax_table tag. + +The function can take two optional parameters. +The first parameter is a query string which will appened to the url. +This defaults to an empty string. +The second parameter is a url which will be used by the ajax call to fetch the table data. +This defaults to the original url as created by the ajax_table tag. + +Together these two parameters allow the table data to be loaded with different query parameters or from entirly different urls. + + + + + +%package -n python3-django-ajax-tables +Summary: Django tag for ajax-enabled tables +Provides: python-django-ajax-tables +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-ajax-tables +# A Django app to add Ajax capabilities to django-tables2 + +This app is an enhancement for [django-tables2](https://pypi.python.org/pypi/django-tables2). It adds Ajax capability to allow tables to be sorted and paged without reloading the entire page. + +- On Pypi [django-ajax-tables](https://pypi.org/project/django-ajax-tables/) +- On Git [django-ajax-tables](https://github.com/KiwiTrinsic/django-ajax-tables) + +## Requirements + +- Python 3 +- Django (version 2+) +- [django-tables2](https://pypi.python.org/pypi/django-tables2) + +## Installation + +Install with pip: + +```python +pip install django-ajax-tables +``` + +Add django_ajax_tables to the settings.py installed_apps: + +```python +INSTALLED_APPS = ( + ..., + "django_ajax_tables", +) +``` + +## Features + +This app adds a new Django template tag {% ajax_table %}. +This is a replacement for the django-tables2 {% render_table %} tag. + +To implement the Ajax functionality you will need to add a view which returns the raw table html (example shown below). +The {% ajax_table %} tag will use that html to render the table on the page. +It will also configure the table sorting and pagination links to perform Ajax calls and in-place updates of the table. +This will allow you to sort and page through the table without the entire webpage refreshing on each click. + +This will not affect any LinkColumns that have been added to the table layout. + +## Example + +Create a django-tables2 table and wire it to a model as normal: + +```python +import django_tables2 as tables + +class SimpleTable(tables.Table): + class Meta: + model = Simple +``` + +Create a view that exposes the table as raw html: + +```python +from django.http import HttpResponse +from django_tables2 import RequestConfig + +def simple_view(request): + simple_table = SimpleTable(Simple.objects.all()) + RequestConfig(request).configure(simple_table) + return HttpResponse(simple_table.as_html(request)) +``` +Create a url mapping for the view: + +``` +urlpatterns = [ + ..., + url(r'^simple_url$', simple_view, name='simple_url_name'), +``` + +Place ajax_table tags where tables are to be displayed: + +``` +{% ajax_table "unique_div_id" "simple_url_name" %} +``` + +## Usage + +The ajax_table tag requires at least two parameters. + +- The first parameter is a unique id. This id should not used for any other element on the page. The ajax_table tag will create a div element with this id to contain the table. +- The second parameter is the name of the url that is mapped to the table view. +- Any additional non-keyword arguments will be passed as positional arguments to the url. If used this will prevent the passing of keyword arguments to the url. +- The template keyword argument can be used to replace the django-ajax-tables javascript with custom javascript. +- Any additional keyword arguments will be passed as keyword aguments to the url but only if there were no positional arguments passed to the url. + +### Example with positional arguments +``` +{% ajax_table "unique_div_id" "simple_url_name" arg1 arg2 %} +``` + +### Example with keyword arguments +``` +{% ajax_table "unique_div_id" "simple_url_name" filter1=arg1 filter2=arg2 %} +``` + +## Javascript API + +The table loading function can also be caled direcly in javascript. +This can be useful if the data needs to be refreshed. +The function name will be in the form of *update_\<id\>* where *\<id\>* is the unique id parameter that was pased in to the ajax_table tag. + +The function can take two optional parameters. +The first parameter is a query string which will appened to the url. +This defaults to an empty string. +The second parameter is a url which will be used by the ajax call to fetch the table data. +This defaults to the original url as created by the ajax_table tag. + +Together these two parameters allow the table data to be loaded with different query parameters or from entirly different urls. + + + + + +%package help +Summary: Development documents and examples for django-ajax-tables +Provides: python3-django-ajax-tables-doc +%description help +# A Django app to add Ajax capabilities to django-tables2 + +This app is an enhancement for [django-tables2](https://pypi.python.org/pypi/django-tables2). It adds Ajax capability to allow tables to be sorted and paged without reloading the entire page. + +- On Pypi [django-ajax-tables](https://pypi.org/project/django-ajax-tables/) +- On Git [django-ajax-tables](https://github.com/KiwiTrinsic/django-ajax-tables) + +## Requirements + +- Python 3 +- Django (version 2+) +- [django-tables2](https://pypi.python.org/pypi/django-tables2) + +## Installation + +Install with pip: + +```python +pip install django-ajax-tables +``` + +Add django_ajax_tables to the settings.py installed_apps: + +```python +INSTALLED_APPS = ( + ..., + "django_ajax_tables", +) +``` + +## Features + +This app adds a new Django template tag {% ajax_table %}. +This is a replacement for the django-tables2 {% render_table %} tag. + +To implement the Ajax functionality you will need to add a view which returns the raw table html (example shown below). +The {% ajax_table %} tag will use that html to render the table on the page. +It will also configure the table sorting and pagination links to perform Ajax calls and in-place updates of the table. +This will allow you to sort and page through the table without the entire webpage refreshing on each click. + +This will not affect any LinkColumns that have been added to the table layout. + +## Example + +Create a django-tables2 table and wire it to a model as normal: + +```python +import django_tables2 as tables + +class SimpleTable(tables.Table): + class Meta: + model = Simple +``` + +Create a view that exposes the table as raw html: + +```python +from django.http import HttpResponse +from django_tables2 import RequestConfig + +def simple_view(request): + simple_table = SimpleTable(Simple.objects.all()) + RequestConfig(request).configure(simple_table) + return HttpResponse(simple_table.as_html(request)) +``` +Create a url mapping for the view: + +``` +urlpatterns = [ + ..., + url(r'^simple_url$', simple_view, name='simple_url_name'), +``` + +Place ajax_table tags where tables are to be displayed: + +``` +{% ajax_table "unique_div_id" "simple_url_name" %} +``` + +## Usage + +The ajax_table tag requires at least two parameters. + +- The first parameter is a unique id. This id should not used for any other element on the page. The ajax_table tag will create a div element with this id to contain the table. +- The second parameter is the name of the url that is mapped to the table view. +- Any additional non-keyword arguments will be passed as positional arguments to the url. If used this will prevent the passing of keyword arguments to the url. +- The template keyword argument can be used to replace the django-ajax-tables javascript with custom javascript. +- Any additional keyword arguments will be passed as keyword aguments to the url but only if there were no positional arguments passed to the url. + +### Example with positional arguments +``` +{% ajax_table "unique_div_id" "simple_url_name" arg1 arg2 %} +``` + +### Example with keyword arguments +``` +{% ajax_table "unique_div_id" "simple_url_name" filter1=arg1 filter2=arg2 %} +``` + +## Javascript API + +The table loading function can also be caled direcly in javascript. +This can be useful if the data needs to be refreshed. +The function name will be in the form of *update_\<id\>* where *\<id\>* is the unique id parameter that was pased in to the ajax_table tag. + +The function can take two optional parameters. +The first parameter is a query string which will appened to the url. +This defaults to an empty string. +The second parameter is a url which will be used by the ajax call to fetch the table data. +This defaults to the original url as created by the ajax_table tag. + +Together these two parameters allow the table data to be loaded with different query parameters or from entirly different urls. + + + + + +%prep +%autosetup -n django_ajax_tables-1.1.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-ajax-tables -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.1-1 +- Package Spec generated |