Metadata-Version: 2.4
Name: django-beta
Version: 0.2.1
Summary: django-beta is a reusable Django application for handling pre-beta signups.
Project-URL: Homepage, https://github.com/revsys/django-beta/
Author-email: Frank Wiles <frank@revsys.com>, Jeff Triplett <jeff@revsys.com>
License-File: AUTHORS.txt
License-File: LICENSE.txt
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
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: Framework :: Django :: 6.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
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: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
Requires-Python: >=3.10
Provides-Extra: lint
Requires-Dist: prek; extra == 'lint'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-django; extra == 'test'
Provides-Extra: testing
Requires-Dist: pytest; extra == 'testing'
Requires-Dist: pytest-cov; extra == 'testing'
Requires-Dist: pytest-django; extra == 'testing'
Description-Content-Type: text/markdown

# django-beta

[![CI](https://github.com/revsys/django-beta/actions/workflows/actions.yml/badge.svg)](https://github.com/revsys/django-beta/actions/workflows/actions.yml)
[![PyPI](https://img.shields.io/pypi/v/django-beta.svg)](https://pypi.org/project/django-beta/)
[![Python versions](https://img.shields.io/pypi/pyversions/django-beta.svg)](https://pypi.org/project/django-beta/)
[![Django versions](https://img.shields.io/pypi/frameworkversions/django/django-beta.svg)](https://pypi.org/project/django-beta/)

`django-beta` is a simple application to help you capture pre-beta interest
with your sites.

By default `django-beta` only captures a user's email address, however you
can alternately set one of these two configuration options:

- `BETA_CAPTURE_FIRST = True` will use a form and require the user to enter
  their first name and email address.
- `BETA_CAPTURE_BOTH = True` will use a form and require the user to enter
  their first name, last name, and email address.

## Installation

Add `beta` to your `INSTALLED_APPS` and run migrations.

Add the following to your `urls.py`:

```python
from django.urls import include, path

urlpatterns = [
    path("beta/", include("beta.urls")),
]
```

Using the example templates provided in the code, create your customized beta
signup templates.

## Managers

The `BetaSignup` model has the following manager methods to help out:

```python
BetaSignup.objects.contacted()
BetaSignup.objects.not_contacted()
BetaSignup.objects.registered()
BetaSignup.objects.not_registered()
```

## Side Effects

`django-beta` listens for a signal on User creation and marks the
corresponding `BetaSignup` entry as `registered`.

## Development

This project uses [nox](https://nox.thea.codes/) and
[just](https://github.com/casey/just) for testing and linting across a matrix
of Python and Django versions.

```shell
just lint          # run pre-commit / ruff via prek
just test          # run the full nox test matrix
just test-latest   # run against the latest Python and Django
```

## TODO

- Admin views to show beta registrations over time
- Management commands to simplify emailing the interested users
