diff --git a/fet2020/blackboard/admin.py b/fet2020/blackboard/admin.py index e2c0f4a2..e88014c5 100644 --- a/fet2020/blackboard/admin.py +++ b/fet2020/blackboard/admin.py @@ -16,5 +16,24 @@ class JobPostingAdmin(admin.ModelAdmin): "publish_date", ] + def add_view(self, request, form_url="", extra_context=None): + extra_context = extra_context or {} + extra_context["help_text"] = "Fette Schriften sind Pflichtfelder." + return super().add_view( + request, + form_url, + extra_context=extra_context, + ) + + def change_view(self, request, object_id, form_url="", extra_context=None): + extra_context = extra_context or {} + extra_context["help_text"] = "Fette Schriften sind Pflichtfelder." + return super().change_view( + request, + object_id, + form_url, + extra_context=extra_context, + ) + admin.site.register(JobPosting, JobPostingAdmin) diff --git a/fet2020/blackboard/forms.py b/fet2020/blackboard/forms.py index b333ba83..80ef1a31 100644 --- a/fet2020/blackboard/forms.py +++ b/fet2020/blackboard/forms.py @@ -25,7 +25,7 @@ class JobPostingForm(forms.ModelForm): } help_texts = { - "pdf_location": _("Verwendbare Formate: PDF"), + "pdf_location": _("Verwendbares Format: PDF."), "salary": _( "in Euro angeben; monatliches Gehalt bei >1h, sonst Stundenlohn." ), diff --git a/fet2020/blackboard/migrations/0004_remove_jobposting_pdf_thumb_location_and_more.py b/fet2020/blackboard/migrations/0004_remove_jobposting_pdf_thumb_location_and_more.py new file mode 100644 index 00000000..ca7c0b78 --- /dev/null +++ b/fet2020/blackboard/migrations/0004_remove_jobposting_pdf_thumb_location_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.0.3 on 2022-04-09 08:02 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('blackboard', '0003_auto_20210624_1503'), + ] + + operations = [ + migrations.RemoveField( + model_name='jobposting', + name='pdf_thumb_location', + ), + migrations.AlterField( + model_name='jobposting', + name='pdf_location', + field=models.FileField(upload_to='uploads/blackboard/pdf/', validators=[django.core.validators.FileExtensionValidator(['pdf'])], verbose_name='Stellenausschreibung'), + ), + ] diff --git a/fet2020/blackboard/models.py b/fet2020/blackboard/models.py index 679cacda..8c9f8431 100644 --- a/fet2020/blackboard/models.py +++ b/fet2020/blackboard/models.py @@ -3,10 +3,8 @@ import logging import os from os.path import splitext, basename -import ghostscript - from django.conf import settings -from django.core.validators import ValidationError +from django.core.validators import ValidationError, FileExtensionValidator from django.db import models from django.urls import reverse from django.utils import timezone @@ -33,9 +31,10 @@ class JobPosting(models.Model): ) pdf_location = models.FileField( - verbose_name="Stellenausschreibung", upload_to="uploads/blackboard/pdf/" + verbose_name="Stellenausschreibung", + upload_to="uploads/blackboard/pdf/", + validators=[FileExtensionValidator(["pdf"])], ) - pdf_thumb_location = models.CharField(max_length=128) publish_date = models.DateField( verbose_name="Veröffentlichung", default=timezone.now @@ -52,52 +51,3 @@ class JobPosting(models.Model): def get_absolute_url(self): return reverse("blackboard") - - def save(self, *args, **kwargs): - super().save(*args, **kwargs) - - if not os.path.exists(settings.MEDIA_ROOT + "uploads/blackboard/thumb/"): - os.makedirs(settings.MEDIA_ROOT + "uploads/blackboard/thumb/") - - pdf_thumb_location_full = ( - settings.MEDIA_ROOT - + "uploads/blackboard/thumb/" - + splitext(basename(self.pdf_location.name))[0] - + ".jpg" - ) - - self.pdf_thumb_location = ( - "/files/uploads/blackboard/thumb/" - + splitext(basename(self.pdf_location.name))[0] - + ".jpg" - ) - - self.pdf2jpeg(self.pdf_location.path, pdf_thumb_location_full) - logger.info("SavenThumbAs: " + self.pdf_thumb_location) - super().save(*args, **kwargs) - - def clean(self): - count = 0 - for i in self.pdf_location.name: - if i == ".": - count = count + 1 - if count > 1: # if more than one dot in filename - raise ValidationError(_("Keine Dateien mit >1 Punkten im Namen erlaubt.")) - - def pdf2jpeg(self, pdf_input_path, jpeg_output_path): - args = [ - "pef2jpeg", # actual value doesn't matter - "-dNOPAUSE", - "-sDEVICE=jpeg", - "-dDEVICEWIDTHPOINTS=600", - "-dDEVICEHEIGHTPOINTS=800", - "-sOutputFile=" + jpeg_output_path, - pdf_input_path, - ] - - encoding = locale.getpreferredencoding() - args = [a.encode(encoding) for a in args] - - # ghostscript.Ghostscript(*args) - with ghostscript.Ghostscript(*args) as g: - ghostscript.cleanup() diff --git a/fet2020/blackboard/views.py b/fet2020/blackboard/views.py index b9581af3..5249d3b7 100644 --- a/fet2020/blackboard/views.py +++ b/fet2020/blackboard/views.py @@ -16,7 +16,7 @@ def index(request): bb_empty = CustomFlatPage.objects.filter(title__iexact="blackboard empty").first() context = { - "job_postings": job_postings, + "job_postings": job_postings.order_by("-publish_date"), "bb_info": bb_info, "bb_empty": bb_empty, } diff --git a/fet2020/requirements.txt b/fet2020/requirements.txt index 41b8c3bb..c65dbbc2 100644 --- a/fet2020/requirements.txt +++ b/fet2020/requirements.txt @@ -11,7 +11,6 @@ djangorestframework==3.13.1 easy-thumbnails==2.8.1 etherpad-lite==0.5 fontawesomefree==6.1.1 -ghostscript==0.7 html2text==2020.1.16 ldap3==2.9.1 mysqlclient==2.1.0