From c94b92562ed786b4e7f6792434e5d41ed8e5db1a Mon Sep 17 00:00:00 2001 From: Jakub K Date: Wed, 27 Dec 2023 22:19:35 +0100 Subject: [PATCH] obraz osobno --- jobposting/helpers.py | 7 +++++++ jobposting/models.py | 8 ++++++-- jobposting/serializers.py | 7 ++++++- jobposting/views.py | 7 ++++++- requirements.txt | 3 ++- 5 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 jobposting/helpers.py diff --git a/jobposting/helpers.py b/jobposting/helpers.py new file mode 100644 index 0000000..03827a6 --- /dev/null +++ b/jobposting/helpers.py @@ -0,0 +1,7 @@ +import os +from uuid import uuid4 + +def rename_file(instance, filename): + ext = filename.split(".")[-1] + new_filename = f"{uuid4()}.{ext}" + return os.path.join('company_logos/', new_filename) \ No newline at end of file diff --git a/jobposting/models.py b/jobposting/models.py index 746e43f..6ec02d8 100644 --- a/jobposting/models.py +++ b/jobposting/models.py @@ -4,7 +4,7 @@ from core.models import MyUser from django.utils import timezone from datetime import timedelta - +from helpers import rename_file class JobListing(models.Model): posting_options = [ ('M', 'Minimal'), @@ -37,7 +37,7 @@ class JobListing(models.Model): status_paid = models.CharField(max_length=1, choices=paid_status, default='N') # category = models.CharField(max_length=255, null=True, blank=True) expiration_date = models.DateField(null=True, blank=True) - company_logo = models.ImageField(upload_to='company_logos/') + # company_logo = models.ImageField(upload_to='company_logos/') experience_level = models.CharField(max_length=255, null=True, blank=True) employmentType = models.CharField(max_length=255, null=True, blank=True) workFromHome = models.CharField(max_length=255) @@ -68,3 +68,7 @@ class SkillLevels(models.Model): skill_name =models.CharField(max_length=255) skill_level = models.CharField(max_length=1, choices=proficiency_choices,) + +class CompanyLogo(models.Model): + company_logo = models.ImageField(upload_to=rename_file) + \ No newline at end of file diff --git a/jobposting/serializers.py b/jobposting/serializers.py index 6924153..e1a9223 100644 --- a/jobposting/serializers.py +++ b/jobposting/serializers.py @@ -1,5 +1,5 @@ from rest_framework import serializers -from jobposting.models import JobListing, SkillLevels +from jobposting.models import JobListing, SkillLevels, CompanyLogo from core.models import MyUser class MyUserSerializer(serializers.ModelSerializer): @@ -25,3 +25,8 @@ class JobListingSerializer(serializers.ModelSerializer): 'expiration_date', 'experience_level', 'employmentType', 'workFromHome', 'updated_at', 'job_skills', 'contact_email', 'first_name', 'last_name', ] + +class CompanyLogoSerializer(serializers.ModelSerializer): + class Meta: + model = CompanyLogo + fields = ['id', 'company_logo'] \ No newline at end of file diff --git a/jobposting/views.py b/jobposting/views.py index e730bad..6617c9b 100644 --- a/jobposting/views.py +++ b/jobposting/views.py @@ -1,10 +1,11 @@ from rest_framework import viewsets, permissions -from jobposting.models import JobListing, SkillLevels +from jobposting.models import JobListing, SkillLevels, CompanyLogo from jobposting.serializers import ( JobListingSerializer, SkillLevelsSerializer, MyUserSerializer, + CompanyLogoSerializer ) from core.models import MyUser @@ -38,3 +39,7 @@ class SkillLevelsViewSet(viewsets.ModelViewSet): # permission_classes = [permissions.IsAuthenticatedOrReadOnly] # Możesz także chcieć dodać widoki szczegółowe lub niestandardowe akcje. +class CompanyLogoViewSet(viewsets.ModelViewSet): + permission_classes = [permissions.AllowAny] + queryset = CompanyLogo.objects.all() + serializer_class = CompanyLogoSerializer \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 321c6de..822c930 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,5 @@ djangorestframework psycopg2-binary django-allauth dj-rest-auth -django-cors-headers \ No newline at end of file +django-cors-headers +Pillow \ No newline at end of file