Skip to content
Snippets Groups Projects
Commit 18e0f108 authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

split stored files, ID-based names

parent e4f9ff78
Branches
No related tags found
No related merge requests found
Pipeline #12281 passed
# Generated by Django 4.1.4 on 2023-04-10 21:45
import contracts.models
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contracts', '0032_alter_signee_address_country'),
]
operations = [
migrations.AlterField(
model_name='contractfile',
name='file',
field=models.FileField(upload_to=contracts.models.get_contract_file_loaction, verbose_name='Soubor'),
),
]
import datetime
import os
import mimetypes
import typing
from django.conf import settings
......@@ -740,6 +742,29 @@ class Contract(NameStrMixin, models.Model):
] + OwnPermissionsMixin.Meta.permissions
def get_contract_file_loaction(instance, filename):
mimetypes_instance = mimetypes.MimeTypes()
current_time = datetime.datetime.today()
guessed_type = mimetypes_instance.guess_type(filename, strict=False)[0]
extension = ""
if guessed_type is not None:
for mapper in mimetypes_instance.types_map_inv:
if guessed_type not in mapper:
continue
extension = mapper[guessed_type]
break
return (
"_private/"
f"{current_time.year}/{current_time.month}/{current_time.day}/"
f"{str(instance.id)}{extension}"
)
class ContractFile(NameStrMixin, models.Model):
name = models.CharField(
max_length=128,
......@@ -754,7 +779,7 @@ class ContractFile(NameStrMixin, models.Model):
file = models.FileField(
verbose_name="Soubor",
upload_to="_private/",
upload_to=get_contract_file_loaction,
)
contract = models.ForeignKey(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment