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.conf import settings
from django.core.validators import ValidationError from django.core.validators import ValidationError
from django.db import models from django.db import models
from django.urls import reverse
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@@ -39,6 +40,9 @@ class JobPosting(models.Model):
def __str__(self): def __str__(self):
return str(self.publishDate) + "_" + self.companyName + "_" + self.jobName 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): def pdf2jpeg(self, pdf_input_path, jpeg_output_path):
args = [ args = [
"pef2jpeg", # actual value doesn't matter "pef2jpeg", # actual value doesn't matter

View File

@@ -3,6 +3,7 @@ import logging
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.validators import ValidationError, validate_email from django.core.validators import ValidationError, validate_email
from django.db import models from django.db import models
from django.urls import reverse
from django.utils.text import slugify from django.utils.text import slugify
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from easy_thumbnails.fields import ThumbnailerImageField from easy_thumbnails.fields import ThumbnailerImageField
@@ -82,6 +83,13 @@ class Member(models.Model):
verbose_name = "Mitglied" verbose_name = "Mitglied"
verbose_name_plural = "Mitglieder" 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): def clean(self):
if not self.image: if not self.image:
raise ValidationError(_("Es fehlt das Profilbild.")) raise ValidationError(_("Es fehlt das Profilbild."))
@@ -95,9 +103,6 @@ class Member(models.Model):
user.first_name = self.firstname user.first_name = self.firstname
user.save() user.save()
def __str__(self):
return self.firstname + " " + self.surname
class JobGroup(models.Model): class JobGroup(models.Model):
name = models.CharField(max_length=128) name = models.CharField(max_length=128)
@@ -120,6 +125,10 @@ class JobGroup(models.Model):
def __str__(self): def __str__(self):
return self.name 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): def save(self, *args, **kwargs):
if not self.slug: if not self.slug:
self.slug = slugify(self.shortterm) self.slug = slugify(self.shortterm)
@@ -149,6 +158,9 @@ class Job(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
def get_absolute_url(self):
return reverse("jobs", kwargs={"slug": self.job_group.slug}) + "#" + self.slug
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.slug: if not self.slug:
self.slug = slugify(self.shortterm) self.slug = slugify(self.shortterm)

View File

@@ -206,6 +206,9 @@ class Post(models.Model):
def url(self): def url(self):
return reverse("posts.show", kwargs={"id": self.slug}) return reverse("posts.show", kwargs={"id": self.slug})
def get_absolute_url(self):
return self.url
def clean(self): def clean(self):
if self.event_end and self.event_end < self.event_start: if self.event_end and self.event_end < self.event_start:
raise ValidationError(_("Das Ende des Events liegt vor dem Beginn.")) raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))