Skip to content

Commit

Permalink
Merge a48ac94 into 91f6284
Browse files Browse the repository at this point in the history
  • Loading branch information
TimJentzsch committed Aug 25, 2022
2 parents 91f6284 + a48ac94 commit 163aa25
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 6 deletions.
83 changes: 83 additions & 0 deletions blossom/api/migrations/0026_auto_20220825_1917.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Generated by Django 3.2.15 on 2022-08-25 17:17

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("api", "0025_accountmigration"),
]

operations = [
migrations.RemoveIndex(
model_name="submission",
name="api_submiss_url_5225f1_idx",
),
migrations.RemoveIndex(
model_name="transcription",
name="author_idx",
),
migrations.RemoveIndex(
model_name="transcription",
name="submission_idx",
),
migrations.RemoveIndex(
model_name="transcription",
name="original_id_idx",
),
migrations.RemoveIndex(
model_name="transcription",
name="url_idx",
),
migrations.AddIndex(
model_name="submission",
index=models.Index(fields=["url"], name="submission_url_idx"),
),
migrations.AddIndex(
model_name="submission",
index=models.Index(fields=["tor_url"], name="submission_tor_url_idx"),
),
migrations.AddIndex(
model_name="submission",
index=models.Index(
fields=["completed_by"], name="submission_completed_by_idx"
),
),
migrations.AddIndex(
model_name="submission",
index=models.Index(
fields=["complete_time"], name="submission_complete_time_idx"
),
),
migrations.AddIndex(
model_name="submission",
index=models.Index(
fields=["create_time"], name="submission_create_time_idx"
),
),
migrations.AddIndex(
model_name="transcription",
index=models.Index(fields=["author"], name="transcription_author_idx"),
),
migrations.AddIndex(
model_name="transcription",
index=models.Index(
fields=["submission"], name="transcription_submission_idx"
),
),
migrations.AddIndex(
model_name="transcription",
index=models.Index(
fields=["original_id"], name="transcription_original_id_idx"
),
),
migrations.AddIndex(
model_name="transcription",
index=models.Index(fields=["url"], name="transcription_url_idx"),
),
migrations.AddIndex(
model_name="transcriptioncheck",
index=models.Index(fields=["status"], name="status_idx"),
),
]
27 changes: 22 additions & 5 deletions blossom/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,18 @@ class Submission(models.Model):
"""

class Meta:
indexes = [models.Index(fields=["url", "tor_url"])]
indexes = [
# For finding posts
models.Index(fields=["url"], name="submission_url_idx"),
# For claim/done
models.Index(fields=["tor_url"], name="submission_tor_url_idx"),
# For gamma counts
models.Index(fields=["completed_by"], name="submission_completed_by_idx"),
# For time-restricted gamma counts (used in transcription checks)
models.Index(fields=["complete_time"], name="submission_complete_time_idx"),
# For identifying old posts
models.Index(fields=["create_time"], name="submission_create_time_idx"),
]

# The ID of the Submission on the "source" platform.
# Note that this field is not used as a primary key; an underlying
Expand Down Expand Up @@ -277,10 +288,10 @@ def get_subreddit_name(self) -> str:
class Transcription(models.Model):
class Meta:
indexes = [
models.Index(fields=["author"], name="author_idx"),
models.Index(fields=["submission"], name="submission_idx"),
models.Index(fields=["original_id"], name="original_id_idx"),
models.Index(fields=["url"], name="url_idx"),
models.Index(fields=["author"], name="transcription_author_idx"),
models.Index(fields=["submission"], name="transcription_submission_idx"),
models.Index(fields=["original_id"], name="transcription_original_id_idx"),
models.Index(fields=["url"], name="transcription_url_idx"),
]

# The Submission for which the Transcription is made.
Expand Down Expand Up @@ -331,6 +342,12 @@ def __str__(self) -> str: # pragma: no cover


class TranscriptionCheck(models.Model):
class Meta:
indexes = [
# For counting checks/comments/warnings
models.Index(fields=["status"], name="status_idx"),
]

class TranscriptionCheckStatus(models.TextChoices):
# The default. The check needs to be claimed by a moderator.
PENDING = "pending"
Expand Down
29 changes: 29 additions & 0 deletions blossom/authentication/migrations/0008_auto_20220825_1917.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Generated by Django 3.2.15 on 2022-08-25 17:17

import django.db.models.functions.text
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("authentication", "0007_rename_blacklisted_blossomuser_blocked"),
]

operations = [
migrations.RemoveIndex(
model_name="blossomuser",
name="authenticat_usernam_22da7a_idx",
),
migrations.AddIndex(
model_name="blossomuser",
index=models.Index(fields=["username"], name="user_username_idx"),
),
migrations.AddIndex(
model_name="blossomuser",
index=models.Index(
django.db.models.functions.text.Lower("username"),
name="user_lower_username_idx",
),
),
]
8 changes: 7 additions & 1 deletion blossom/authentication/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from django.contrib.auth.models import AbstractUser, UserManager
from django.db import models
from django.db.models import QuerySet
from django.db.models.functions import Lower
from django.utils import timezone
from rest_framework_api_key.models import APIKey

Expand Down Expand Up @@ -61,7 +62,12 @@ class BlossomUser(AbstractUser):
"""

class Meta:
indexes = [models.Index(fields=["username", "email"])]
indexes = [
# For looking up users by username
models.Index(fields=["username"], name="user_username_idx"),
# For case-insensitive lookup of users by username
models.Index(Lower("username"), name="user_lower_username_idx"),
]

# The backend class which is used to authenticate the BlossomUser.
backend = "blossom.authentication.backends.EmailBackend"
Expand Down

0 comments on commit 163aa25

Please sign in to comment.