[people] Add a more general people app

This commit is contained in:
2025-07-02 11:00:06 -04:00
parent 0fa831fa42
commit 3548c29f97
6 changed files with 102 additions and 0 deletions

View File

View File

@ -0,0 +1,10 @@
from django.contrib import admin
from people.models import Person
@admin.register(Person)
class PersonAdmin(admin.ModelAdmin):
date_hierarchy = "created"
list_display = ("name", "bgg_username", "bgstat_id")
ordering = ("-created",)
search_fields = ("name",)

View File

@ -0,0 +1,74 @@
# Generated by Django 4.2.19 on 2025-07-02 14:59
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django_extensions.db.fields
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="Person",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"created",
django_extensions.db.fields.CreationDateTimeField(
auto_now_add=True, verbose_name="created"
),
),
(
"modified",
django_extensions.db.fields.ModificationDateTimeField(
auto_now=True, verbose_name="modified"
),
),
(
"name",
models.CharField(blank=True, max_length=100, null=True),
),
(
"bgstat_id",
models.CharField(blank=True, max_length=100, null=True),
),
(
"bgg_username",
models.CharField(blank=True, max_length=100, null=True),
),
(
"lichess_username",
models.CharField(blank=True, max_length=100, null=True),
),
("bio", models.TextField(blank=True, null=True)),
(
"user",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.DO_NOTHING,
to=settings.AUTH_USER_MODEL,
),
),
],
options={
"get_latest_by": "modified",
"abstract": False,
},
),
]

View File

@ -0,0 +1,17 @@
from django.contrib.auth import get_user_model
from django.db import models
from django_extensions.db.models import TimeStampedModel
User = get_user_model()
BNULL = {"blank": True, "null": True}
class Person(TimeStampedModel):
"""A non-system user model that can be optionally associated with a User."""
user = models.ForeignKey(User, on_delete=models.DO_NOTHING, **BNULL)
name = models.CharField(max_length=100, **BNULL)
bgstat_id = models.CharField(max_length=100, **BNULL)
bgg_username = models.CharField(max_length=100, **BNULL)
lichess_username = models.CharField(max_length=100, **BNULL)
bio = models.TextField(**BNULL)

View File

@ -134,6 +134,7 @@ INSTALLED_APPS = [
"encrypted_field",
"profiles",
"scrobbles",
"people",
"videos",
"music",
"podcasts",