Skip to content

Commit b409c44

Browse files
author
Filip Kula
committed
fix: remove polish characters from filename
1 parent 6091423 commit b409c44

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

papers/models.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import os
2-
import re
3-
import textwrap
4-
51
from django.contrib.auth.models import User
62
from django.db import models
73
from django.db.models.signals import pre_delete
84
from django.utils import timezone
95
import textwrap
6+
import unicodedata
7+
import os
8+
import re
109

1110

1211
class NotificationPeriod(models.Model):
@@ -66,12 +65,12 @@ class CoAuthor(models.Model):
6665

6766

6867
def paper_directory_path(instance, filename):
69-
_filename = filename.split('.')
70-
filename = re.sub(r'[^\w\-]', '', _filename[0])
71-
filename = filename.replace(' ', '_')
72-
filename = textwrap.shorten(filename, width=100, placeholder='')
73-
filename += f'.{_filename[-1]}'
74-
return f'paper_files/paperNo.{instance.paper.pk}/{filename}'
68+
name, ext = os.path.splitext(filename)
69+
name = unicodedata.normalize('NFD', name)
70+
name = re.sub(r'[^\w\s-]', '', name, flags=re.ASCII)
71+
name = re.sub(r'\s+', '_', name).strip('_')
72+
name = textwrap.shorten(name, width=100, placeholder='') or 'file'
73+
return f'paper_files/paperNo.{instance.paper.pk}/{name}{ext}'
7574

7675
class UploadedFile(models.Model):
7776
paper = models.ForeignKey(Paper, on_delete=models.CASCADE)

papers/views.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,7 @@ def paper_file_download(request, pk, item):
126126
if request.user == paper.author or request.user.groups.filter(
127127
name='reviewer').exists() or request.user.is_staff:
128128
document = UploadedFile.objects.get(pk=item)
129-
decoded_file_url = unquote(document.file.url)
130-
filepath = str(BASE_DIR) + decoded_file_url
129+
filepath = document.file.path
131130
return serve(request, os.path.basename(filepath), os.path.dirname(filepath))
132131
else:
133132
return redirect('paper-list')

0 commit comments

Comments
 (0)