diff --git a/fet2020/blackboard/admin.py b/fet2020/blackboard/admin.py index 47b951dc..f7f8c3e5 100644 --- a/fet2020/blackboard/admin.py +++ b/fet2020/blackboard/admin.py @@ -8,7 +8,7 @@ class JobPostingAdmin(admin.ModelAdmin): form = JobPostingForm model = JobPosting - list_display = ["companyName", "jobName", "salary", "publishDate"] + list_display = ["company_name", "job_name", "salary", "number_of_hours", "publish_date"] admin.site.register(JobPosting, JobPostingAdmin) diff --git a/fet2020/blackboard/forms.py b/fet2020/blackboard/forms.py index 94db3375..16ef17dc 100644 --- a/fet2020/blackboard/forms.py +++ b/fet2020/blackboard/forms.py @@ -7,17 +7,17 @@ from .models import JobPosting class JobPostingForm(forms.ModelForm): class Meta: model = JobPosting - fields = ["companyName", "jobName", "salary", "pdfLocation", "publishDate"] + fields = ["company_name", "job_name", "salary", "number_of_hours", "pdf_location", "publish_date"] labels = { - "companyName": _("Firmenname"), - "jobName": _("Berufsbezeichnung"), - "salary": _("Gehalt"), - "pdfLocation": _("Stellenausschreibung"), - "publishDate": _("Veröffentlichung"), + "company_name": _("Firmenname"), + "job_name": _("Berufsbezeichnung"), + "salary": _("monatliches Gehalt (brutto)/Stundenlohn"), + "pdf_location": _("Stellenausschreibung"), + "publish_date": _("Veröffentlichung"), } help_texts = { - "pdfLocation": _("Verwendbare Formate: PDF"), - "salary": _("in Euro angeben"), + "pdf_location": _("Verwendbare Formate: PDF"), + "salary": _("in Euro angeben; monatliches Gehalt bei >1h, sonst Stundenlohn."), } diff --git a/fet2020/blackboard/migrations/0002_auto_20210515_1916.py b/fet2020/blackboard/migrations/0002_auto_20210515_1916.py new file mode 100644 index 00000000..d5144b46 --- /dev/null +++ b/fet2020/blackboard/migrations/0002_auto_20210515_1916.py @@ -0,0 +1,45 @@ +# Generated by Django 3.1.5 on 2021-05-15 17:16 + +from django.db import migrations, models +import django.db.models.manager + + +class Migration(migrations.Migration): + + dependencies = [ + ('blackboard', '0001_initial'), + ] + + operations = [ + migrations.AlterModelManagers( + name='jobposting', + managers=[ + ('all_job_postings', django.db.models.manager.Manager()), + ], + ), + migrations.RenameField( + model_name='jobposting', + old_name='companyName', + new_name='company_name', + ), + migrations.RenameField( + model_name='jobposting', + old_name='jobName', + new_name='job_name', + ), + migrations.RenameField( + model_name='jobposting', + old_name='pdfLocation', + new_name='pdf_location', + ), + migrations.RenameField( + model_name='jobposting', + old_name='publishDate', + new_name='publish_date', + ), + migrations.AddField( + model_name='jobposting', + name='number_of_hours', + field=models.DecimalField(decimal_places=1, default=40, max_digits=3, verbose_name='Stundenanzahl'), + ), + ] diff --git a/fet2020/blackboard/models.py b/fet2020/blackboard/models.py index 808c0078..d921c914 100644 --- a/fet2020/blackboard/models.py +++ b/fet2020/blackboard/models.py @@ -1,3 +1,8 @@ +import ghostscript +import locale +import logging +import os + from django.conf import settings from django.core.validators import ValidationError from django.db import models @@ -5,40 +10,43 @@ from django.urls import reverse from django.utils import timezone from django.utils.translation import gettext_lazy as _ -import locale -import os from os.path import splitext, basename -import ghostscript - -import logging - logger = logging.getLogger("blackboard") class JobPosting(models.Model): - companyName = models.CharField(verbose_name="Firmenname", max_length=128) - jobName = models.CharField(verbose_name="Berufsbezeichnung", max_length=128) + company_name = models.CharField(verbose_name="Firmenname", max_length=128) + job_name = models.CharField(verbose_name="Berufsbezeichnung", max_length=128) + salary = models.PositiveSmallIntegerField( verbose_name="Gehalt", ) - pdfLocation = models.FileField( + number_of_hours = models.DecimalField( + default=40, + verbose_name="Stundenanzahl", + max_digits=3, + decimal_places=1, + ) + + pdf_location = models.FileField( verbose_name="Stellenausschreibung", upload_to="uploads/blackboard/pdf/" ) pdf_thumb_location = models.CharField(max_length=128) - publishDate = models.DateField( + + publish_date = models.DateField( verbose_name="Veröffentlichung", default=timezone.now ) # Managers - all_jobPosting = models.Manager() + all_job_postings = models.Manager() class Meta: verbose_name = "Stellenausschreibung" verbose_name_plural = "Stellenausschreibungen" def __str__(self): - return str(self.publishDate) + "_" + self.companyName + "_" + self.jobName + return str(self.publish_date) + "_" + self.company_name + "_" + self.job_name def get_absolute_url(self): return reverse("blackboard") @@ -61,6 +69,14 @@ class JobPosting(models.Model): with ghostscript.Ghostscript(*args) as g: ghostscript.cleanup() + 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 save(self, *args, **kwargs): super().save(*args, **kwargs) @@ -70,24 +86,16 @@ class JobPosting(models.Model): pdf_thumb_location_full = ( settings.MEDIA_ROOT + "uploads/blackboard/thumb/" - + splitext(basename(self.pdfLocation.name))[0] + + splitext(basename(self.pdf_location.name))[0] + ".jpg" ) self.pdf_thumb_location = ( "/files/uploads/blackboard/thumb/" - + splitext(basename(self.pdfLocation.name))[0] + + splitext(basename(self.pdf_location.name))[0] + ".jpg" ) - self.pdf2jpeg(self.pdfLocation.path, pdf_thumb_location_full) + 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.pdfLocation.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.")) diff --git a/fet2020/blackboard/views.py b/fet2020/blackboard/views.py index 4e308a64..7b970f6c 100644 --- a/fet2020/blackboard/views.py +++ b/fet2020/blackboard/views.py @@ -8,7 +8,7 @@ from .models import JobPosting def index(request): job_postings_cutoff = timezone.now().date() - timedelta(30) # 30days from now - job_postings = JobPosting.all_jobPosting.filter(publishDate__gt=job_postings_cutoff) + job_postings = JobPosting.all_job_postings.filter(publish_date__gt=job_postings_cutoff) bb_info = CustomFlatPage.objects.filter(title__iexact="blackboard").first() bb_empty = CustomFlatPage.objects.filter(title__iexact="blackboard empty").first() diff --git a/fet2020/templates/blackboard/partials/_show_job_posting.html b/fet2020/templates/blackboard/partials/_show_job_posting.html index d107a4a9..56907289 100644 --- a/fet2020/templates/blackboard/partials/_show_job_posting.html +++ b/fet2020/templates/blackboard/partials/_show_job_posting.html @@ -1,15 +1,19 @@
-

{{job.companyName}}

-

{{job.jobName}}
- Mindestgehalt: {{job.salary}}€

+

{{job.company_name}}

+

{{job.job_name}}
+ {% if job.number_of_hours == 1 %} + Mindestgehalt: {{job.salary}}€ Stundenlohn

+ {% else %} + monatliches Mindestgehalt:
+ {{job.salary}}€ für {{job.number_of_hours}}h

+ {% endif %} {# only thumb and name of member #} - +
-

{{job.companyName}}

-

{{job.jobName}}
- Mindestgehalt: {{job.salary}}€

+

{{job.company_name}}

+

{{job.job_name}}