fix language for tasks and top10
This commit is contained in:
parent
efe6536423
commit
564146d317
2 changed files with 19 additions and 10 deletions
|
@ -1,8 +1,11 @@
|
||||||
|
from auditlog.context import set_actor
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from django.db.models import Count, F, Q
|
from django.db.models import Count, F, Q
|
||||||
|
from django.utils.translation import gettext_lazy as t
|
||||||
|
|
||||||
from catalog.models import *
|
from catalog.models import *
|
||||||
from journal.models import *
|
from journal.models import *
|
||||||
|
from users.middlewares import activate_language_for_user
|
||||||
from users.models import *
|
from users.models import *
|
||||||
from users.models import APIdentity
|
from users.models import APIdentity
|
||||||
|
|
||||||
|
@ -19,6 +22,8 @@ class Command(BaseCommand):
|
||||||
|
|
||||||
def handle(self, year: int, top: int, save: str, **options): # type: ignore
|
def handle(self, year: int, top: int, save: str, **options): # type: ignore
|
||||||
collector = APIdentity.objects.get(username=save, local=True) if save else None
|
collector = APIdentity.objects.get(username=save, local=True) if save else None
|
||||||
|
if collector:
|
||||||
|
activate_language_for_user(collector.user)
|
||||||
types = [
|
types = [
|
||||||
[Edition],
|
[Edition],
|
||||||
[Movie],
|
[Movie],
|
||||||
|
@ -31,7 +36,7 @@ class Command(BaseCommand):
|
||||||
mapping = item_content_types()
|
mapping = item_content_types()
|
||||||
for typ in types:
|
for typ in types:
|
||||||
cids = [mapping[t] for t in typ]
|
cids = [mapping[t] for t in typ]
|
||||||
title = f"{year}年标记最多的{typ[0].category.label}"
|
title = f"{year}年标记最多的{t(typ[0].category.label)}"
|
||||||
print(title)
|
print(title)
|
||||||
top10 = list(
|
top10 = list(
|
||||||
ShelfMember.objects.filter(
|
ShelfMember.objects.filter(
|
||||||
|
@ -44,15 +49,16 @@ class Command(BaseCommand):
|
||||||
items = [(Item.objects.get(pk=i["item"]), i["c"]) for i in top10]
|
items = [(Item.objects.get(pk=i["item"]), i["c"]) for i in top10]
|
||||||
_ = [print(c, i.display_title, i.absolute_url) for i, c in items]
|
_ = [print(c, i.display_title, i.absolute_url) for i, c in items]
|
||||||
if collector:
|
if collector:
|
||||||
print(f"Saving to {collector}")
|
with set_actor(collector.user):
|
||||||
c, _ = Collection.objects.get_or_create(
|
print(f"Saving to {collector}")
|
||||||
owner=collector,
|
c, _ = Collection.objects.get_or_create(
|
||||||
title=title,
|
owner=collector,
|
||||||
brief="*根据用户标记数统计*",
|
title=title,
|
||||||
defaults={"visibility": 2},
|
brief="*根据用户标记数统计*",
|
||||||
)
|
defaults={"visibility": 2},
|
||||||
for i in items:
|
)
|
||||||
c.append_item(i)
|
for i, cat in items:
|
||||||
|
c.append_item(i)
|
||||||
|
|
||||||
# top10 = list(
|
# top10 = list(
|
||||||
# Comment.objects.filter(
|
# Comment.objects.filter(
|
||||||
|
|
|
@ -6,6 +6,8 @@ from loguru import logger
|
||||||
from typedmodels.models import TypedModel
|
from typedmodels.models import TypedModel
|
||||||
from user_messages import api as msg
|
from user_messages import api as msg
|
||||||
|
|
||||||
|
from users.middlewares import activate_language_for_user
|
||||||
|
|
||||||
from .user import User
|
from .user import User
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,6 +63,7 @@ class Task(TypedModel):
|
||||||
return
|
return
|
||||||
task.state = cls.States.started
|
task.state = cls.States.started
|
||||||
task.save()
|
task.save()
|
||||||
|
activate_language_for_user(task.user)
|
||||||
with set_actor(task.user):
|
with set_actor(task.user):
|
||||||
try:
|
try:
|
||||||
task.run()
|
task.run()
|
||||||
|
|
Loading…
Add table
Reference in a new issue