migrate from django deprecation

This commit is contained in:
Your Name 2024-05-29 10:48:45 -04:00 committed by Henri Dickson
parent 6ad51512f3
commit a50bd14277
8 changed files with 27 additions and 28 deletions

View file

@ -8,11 +8,11 @@ from auditlog.models import AuditlogHistoryField, LogEntry
from django.conf import settings from django.conf import settings
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.files.uploadedfile import SimpleUploadedFile from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.signing import b62_decode, b62_encode
from django.db import connection, models from django.db import connection, models
from django.db.models import QuerySet, Value from django.db.models import QuerySet, Value
from django.template.defaultfilters import default from django.template.defaultfilters import default
from django.utils import timezone from django.utils import timezone
from django.utils.baseconv import base62
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from loguru import logger from loguru import logger
from ninja import Field, Schema from ninja import Field, Schema
@ -475,7 +475,7 @@ class Item(PolymorphicModel):
@property @property
def uuid(self): def uuid(self):
return base62.encode(self.uid.int).zfill(22) return b62_encode(self.uid.int).zfill(22)
@property @property
def url(self): def url(self):
@ -505,7 +505,7 @@ class Item(PolymorphicModel):
if r: if r:
b62 = r[0] b62 = r[0]
try: try:
item = cls.objects.get(uid=uuid.UUID(int=base62.decode(b62))) item = cls.objects.get(uid=uuid.UUID(int=b62_decode(b62)))
except Exception: except Exception:
item = None item = None
return item return item

View file

@ -5,9 +5,9 @@ from typing import TYPE_CHECKING
from discord import SyncWebhook from discord import SyncWebhook
from django.conf import settings from django.conf import settings
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.core.signing import b62_decode, b62_encode
from django.http import Http404, HttpRequest, HttpResponseRedirect, QueryDict from django.http import Http404, HttpRequest, HttpResponseRedirect, QueryDict
from django.utils import timezone from django.utils import timezone
from django.utils.baseconv import base62
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from .config import PAGE_LINK_NUMBER from .config import PAGE_LINK_NUMBER
@ -195,7 +195,7 @@ def GenerateDateUUIDMediaFilePath(filename, path_root):
def get_uuid_or_404(uuid_b62): def get_uuid_or_404(uuid_b62):
try: try:
i = base62.decode(uuid_b62) i = b62_decode(uuid_b62)
return uuid.UUID(int=i) return uuid.UUID(int=i)
except ValueError: except ValueError:
raise Http404("Malformed Base62 UUID") raise Http404("Malformed Base62 UUID")

View file

@ -4,10 +4,10 @@ from functools import cached_property
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from django.conf import settings from django.conf import settings
from django.core.signing import b62_decode, b62_encode
from django.db import connection, models from django.db import connection, models
from django.db.models import Avg, CharField, Count, Q from django.db.models import Avg, CharField, Count, Q
from django.utils import timezone from django.utils import timezone
from django.utils.baseconv import base62
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from polymorphic.models import PolymorphicModel from polymorphic.models import PolymorphicModel
@ -125,7 +125,7 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
@property @property
def uuid(self): def uuid(self):
return base62.encode(self.uid.int) return b62_encode(self.uid.int)
@property @property
def url(self): def url(self):
@ -177,7 +177,7 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
if r: if r:
b62 = r[0] b62 = r[0]
try: try:
obj = cls.objects.get(uid=uuid.UUID(int=base62.decode(b62))) obj = cls.objects.get(uid=uuid.UUID(int=b62_decode(b62)))
except Exception: except Exception:
obj = None obj = None
return obj return obj

View file

@ -10,7 +10,6 @@ from django.core.validators import MaxValueValidator, MinValueValidator, RegexVa
from django.db import connection, models from django.db import connection, models
from django.db.models import Avg, Count, Q from django.db.models import Avg, Count, Q
from django.utils import timezone from django.utils import timezone
from django.utils.baseconv import base62
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from loguru import logger from loguru import logger
from markdownx.models import MarkdownxField from markdownx.models import MarkdownxField

View file

@ -1,5 +1,5 @@
from django.core.signing import b62_decode, b62_encode
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from django.utils.baseconv import base62
from catalog.collection.models import Collection from catalog.collection.models import Collection
from catalog.models import Item from catalog.models import Item
@ -9,54 +9,54 @@ from .models import *
def book(request, id): def book(request, id):
link = get_object_or_404(BookLink, old_id=id) link = get_object_or_404(BookLink, old_id=id)
return redirect(f"/book/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/book/{b62_encode(link.new_uid.int)}", permanent=True)
def movie(request, id): def movie(request, id):
link = get_object_or_404(MovieLink, old_id=id) link = get_object_or_404(MovieLink, old_id=id)
return redirect(f"/movie/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/movie/{b62_encode(link.new_uid.int)}", permanent=True)
def album(request, id): def album(request, id):
link = get_object_or_404(AlbumLink, old_id=id) link = get_object_or_404(AlbumLink, old_id=id)
return redirect(f"/album/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/album/{b62_encode(link.new_uid.int)}", permanent=True)
def song(request, id): def song(request, id):
link = get_object_or_404(SongLink, old_id=id) link = get_object_or_404(SongLink, old_id=id)
return redirect(f"/album/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/album/{b62_encode(link.new_uid.int)}", permanent=True)
def game(request, id): def game(request, id):
link = get_object_or_404(GameLink, old_id=id) link = get_object_or_404(GameLink, old_id=id)
return redirect(f"/game/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/game/{b62_encode(link.new_uid.int)}", permanent=True)
def collection(request, id): def collection(request, id):
link = get_object_or_404(CollectionLink, old_id=id) link = get_object_or_404(CollectionLink, old_id=id)
return redirect(f"/collection/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/collection/{b62_encode(link.new_uid.int)}", permanent=True)
def book_review(request, id): def book_review(request, id):
link = get_object_or_404(ReviewLink, module="book", old_id=id) link = get_object_or_404(ReviewLink, module="book", old_id=id)
return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True)
def movie_review(request, id): def movie_review(request, id):
link = get_object_or_404(ReviewLink, module="movie", old_id=id) link = get_object_or_404(ReviewLink, module="movie", old_id=id)
return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True)
def album_review(request, id): def album_review(request, id):
link = get_object_or_404(ReviewLink, module="album", old_id=id) link = get_object_or_404(ReviewLink, module="album", old_id=id)
return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True)
def song_review(request, id): def song_review(request, id):
link = get_object_or_404(ReviewLink, module="song", old_id=id) link = get_object_or_404(ReviewLink, module="song", old_id=id)
return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True)
def game_review(request, id): def game_review(request, id):
link = get_object_or_404(ReviewLink, module="game", old_id=id) link = get_object_or_404(ReviewLink, module="game", old_id=id)
return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True)

View file

@ -1,10 +1,10 @@
black~=22.12.0 black~=22.12.0
coverage coverage
django-debug-toolbar django-debug-toolbar
django-stubs~=4.2.7 django-stubs
djlint~=1.34.0 djlint~=1.34.0
isort~=5.13.2 isort~=5.13.2
lxml-stubs lxml-stubs
pre-commit pre-commit
pyright==1.1.350 pyright==1.1.365
ruff ruff

View file

@ -1,6 +1,7 @@
import time import time
from contextlib import nullcontext from contextlib import nullcontext
from datetime import datetime, timezone from datetime import datetime
from datetime import timezone as dttz
from django.conf import settings from django.conf import settings
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
@ -23,7 +24,7 @@ from users.models import User as NeoUser
BATCH_SIZE = 1000 BATCH_SIZE = 1000
TIMELINE_START = datetime.datetime(2023, 7, 1, tzinfo=timezone.utc) TIMELINE_START = datetime.datetime(2023, 7, 1, tzinfo=dttz.utc)
def content_type_id(cls): def content_type_id(cls):

View file

@ -10,13 +10,12 @@ from django.contrib.auth.decorators import login_required
from django.core.cache import cache from django.core.cache import cache
from django.core.exceptions import BadRequest, ObjectDoesNotExist from django.core.exceptions import BadRequest, ObjectDoesNotExist
from django.core.mail import send_mail from django.core.mail import send_mail
from django.core.signing import TimestampSigner from django.core.signing import TimestampSigner, b62_decode, b62_encode
from django.core.validators import EmailValidator from django.core.validators import EmailValidator
from django.db.models import Count, Q from django.db.models import Count, Q
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
from django.utils.baseconv import base62
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from loguru import logger from loguru import logger
@ -86,7 +85,7 @@ def connect(request):
{"msg": _("Invalid email address")}, {"msg": _("Invalid email address")},
) )
user = User.objects.filter(email__iexact=login_email).first() user = User.objects.filter(email__iexact=login_email).first()
code = base62.encode(random.randint(pow(62, 4), pow(62, 5) - 1)) code = b62_encode(random.randint(pow(62, 4), pow(62, 5) - 1))
cache.set(f"login_{code}", login_email, timeout=60 * 15) cache.set(f"login_{code}", login_email, timeout=60 * 15)
request.session["login_email"] = login_email request.session["login_email"] = login_email
action = "login" if user else "register" action = "login" if user else "register"