add absolute url (also for 'view on site' in admin app)

This commit is contained in:
2021-05-13 17:32:25 +00:00
parent 66dc28da88
commit f56d304b3c
3 changed files with 22 additions and 3 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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."))