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",
help_text='The date this user will become unbanned',
blank=True,
verbose_name='Expiration Date'
)
permanent=models.BooleanField(
help_text='If checked, this user will never be unbanned, even if the expiration date passes',
verbose_name='Permanent'
)
scope=models.ManyToManyField(
Show,
help_text='The shows this user is banned from interacting with',
verbose_name='Banned From',
related_name='bans'
)
site_wide=models.BooleanField(
help_text='If checked, this is a site-wide ban, and the user is automatically banned from all shows, not just those in the Banned From (scope) paramenter',
help_text='The name given to this season by its producers. Can be blank if no name was given',
verbose_name='Season Name'
)
number=models.IntegerField(
help_text='The number of this season, starting at 1; For example, the first season to be aired would be number 1, and the second would be number 2'
)
description=models.TextField(
help_text='A description of this season\'s happenings'
)
artwork=models.ImageField(
storage=show_static_storage,
upload_to=name_season_artwork,
help_text="The artwork associated with the season. Should display the name of the show in a movie-poster esque format. Aspect ration should be about 2:3",
verbose_name="Artwork",
blank=True
)
classEpisode(models.Model):
show=models.ForeignKey(
'Show',
on_delete=models.CASCADE,
related_name='episodes',
help_text='The show this episode belongs to'
)
season=models.ForeignKey(
Season,
on_delete=models.CASCADE,
related_name='episodes',
help_text='The season this episode is from'
)
episode=models.IntegerField(
help_text='The position of this episode in the season. The first episode of the season to air would be episode number 1',
verbose_name='Episode Number'
)
name=models.CharField(
max_length=40,
help_text='The name given to this episode by its producers',
verbose_name='Episode Season'
)
summary=models.TextField(
help_text='A summary of this episode'
)
airdate=models.DateField(
help_text='The date this episode officially aired for the first time',
verbose_name='Original Air Date'
)
classSubmission(models.Model):
episode=models.ForeignKey(
Episode,
on_delete=models.CASCADE,
related_name='submissions',
help_text='What episode this link contains a mirror of',
verbose_name='Submitted For'
)
user=models.ForeignKey(
'User',
on_delete=models.SET_NULL,
null=True,
related_name='submissions',
help_text='The user who submitted this link'
)
url=models.URLField(
help_text='The link that was submitted',
)
tags=models.CharField(
help_text='Tags applied to this link submission',
max_length=200
)
classSubmissionVote(models.Model):
submission=models.ForeignKey(
Submission,
on_delete=models.CASCADE,
related_name='votes',
help_text='What this submission was cast on'
)
user=models.ForeignKey(
'User',
on_delete=models.CASCADE,
related_name='votes',
help_text='The user who cast this vote'
)
positive=models.BooleanField(
help_text='If this is true, the vote is an upvote. Otherwise, it is a downvote'
)
classFavorite(models.Model):
user=models.ForeignKey(
User,
on_delete=models.CASCADE
)
episode=models.ForeignKey(
Episode,
on_delete=models.CASCADE
)
classWatch(models.Model):
user=models.ForeignKey(
User,
on_delete=models.CASCADE
)
episode=models.ForeignKey(
Episode,
on_delete=models.CASCADE
)
classDiscussionBoard(models.Model):
show=models.ForeignKey(
Show,
on_delete=models.CASCADE,
related_name='discussion_boards',
help_text='The show this discussion was created for'
)
user=models.ForeignKey(
User,
on_delete=models.SET_NULL,
null=True,
related_name='discussion_boards',
help_text='The user that created this discussion'
)
title=models.CharField(
max_length=100,
help_text='The title of the discussion'
)
body=models.TextField(
help_text='The body of the post'
verbose_name='Body'
)
classDiscussionReply(models.Model):
board=models.ForeignKey(
DiscussionBoard,
on_delete=models.CASCADE,
related_name='replies',
help_text='The discussion board this was created in reply to'