mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 06:17:17 +00:00
Classification (#32)
* added some code cleanup for views.py * added some code cleanup for views.py * fixed comics not working in the base directory.
This commit is contained in:
@@ -4,7 +4,8 @@ from pathlib import Path
|
||||
from typing import Union
|
||||
|
||||
from django.conf import settings
|
||||
from django.db.models import Count, Q, F
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models import Count, Q, F, Case, When, PositiveSmallIntegerField
|
||||
from django.utils.http import urlsafe_base64_encode
|
||||
|
||||
from .models import ComicBook, Directory, ComicStatus
|
||||
@@ -112,7 +113,7 @@ class DirFile:
|
||||
self.name = self.obj.file_name
|
||||
|
||||
|
||||
def generate_directory(user, directory=False):
|
||||
def generate_directory(user: User, directory=False):
|
||||
"""
|
||||
:type user: User
|
||||
:type directory: Directory
|
||||
@@ -150,7 +151,12 @@ def generate_directory(user, directory=False):
|
||||
total_read=F('comicstatus__last_read_page'),
|
||||
finished=F('comicstatus__finished'),
|
||||
unread=F('comicstatus__unread'),
|
||||
user=F('comicstatus__user')
|
||||
user=F('comicstatus__user'),
|
||||
classification=Case(
|
||||
When(directory__isnull=True, then=Directory.Classification.C_18),
|
||||
default=F('directory__classification'),
|
||||
output_field=PositiveSmallIntegerField(choices=Directory.Classification.choices)
|
||||
)
|
||||
).filter(Q(user__isnull=True) | Q(user=user.id))
|
||||
|
||||
for directory_obj in dir_list_obj:
|
||||
@@ -170,6 +176,7 @@ def generate_directory(user, directory=False):
|
||||
directory_obj.total = 0
|
||||
directory_obj.total_read = 0
|
||||
files.append(DirFile(directory_obj))
|
||||
files = [file for file in files if file.obj.classification <= user.usermisc.allowed_to_read]
|
||||
|
||||
for file_name in file_list:
|
||||
if file_name.suffix.lower() in [".rar", ".zip", ".cbr", ".cbz", ".pdf"]:
|
||||
|
||||
Reference in New Issue
Block a user