Waiting list function: WaitingListEntry model for people that can be invited in the future

This commit is contained in:
Benjamin Bach 2024-07-14 19:18:33 +02:00
parent d31f62ebb4
commit 1405a95094
No known key found for this signature in database
GPG key ID: 486F0D69C845416E
6 changed files with 64 additions and 10 deletions

4
.gitignore vendored
View file

@ -8,3 +8,7 @@ db.sqlite3
.env
venv/
.venv/
# collectstatic
src/static/

View file

@ -1,5 +1,5 @@
default_language_version:
python: python3.12
python: python3
exclude: ^.*\b(migrations)\b.*$
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
@ -15,8 +15,8 @@ repos:
- id: check-toml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: 'v0.4.4'
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: 'v0.5.2'
hooks:
- id: ruff
args:

View file

@ -115,7 +115,7 @@ extend-exclude = [
line-length = 120
[tool.ruff.lint]
select = ["ALL"]
# select = ["ALL"]
ignore = [
"G004", # Logging statement uses f-string
"ANN101", # Missing type annotation for `self` in method

View file

@ -1,20 +1,23 @@
from django.contrib import admin
from .models import Membership
from .models import MembershipType
from .models import SubscriptionPeriod
from . import models
@admin.register(Membership)
@admin.register(models.Membership)
class MembershipAdmin(admin.ModelAdmin):
pass
@admin.register(MembershipType)
@admin.register(models.MembershipType)
class MembershipTypeAdmin(admin.ModelAdmin):
pass
@admin.register(SubscriptionPeriod)
@admin.register(models.SubscriptionPeriod)
class SubscriptionPeriodAdmin(admin.ModelAdmin):
pass
@admin.register(models.WaitingListEntry)
class WaitingListEntryAdmin(admin.ModelAdmin):
pass

View file

@ -0,0 +1,32 @@
# Generated by Django 5.0.6 on 2024-07-14 16:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('membership', '0005_member'),
]
operations = [
migrations.CreateModel(
name='WaitingListEntry',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('modified', models.DateTimeField(auto_now=True, verbose_name='modified')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='created')),
('email', models.EmailField(max_length=254)),
('geography', models.CharField(blank=True, null=True, verbose_name='geography')),
('comment', models.TextField(blank=True)),
],
options={
'verbose_name': 'waiting list entry',
'verbose_name_plural': 'waiting list entries',
},
),
migrations.AlterModelOptions(
name='membership',
options={'verbose_name': 'medlemskab', 'verbose_name_plural': 'medlemskaber'},
),
]

View file

@ -111,3 +111,18 @@ class MembershipType(CreatedModifiedAbstract):
def __str__(self) -> str:
return self.name
class WaitingListEntry(CreatedModifiedAbstract):
"""People who for some reason could want to be added to a waiting list and invited to join later."""
email = models.EmailField()
geography = models.CharField(verbose_name=_("geography"), blank=True, null=True)
comment = models.TextField(blank=True)
def __str__(self) -> str:
return self.email
class Meta:
verbose_name = _("waiting list entry")
verbose_name_plural = _("waiting list entries")