cooldown period for user exports
add USER_EXPORT_COOLDOWN_HOURS setting for controlling user exports and imports
This commit is contained in:
parent
20114b0059
commit
836127f369
5 changed files with 32 additions and 23 deletions
|
@ -23,7 +23,7 @@ from bookwyrm.importers import (
|
|||
OpenLibraryImporter,
|
||||
)
|
||||
from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob
|
||||
from bookwyrm.settings import PAGE_LENGTH
|
||||
from bookwyrm.settings import PAGE_LENGTH, USER_EXPORT_COOLDOWN_HOURS
|
||||
from bookwyrm.utils.cache import get_or_set
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
|
@ -142,11 +142,16 @@ class UserImport(View):
|
|||
jobs = BookwyrmImportJob.objects.filter(user=request.user).order_by(
|
||||
"-created_date"
|
||||
)
|
||||
hours = USER_EXPORT_COOLDOWN_HOURS
|
||||
allowed = jobs.first().created_date < timezone.now() - datetime.timedelta(hours=hours)
|
||||
next_available = jobs.first().created_date + datetime.timedelta(hours=hours) if not allowed else False
|
||||
paginated = Paginator(jobs, PAGE_LENGTH)
|
||||
page = paginated.get_page(request.GET.get("page"))
|
||||
data = {
|
||||
"import_form": forms.ImportUserForm(),
|
||||
"jobs": page,
|
||||
"user_import_hours": hours,
|
||||
"next_available": next_available,
|
||||
"page_range": paginated.get_elided_page_range(
|
||||
page.number, on_each_side=2, on_ends=1
|
||||
),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
""" Let users export their book data """
|
||||
from datetime import timedelta
|
||||
import csv
|
||||
import io
|
||||
|
||||
|
@ -7,11 +8,12 @@ from django.core.paginator import Paginator
|
|||
from django.db.models import Q
|
||||
from django.http import HttpResponse
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils import timezone
|
||||
from django.views import View
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.shortcuts import redirect
|
||||
|
||||
from bookwyrm import models
|
||||
from bookwyrm import models, settings
|
||||
from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob
|
||||
from bookwyrm.settings import PAGE_LENGTH
|
||||
|
||||
|
@ -101,10 +103,15 @@ class ExportUser(View):
|
|||
jobs = BookwyrmExportJob.objects.filter(user=request.user).order_by(
|
||||
"-created_date"
|
||||
)
|
||||
hours = settings.USER_EXPORT_COOLDOWN_HOURS
|
||||
allowed = jobs.first().created_date < timezone.now() - timedelta(hours=hours)
|
||||
next_available = jobs.first().created_date + timedelta(hours=hours) if not allowed else False
|
||||
|
||||
paginated = Paginator(jobs, PAGE_LENGTH)
|
||||
page = paginated.get_page(request.GET.get("page"))
|
||||
data = {
|
||||
"jobs": page,
|
||||
"next_available": next_available,
|
||||
"page_range": paginated.get_elided_page_range(
|
||||
page.number, on_each_side=2, on_ends=1
|
||||
),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue