Metadata-Version: 2.4
Name: django-admin-inline-paginator-plus
Version: 0.1.5
Summary: The 'Django Admin Inline Paginator Plus' is simple way to paginate your inlines in Django admin
Author-email: Shinneider Libanio da Silva <shinneider-libanio@hotmail.com>, Dmytro Litvinov <me@dmytrolitvinov.com>
Maintainer-email: Dmytro Litvinov <me@dmytrolitvinov.com>
License: MIT
Project-URL: Homepage, https://github.com/DmytroLitvinov/django-admin-inline-paginator-plus
Project-URL: Issues, https://github.com/DmytroLitvinov/django-admin-inline-paginator-plus/issues
Project-URL: Changelog, https://github.com/DmytroLitvinov/django-admin-inline-paginator-plus/blob/master/CHANGELOG.md
Keywords: django,admin,paginator,inlines,pagination
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Framework :: Django :: 5.1
Classifier: Framework :: Django :: 5.2
Classifier: Framework :: Django :: 6.0
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django
Provides-Extra: dev
Requires-Dist: coverage; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

Django Admin Inline Paginator Plus ⏩
=====================================

**🍴 This is a forked and updated version based on original library [django-admin-inline-paginator](https://github.com/shinneider/django-admin-inline-paginator).**

> *As for 10.07.2024 nobody took responsibility, so I decided to take it since we need additional functionlity like AJAX for pagination.*

The **"Django Admin Inline Paginator Plus"** is simple way to paginate your inline in django admin

To keep Django ecosystem fresh and updated, please share your love and support, click `Star` 🫶

## Features
- **Easy Inline Pagination:** Quickly paginate inlines in the Django admin.
- **AJAX Support:** Smooth and dynamic pagination without page reloads with `htmx`.
- **Multiple Inline Pagination:** Manage multiple paginated inlines seamlessly.


Here's a screenshot of the paginated inlines in action:

![Django Admin Inline Paginator Plus screenshot](https://github.com/DmytroLitvinov/django-admin-inline-paginator-plus/blob/bd4d0eb435ae86b37473044a6d192405c3f0c86f/example/django-admin-inline-paginator-plus.png "Screenshot of Django Admin Inline Paginator Plus")


# Install:

Install the package via pip:

```bash
pip install django-admin-inline-paginator-plus
```

# Usage:

1. Add to your INSTALLED_APPS, in settings.py:

   ```python
   INSTALLED_APPS = [
       ...
       'django_admin_inline_paginator_plus',
       ...
   ]
   ```
2. Create your model inline:

   You can use `TabularInlinePaginated` ot `StackedInlinePaginated`. In our example we use `TabularInlinePaginated`.

   ```python
   from django_admin_inline_paginator_plus.admin import TabularInlinePaginated

   class ModelWithFKAdminInline(TabularInlinePaginated):
       model = ModelWithFK
       fields = (...)
       per_page = 5
   ```

3. Create main model admin and use inline:

   ```python
   @register(YourModel)
   class YourModelAdmin(ModelAdmin):
       model = YourModel
       fields = (...)
       inlines = (ModelWithFKAdminInline, )
   ```

# Advanced Usage:

1. Paginate multiples inlines:

   ```python
   from django_admin_inline_paginator_plus.admin import TabularInlinePaginated, StackedInlinePaginated

   class ModelWithFKInline(TabularInlinePaginated):
      model = ModelWithFK
      fields = ('name', 'active')
      per_page = 2
      pagination_key = 'page-model'  # make sure it's unique for page inline

   class AnotherModelWithFKInline(StackedInlinePaginated):
      model = AnotherModelWithFK
      fields = ('name', 'active')
      per_page = 2
      pagination_key = 'page-another-model'  # make sure it's unique for page inline
   ```

2. Use inlines from step 1. and add to your main model admin:

   ```python
   @register(YourModel)
   class YourModelAdmin(ModelAdmin):
       model = YourModel
       fields = (...)
       inlines = (ModelWithFKAdminInline, AnotherModelWithFKInline)
   ```
