diff --git a/fet2020/blackboard/models.py b/fet2020/blackboard/models.py index 4ade2f24..808c0078 100644 --- a/fet2020/blackboard/models.py +++ b/fet2020/blackboard/models.py @@ -1,6 +1,7 @@ from django.conf import settings from django.core.validators import ValidationError from django.db import models +from django.urls import reverse from django.utils import timezone from django.utils.translation import gettext_lazy as _ @@ -39,6 +40,9 @@ class JobPosting(models.Model): def __str__(self): return str(self.publishDate) + "_" + self.companyName + "_" + self.jobName + def get_absolute_url(self): + return reverse("blackboard") + def pdf2jpeg(self, pdf_input_path, jpeg_output_path): args = [ "pef2jpeg", # actual value doesn't matter diff --git a/fet2020/members/models.py b/fet2020/members/models.py index 41111a29..5bf89125 100644 --- a/fet2020/members/models.py +++ b/fet2020/members/models.py @@ -3,6 +3,7 @@ import logging from django.contrib.auth.models import User from django.core.validators import ValidationError, validate_email from django.db import models +from django.urls import reverse from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from easy_thumbnails.fields import ThumbnailerImageField @@ -82,6 +83,13 @@ class Member(models.Model): verbose_name = "Mitglied" verbose_name_plural = "Mitglieder" + def __str__(self): + return self.firstname + " " + self.surname + + # need to have 'View on site' link in admin app + def get_absolute_url(self): + return reverse("member", kwargs={"member_id": self.id}) + def clean(self): if not self.image: raise ValidationError(_("Es fehlt das Profilbild.")) @@ -95,9 +103,6 @@ class Member(models.Model): user.first_name = self.firstname user.save() - def __str__(self): - return self.firstname + " " + self.surname - class JobGroup(models.Model): name = models.CharField(max_length=128) @@ -120,6 +125,10 @@ class JobGroup(models.Model): def __str__(self): return self.name + # need to have 'View on site' link in admin app + def get_absolute_url(self): + return reverse("jobs", kwargs={"slug": self.slug}) + def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.shortterm) @@ -149,6 +158,9 @@ class Job(models.Model): def __str__(self): return self.name + def get_absolute_url(self): + return reverse("jobs", kwargs={"slug": self.job_group.slug}) + "#" + self.slug + def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.shortterm) diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index f6a52cee..2751b80b 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -206,6 +206,9 @@ class Post(models.Model): def url(self): return reverse("posts.show", kwargs={"id": self.slug}) + def get_absolute_url(self): + return self.url + def clean(self): if self.event_end and self.event_end < self.event_start: raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))