Add Job-ads DB object and serializers

This commit is contained in:
Aarni Halinen
2020-11-03 18:27:46 +02:00
parent b443b39457
commit 1ff188eddd
11 changed files with 318 additions and 5063 deletions
+54 -36
View File
@@ -22,14 +22,14 @@ EMAIL_REGEX = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
class Tag(models.Model):
"""Model for tag."""
slug = models.SlugField(unique=True)
name = models.CharField(max_length=127)
icon = models.ImageField()
class Meta:
verbose_name = _('Tag')
verbose_name_plural = _('Tags')
slug = models.SlugField(unique=True)
name = models.CharField(max_length=127)
icon = models.ImageField()
def __str__(self):
return _('Tag: {}').format(self.slug)
@@ -48,6 +48,10 @@ class BaseFeed(models.Model):
class Feed(BaseFeed):
"""Model representing feed."""
class Meta:
verbose_name = _('Feed')
verbose_name_plural = _('Feeds')
publish_time = models.DateTimeField(default=timezone.now)
autohide = models.DateTimeField(default=month_from_now)
autohide_enabled = models.BooleanField(default=False)
@@ -55,13 +59,13 @@ class Feed(BaseFeed):
def __str__(self):
return _('Feed: {}').format(self.title)
class Meta:
verbose_name = _('Feed')
verbose_name_plural = _('Feeds')
class Event(BaseFeed):
"""Model for event."""
"""Model for event in guild calendar"""
class Meta:
verbose_name = _('Event')
verbose_name_plural = _('Events')
start_time = models.DateTimeField(default=timezone.now)
end_time = models.DateTimeField(default=timezone.now)
@@ -72,26 +76,30 @@ class Event(BaseFeed):
def __str__(self):
return _('Event: {}').format(self.title)
class Meta:
verbose_name = _('Event')
verbose_name_plural = _('Events')
class TemplateQuestion(models.Model):
"""Stores template questions for signup forms as JSONB"""
"""
NOT IMPLEMENTED!!!
Stores template questions for signup forms as JSON format. Used in signup form creation
"""
class Meta:
verbose_name = _('Template question')
verbose_name_plural = _('Template questions')
name = models.CharField(max_length=255)
question = JSONField()
def __str__(self):
return _('Template questions: {}').format(self.name)
class Meta:
verbose_name = _('Template question')
verbose_name_plural = _('Template questions')
class SignupForm(models.Model):
"""Model for event signup form. Stores questions in JSONB."""
"""Model for event signup form. Stores questions in JSON format."""
class Meta:
verbose_name = _('Signup form')
verbose_name_plural = _('Signup forms')
title = models.CharField(max_length=255)
start_time = models.DateTimeField(default=timezone.now)
@@ -114,12 +122,15 @@ class SignupForm(models.Model):
now = timezone.now()
return self.start_time <= now and now < self.end_time
class Meta:
verbose_name = _('Signup form')
verbose_name_plural = _('Signup forms')
class Signup(models.Model):
"""
In
"""
class Meta:
verbose_name = _('Sign-up')
verbose_name_plural = _('Sign-ups')
signupForm = models.ForeignKey('SignupForm', on_delete=models.CASCADE)
time = models.DateTimeField(default=timezone.now)
answer = JSONField()
@@ -133,10 +144,6 @@ class Signup(models.Model):
def __str__(self):
return f"{self.signupForm}: {self.list_name} ({self.pk})"
class Meta:
verbose_name = _('Sign-up')
verbose_name_plural = _('Sign-ups')
@receiver(post_save, sender=Signup)
def email_on_signup(sender, instance, created, **kwargs):
@@ -166,7 +173,6 @@ class BaseRole(models.Model):
class PresetRole(BaseRole):
"""Model representing a preset occupation in the guild."""
description = models.TextField(_('Description'))
@@ -177,8 +183,6 @@ class Committee(models.Model):
"""
class Meta:
"""Meta class for Committee class."""
verbose_name = _('Committee')
verbose_name_plural = _('Committees')
@@ -194,15 +198,11 @@ class Committee(models.Model):
class Role(PresetRole):
"""
Model for Role.
Model representing an active or historical occupation
in the guild.
"""
class Meta:
"""Meta class for Role model."""
verbose_name = _('Role')
verbose_name_plural = _('Roles')
@@ -241,8 +241,6 @@ class Official(models.Model):
"""Model representing a guild official."""
class Meta:
"""Meta class for Official class."""
verbose_name = _('Official')
verbose_name_plural = _('Officials')
@@ -272,10 +270,30 @@ def save_user_official(sender, instance, **kwargs):
instance.user.save()
class JobAd(models.Model):
"""Job advertisements shown on Corporate relations page"""
class Meta:
verbose_name = _('JobAd')
verbose_name_plural = _('JobAds')
title = models.CharField(max_length=255)
description = models.CharField(max_length=255)
content = models.TextField()
visible = models.BooleanField(default=True)
created_at = models.DateTimeField(default=timezone.now)
autohide_at = models.DateTimeField(default=month_from_now)
autohide_enabled = models.BooleanField(default=False)
auditlog.register(Tag)
auditlog.register(Feed)
auditlog.register(Event)
auditlog.register(SignupForm)
auditlog.register(Signup)
auditlog.register(PresetRole)
auditlog.register(Role)
auditlog.register(Committee)
auditlog.register(Occupation)
auditlog.register(Official)
auditlog.register(JobAd)