Coverage for sm / migrations / 0002_invitation.py: 100%
8 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
1from django.conf import settings
2from django.db import migrations, models
3import django.db.models.deletion
4import uuid
5from django.utils import timezone
8class Migration(migrations.Migration):
9 dependencies = [
10 ("sm", "0001_initial"),
11 ("auth", "0012_alter_user_first_name_max_length"),
12 ]
14 operations = [
15 migrations.CreateModel(
16 name="Invitation",
17 fields=[
18 (
19 "id",
20 models.BigAutoField(
21 auto_created=True,
22 primary_key=True,
23 serialize=False,
24 verbose_name="ID",
25 ),
26 ),
27 ("email", models.EmailField(max_length=254)),
28 (
29 "token",
30 models.UUIDField(default=uuid.uuid4, unique=True),
31 ),
32 ("created_at", models.DateTimeField(default=timezone.now)),
33 ("accepted_at", models.DateTimeField(blank=True, null=True)),
34 (
35 "group",
36 models.ForeignKey(
37 on_delete=django.db.models.deletion.CASCADE,
38 related_name="invitations",
39 to="auth.group",
40 ),
41 ),
42 (
43 "created_by",
44 models.ForeignKey(
45 null=True,
46 on_delete=django.db.models.deletion.SET_NULL,
47 related_name="invitations_sent",
48 to=settings.AUTH_USER_MODEL,
49 ),
50 ),
51 ],
52 options={
53 "verbose_name": "Invitation",
54 "verbose_name_plural": "Invitations",
55 },
56 ),
57 migrations.AddConstraint(
58 model_name="invitation",
59 constraint=models.UniqueConstraint(
60 fields=("email", "group"), name="sm_invitation_email_group_unique"
61 ),
62 ),
63 ]