mirror of
https://github.com/daniviga/django-ram.git
synced 2025-12-26 15:28:31 +01:00
Magazine UI (#54)
* Work in progress to implement magazines and issues UI * Fully implement UI for magazines
This commit is contained in:
@@ -43,8 +43,8 @@ class BaseBook(BaseModel):
|
||||
ISBN = models.CharField(max_length=17, blank=True) # 13 + dashes
|
||||
language = models.CharField(
|
||||
max_length=7,
|
||||
choices=settings.LANGUAGES,
|
||||
default='en'
|
||||
choices=sorted(settings.LANGUAGES, key=lambda s: s[1]),
|
||||
default="en",
|
||||
)
|
||||
number_of_pages = models.SmallIntegerField(null=True, blank=True)
|
||||
publication_year = models.SmallIntegerField(null=True, blank=True)
|
||||
@@ -81,6 +81,15 @@ def book_image_upload(instance, filename):
|
||||
)
|
||||
|
||||
|
||||
def magazine_image_upload(instance, filename):
|
||||
return os.path.join(
|
||||
"images",
|
||||
"magazines",
|
||||
str(instance.uuid),
|
||||
filename
|
||||
)
|
||||
|
||||
|
||||
class BaseBookImage(Image):
|
||||
book = models.ForeignKey(
|
||||
BaseBook, on_delete=models.CASCADE, related_name="image"
|
||||
@@ -163,12 +172,12 @@ class Magazine(BaseModel):
|
||||
ISBN = models.CharField(max_length=17, blank=True) # 13 + dashes
|
||||
image = models.ImageField(
|
||||
blank=True,
|
||||
upload_to=book_image_upload,
|
||||
upload_to=magazine_image_upload,
|
||||
storage=DeduplicatedStorage,
|
||||
)
|
||||
language = models.CharField(
|
||||
max_length=7,
|
||||
choices=settings.LANGUAGES,
|
||||
choices=sorted(settings.LANGUAGES, key=lambda s: s[1]),
|
||||
default='en'
|
||||
)
|
||||
tags = models.ManyToManyField(
|
||||
@@ -192,8 +201,8 @@ class Magazine(BaseModel):
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse(
|
||||
"bookshelf_item",
|
||||
kwargs={"selector": "magazine", "uuid": self.uuid}
|
||||
"magazine",
|
||||
kwargs={"uuid": self.uuid}
|
||||
)
|
||||
|
||||
|
||||
@@ -224,3 +233,16 @@ class MagazineIssue(BaseBook):
|
||||
|
||||
def preview(self):
|
||||
return self.image.first().image_thumbnail(100)
|
||||
|
||||
@property
|
||||
def publisher(self):
|
||||
return self.magazine.publisher
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse(
|
||||
"issue",
|
||||
kwargs={
|
||||
"uuid": self.uuid,
|
||||
"magazine": self.magazine.uuid
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user