Metadata-Version: 2.4
Name: django-powercrud
Version: 0.3.6
Summary: Advanced CRUD for perfectionists with deadlines. An opinionated Neapolitan extension, with sprinkles.
Author: doctor-cornelius
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: django-htmx<2.0,>=1.23.2
Requires-Dist: django-template-partials<25.0,>=24.4
Requires-Dist: pydantic<3.0,>=2.10.6
Provides-Extra: dev
Requires-Dist: commitizen<4,>=3; extra == 'dev'
Requires-Dist: coverage<8,>=7; extra == 'dev'
Requires-Dist: crispy-bootstrap5<2025,>=2024.10; extra == 'dev'
Requires-Dist: crispy-daisyui<1,>=0.7.0; extra == 'dev'
Requires-Dist: crispy-tailwind<2,>=1.0.3; extra == 'dev'
Requires-Dist: django-crispy-forms<3,>=2.3; extra == 'dev'
Requires-Dist: django-q2<2,>=1.8.0; extra == 'dev'
Requires-Dist: django-redis<7,>=6.0.0; extra == 'dev'
Requires-Dist: django-vite<4,>=3.1.0; extra == 'dev'
Requires-Dist: django<6,>=5.1; extra == 'dev'
Requires-Dist: faker<38,>=37.4.2; extra == 'dev'
Requires-Dist: ipykernel<7,>=6; extra == 'dev'
Requires-Dist: neapolitan<25,>=24.8; extra == 'dev'
Requires-Dist: playwright<2,>=1.55.0; extra == 'dev'
Requires-Dist: psycopg-binary<4,>=3.2.1; extra == 'dev'
Requires-Dist: psycopg<4,>=3.2.1; extra == 'dev'
Requires-Dist: pytest-django<5,>=4.11.1; extra == 'dev'
Requires-Dist: pytest-mock<4,>=3.14.0; extra == 'dev'
Requires-Dist: pytest-playwright<1,>=0.7.1; extra == 'dev'
Requires-Dist: pytest<9,>=8.2.1; extra == 'dev'
Requires-Dist: validators<1,>=0.28.3; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-awesome-pages-plugin<3,>=2.9; extra == 'docs'
Requires-Dist: mkdocs-enumerate-headings-plugin<0.7,>=0.6; extra == 'docs'
Requires-Dist: mkdocs-material<10,>=9; extra == 'docs'
Requires-Dist: mkdocs-mermaid2-plugin<1,>=0; extra == 'docs'
Requires-Dist: mkdocs<2,>=1; extra == 'docs'
Description-Content-Type: text/markdown

# Django PowerCRUD

**Advanced CRUD for perfectionists with deadlines. An opinionated extension of [Neapolitan](https://github.com/carltongibson/neapolitan).**

## What is PowerCRUD?

The [`neapolitan`](https://github.com/carltongibson/neapolitan/) package gives you a solid foundation for Django CRUD views. But you still need to add filtering, bulk operations, modern UX features, and styling yourself.

PowerCRUD comes with these features built-in, specifically for user-facing CRUD interfaces. Use what you need, customize what you want.

> ℹ️ **Status**
> 
> PowerCRUD is still evolving, but now ships with a comprehensive pytest suite (including Playwright UI smoke tests). Expect rough edges while APIs settle, and pin the package if you rely on current behaviour.

See the [full documentation](https://doctor-cornelius.github.io/django-powercrud/).

## Key Features

🎯 **Advanced CRUD Operations** - Filtering, pagination, bulk edit/delete (with async) out of the box  
⚡ **Modern Web UX** - HTMX integration, modals, and reactive updates  
🔧 **Developer Friendly** - Convention over configuration with full customization options  
🎨 **Multiple CSS Frameworks** - daisyUI/Tailwind (default) and Bootstrap 5 support  

## Quick Example

Start with basic neapolitan:

```python
# Basic neapolitan
class ProjectView(CRUDView):
    model = Project
```

Add powercrud for advanced features:

```python
# With powercrud
class ProjectView(PowerCRUDMixin, CRUDView):
    model = Project
    fields = ["name", "owner", "status"]
    base_template_path = "core/base.html"
    
    # Modern features
    use_htmx = True
    use_modal = True
    
    # Advanced filtering
    filterset_fields = ["owner", "status", "created_date"]
    
    # Bulk operations
    bulk_fields = ["status", "owner"]
    bulk_delete = True
    
    # Enhanced display
    properties = ["is_overdue", "days_remaining"]
```

## Getting Started

See the **[Quick Start](https://doctor-cornelius.github.io/django-powercrud/getting_started/)** documentation

## Development Setup

PowerCRUD’s development environment is Docker-first. From the project root:

```bash
./runproj up          # build images, start services, enter the Django container
pytest                # run the full test suite, including Playwright smoke tests
```

Dependencies are managed with [`uv`](https://github.com/astral-sh/uv); the Docker image installs them into the system interpreter so you never need to activate a virtual environment inside the container. See the [Dockerised Development Environment guide](https://doctor-cornelius.github.io/django-powercrud/reference/dockerised_dev/) for full details.
