This commit is contained in:
jonaswinkler 2020-12-14 02:19:53 +01:00
parent 1343e4c99f
commit 251fc582e9
2 changed files with 26 additions and 2 deletions

View File

@ -121,7 +121,11 @@ def generate_filename(doc, counter=0):
added_month=doc.added.month if doc.added else "none",
added_day=doc.added.day if doc.added else "none",
tags=tags,
)
tag_list=",".join([tag.name for tag in doc.tags.all()])
).strip()
path = path.strip(os.sep)
except (ValueError, KeyError, IndexError):
logging.getLogger(__name__).warning(
f"Invalid PAPERLESS_FILENAME_FORMAT: "

View File

@ -13,7 +13,7 @@ from django.test import TestCase, override_settings
from .utils import DirectoriesMixin
from ..file_handling import generate_filename, create_source_path_directory, delete_empty_directories, \
generate_unique_filename
from ..models import Document, Correspondent
from ..models import Document, Correspondent, Tag
class TestFileHandling(DirectoriesMixin, TestCase):
@ -267,6 +267,26 @@ class TestFileHandling(DirectoriesMixin, TestCase):
self.assertEqual(generate_filename(document),
"none.pdf")
@override_settings(PAPERLESS_FILENAME_FORMAT="{title} {tag_list}")
def test_tag_list(self):
doc = Document.objects.create(title="doc1", mime_type="application/pdf")
doc.tags.create(name="tag2")
doc.tags.create(name="tag1")
self.assertEqual(generate_filename(doc), "doc1 tag1,tag2.pdf")
doc = Document.objects.create(title="doc2", checksum="B", mime_type="application/pdf")
self.assertEqual(generate_filename(doc), "doc2.pdf")
@override_settings(PAPERLESS_FILENAME_FORMAT="//etc/something/{title}")
def test_filename_relative(self):
doc = Document.objects.create(title="doc1", mime_type="application/pdf")
doc.filename = generate_filename(doc)
doc.save()
self.assertEqual(doc.source_path, os.path.join(settings.ORIGINALS_DIR, "etc", "something", "doc1.pdf"))
@override_settings(PAPERLESS_FILENAME_FORMAT="{correspondent}/{correspondent}/{correspondent}")
def test_nested_directory_cleanup(self):
document = Document()