This commit is contained in:
2021-01-15 15:42:30 +00:00
parent b0df14e7ae
commit f6b9e2f741
43 changed files with 793 additions and 628 deletions

View File

@@ -8,7 +8,7 @@ class JobPostingAdmin(admin.ModelAdmin):
form = JobPostingForm
model = JobPosting
list_display = ['companyName', 'jobName', 'salary', 'publishDate']
list_display = ["companyName", "jobName", "salary", "publishDate"]
admin.site.register(JobPosting, JobPostingAdmin)

View File

@@ -2,4 +2,4 @@ from django.apps import AppConfig
class BlackboardConfig(AppConfig):
name = 'blackboard'
name = "blackboard"

View File

@@ -7,19 +7,17 @@ from .models import JobPosting
class JobPostingForm(forms.ModelForm):
class Meta:
model = JobPosting
fields = ['companyName', 'jobName', 'salary', 'pdfLocation', 'publishDate']
fields = ["companyName", "jobName", "salary", "pdfLocation", "publishDate"]
labels = {
'companyName': _("Firmenname"),
'jobName': _("Berufsbezeichnung"),
'salary': _("Gehalt"),
'pdfLocation': _("Stellenausschreibung"),
'publishDate': _("Veröffentlichung"),
"companyName": _("Firmenname"),
"jobName": _("Berufsbezeichnung"),
"salary": _("Gehalt"),
"pdfLocation": _("Stellenausschreibung"),
"publishDate": _("Veröffentlichung"),
}
help_texts = {
'pdfLocation': _(
"Verwendbare Formate: PDF"
),
'salary': _("in Euro angeben"),
"pdfLocation": _("Verwendbare Formate: PDF"),
"salary": _("in Euro angeben"),
}

View File

@@ -11,16 +11,23 @@ from os.path import splitext, basename
import ghostscript
import logging
logger = logging.getLogger('blackboard')
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)
salary = models.PositiveSmallIntegerField(verbose_name="Gehalt", )
pdfLocation = models.FileField(verbose_name="Stellenausschreibung", upload_to='uploads/blackboard/pdf/')
salary = models.PositiveSmallIntegerField(
verbose_name="Gehalt",
)
pdfLocation = models.FileField(
verbose_name="Stellenausschreibung", upload_to="uploads/blackboard/pdf/"
)
pdf_thumb_location = models.CharField(max_length=128)
publishDate = models.DateField(verbose_name="Veröffentlichung", default=timezone.now)
publishDate = models.DateField(
verbose_name="Veröffentlichung", default=timezone.now
)
# Managers
all_jobPosting = models.Manager()
@@ -40,7 +47,7 @@ class JobPosting(models.Model):
"-dDEVICEWIDTHPOINTS=600",
"-dDEVICEHEIGHTPOINTS=800",
"-sOutputFile=" + jpeg_output_path,
pdf_input_path
pdf_input_path,
]
encoding = locale.getpreferredencoding()
@@ -54,14 +61,18 @@ class JobPosting(models.Model):
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.pdfLocation.name))[0] \
pdf_thumb_location_full = (
settings.MEDIA_ROOT
+ "uploads/blackboard/thumb/"
+ splitext(basename(self.pdfLocation.name))[0]
+ ".jpg"
)
self.pdf_thumb_location = "/files/uploads/blackboard/thumb/" \
+ splitext(basename(self.pdfLocation.name))[0] \
self.pdf_thumb_location = (
"/files/uploads/blackboard/thumb/"
+ splitext(basename(self.pdfLocation.name))[0]
+ ".jpg"
)
self.pdf2jpeg(self.pdfLocation.path, pdf_thumb_location_full)
logger.info("SavenThumbAs: " + self.pdf_thumb_location)
@@ -70,7 +81,7 @@ class JobPosting(models.Model):
def clean(self):
count = 0
for i in self.pdfLocation.name:
if i == '.':
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.'))
raise ValidationError(_("Keine Dateien mit >1 Punkten im Namen erlaubt."))

View File

@@ -4,5 +4,5 @@ from . import views
urlpatterns = [
path('', views.index, name='blackboard'),
path("", views.index, name="blackboard"),
]

View File

@@ -10,8 +10,8 @@ from posts.models import Post
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)
bb_info = Post.objects.filter(slug='blackboard').first()
bb_empty = Post.objects.filter(slug='blackboard-empty').first()
bb_info = Post.objects.filter(slug="blackboard").first()
bb_empty = Post.objects.filter(slug="blackboard-empty").first()
context = {
"job_postings": job_postings,
@@ -19,4 +19,4 @@ def index(request):
"bb_empty": bb_empty,
}
return render(request, 'blackboard/index.html', context)
return render(request, "blackboard/index.html", context)