redo import for user
This commit is contained in:
parent
f564508a64
commit
5274614294
2 changed files with 39 additions and 1 deletions
|
@ -67,6 +67,23 @@ class DoubanImporter:
|
|||
self.user.preference.import_status["douban_failed"] = self.failed
|
||||
self.user.preference.save(update_fields=["import_status"])
|
||||
|
||||
@classmethod
|
||||
def reset(cls, user):
|
||||
user.preference.import_status["douban_pending"] = 0
|
||||
user.preference.save(update_fields=["import_status"])
|
||||
|
||||
@classmethod
|
||||
def redo(cls, user):
|
||||
file = user.preference.import_status["douban_file"]
|
||||
imp = cls(
|
||||
user,
|
||||
user.preference.import_status["douban_visibility"],
|
||||
user.preference.import_status["douban_mode"],
|
||||
)
|
||||
imp.file = file
|
||||
jid = f"Douban_{user.id}_{os.path.basename(file)}_redo"
|
||||
django_rq.get_queue("import").enqueue(imp.import_from_file_task, job_id=jid)
|
||||
|
||||
def import_from_file(self, uploaded_file):
|
||||
try:
|
||||
wb = openpyxl.open(
|
||||
|
@ -88,7 +105,6 @@ class DoubanImporter:
|
|||
)
|
||||
except Exception:
|
||||
return False
|
||||
# self.import_from_file_task(file, user, visibility)
|
||||
return True
|
||||
|
||||
mark_sheet_config = {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
from django.core.management.base import BaseCommand
|
||||
import pprint
|
||||
from journal.models import *
|
||||
from journal.importers.douban import DoubanImporter
|
||||
from users.models import User
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
@ -12,6 +14,16 @@ class Command(BaseCommand):
|
|||
action="store_true",
|
||||
help="purge invalid data (visibility=99)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--douban-import-redo",
|
||||
action="store",
|
||||
help="reimport for user id",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--douban-import-reset",
|
||||
action="store",
|
||||
help="reset for user id",
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
if options["cleanup"]:
|
||||
|
@ -20,4 +32,14 @@ class Command(BaseCommand):
|
|||
self.stdout.write(f"Cleaning up {cls}...")
|
||||
cls.objects.filter(visibility=99).delete()
|
||||
|
||||
if options["douban_import_redo"]:
|
||||
user = User.objects.get(pk=options["douban_import_redo"])
|
||||
self.stdout.write(f"Redo import for {user}...")
|
||||
DoubanImporter.redo(user)
|
||||
|
||||
if options["douban_import_reset"]:
|
||||
user = User.objects.get(pk=options["douban_import_reset"])
|
||||
self.stdout.write(f"Reset import for {user}...")
|
||||
DoubanImporter.reset(user)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(f"Done."))
|
||||
|
|
Loading…
Add table
Reference in a new issue