61 lines
2.2 KiB
Python
61 lines
2.2 KiB
Python
from django.db import models
|
|
from django.core.files.storage import FileSystemStorage
|
|
from django.conf import settings
|
|
import os
|
|
|
|
def name_artwork(inst, name):
|
|
return '%s/artwork.%s'%(inst.abbr,name.split('.')[-1])
|
|
def name_css(inst, name):
|
|
return '%s/style.css'%inst.abbr
|
|
def name_banner(inst, name):
|
|
return '%s/banner.%s'%(inst.abbr,name.split('.')[-1])
|
|
|
|
# Create your models here.
|
|
class Show(models.Model):
|
|
show_static_storage = FileSystemStorage(location=os.path.join(os.path.dirname(settings.MEDIA_ROOT), 'uploaded_resources'), base_url='showstatic')
|
|
name = models.CharField(
|
|
max_length=40,
|
|
help_text="The full name of the show",
|
|
verbose_name="Full Name"
|
|
)
|
|
abbr = models.SlugField(
|
|
max_length=5,
|
|
unique=True,
|
|
help_text="A short abbreviation of the show, for use in urls",
|
|
verbose_name="Abbreviation"
|
|
)
|
|
description = models.TextField(
|
|
help_text="A description of the show",
|
|
verbose_name="Description"
|
|
)
|
|
release = models.DateField(
|
|
help_text="The release date of the first episode of the show",
|
|
verbose_name="Release Date"
|
|
)
|
|
artwork = models.ImageField(
|
|
storage=show_static_storage,
|
|
upload_to = name_artwork,
|
|
help_text="The artwork associated with the show. Should display the name of the show in a movie-poster esque format. Aspect ration should be about 2:3",
|
|
verbose_name="Artwork"
|
|
)
|
|
imdb = models.URLField(
|
|
help_text="The url of the IMDb page for this show",
|
|
verbose_name="IMDb Page"
|
|
)
|
|
moderated = models.BooleanField(
|
|
help_text="Wheter or not this show is user-moderated",
|
|
verbose_name="User Moderated"
|
|
)
|
|
css = models.FileField(
|
|
storage=show_static_storage,
|
|
upload_to=name_css,
|
|
help_text="The CSS stylesheet applied to this show's page",
|
|
verbose_name="Custom Style"
|
|
)
|
|
banner = models.ImageField(
|
|
storage=show_static_storage,
|
|
upload_to = name_banner,
|
|
help_text="A banner used for the show's page.",
|
|
verbose_name="Artwork"
|
|
)
|