41 lines
958 B
Python
Executable File
41 lines
958 B
Python
Executable File
import os
|
|
|
|
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
from rules import always_allow
|
|
from rules.contrib.models import RulesModel
|
|
|
|
from outbo.apps.core.models import TimestampableDeletableMixin
|
|
|
|
|
|
def filename(self, filename):
|
|
return "/".join(
|
|
(
|
|
"projects",
|
|
self.item.brief.product.project.slug[1:],
|
|
"photobriefing",
|
|
filename,
|
|
)
|
|
)
|
|
|
|
|
|
class BriefItemPhoto(TimestampableDeletableMixin, RulesModel):
|
|
class Meta:
|
|
rules_permissions = {
|
|
"view": always_allow,
|
|
}
|
|
|
|
item = models.ForeignKey(
|
|
verbose_name=_("brief item"),
|
|
to="BriefItem",
|
|
on_delete=models.CASCADE,
|
|
related_name="photos",
|
|
related_query_name="photo",
|
|
)
|
|
|
|
file = models.ImageField(verbose_name=_("file"), upload_to=filename)
|
|
|
|
@property
|
|
def filename(self):
|
|
return os.path.basename(self.file.name)
|