From 7b02120508d2d979b72007201e736e1baef3f15f Mon Sep 17 00:00:00 2001 From: Faheed Date: Sun, 12 Oct 2025 13:23:44 +0300 Subject: [PATCH] image upload --- db.sqlite3 | Bin 868352 -> 651264 bytes recruitment/__pycache__/admin.cpython-312.pyc | Bin 11211 -> 11311 bytes recruitment/__pycache__/forms.cpython-312.pyc | Bin 22012 -> 22099 bytes .../__pycache__/models.cpython-312.pyc | Bin 45272 -> 45034 bytes recruitment/__pycache__/urls.cpython-312.pyc | Bin 6135 -> 6277 bytes recruitment/__pycache__/views.cpython-312.pyc | Bin 37546 -> 38975 bytes recruitment/admin.py | 5 +- recruitment/forms.py | 23 ++-- recruitment/migrations/0001_initial.py | 31 +++-- ...reason_jobposting_cancelled_at_and_more.py | 33 ----- ...postingimage_post_image_height_and_more.py | 26 ++++ ...003_candidate_is_resume_parsed_and_more.py | 23 ---- ..._jobposting_description_jobpostingimage.py | 30 ---- .../0005_alter_jobposting_description.py | 19 --- .../0006_alter_jobposting_qualifications.py | 19 --- recruitment/models.py | 10 +- recruitment/urls.py | 3 +- recruitment/views.py | 31 ++++- static/image/vision.svg | 128 ++++++++++++++++-- templates/forms/form_builder.html | 12 +- .../forms/form_template_submissions_list.html | 4 +- templates/forms/form_wizard.html | 2 +- templates/jobs/create_job.html | 4 +- templates/jobs/edit_job.html | 4 +- templates/jobs/job_detail.html | 6 +- templates/jobs/job_detail_candidate.html | 2 +- templates/jobs/partials/image_upload.html | 19 ++- templates/jobs/partials/job_status_form.html | 0 28 files changed, 252 insertions(+), 182 deletions(-) delete mode 100644 recruitment/migrations/0002_jobposting_cancel_reason_jobposting_cancelled_at_and_more.py create mode 100644 recruitment/migrations/0002_remove_jobpostingimage_post_image_height_and_more.py delete mode 100644 recruitment/migrations/0003_candidate_is_resume_parsed_and_more.py delete mode 100644 recruitment/migrations/0004_alter_jobposting_description_jobpostingimage.py delete mode 100644 recruitment/migrations/0005_alter_jobposting_description.py delete mode 100644 recruitment/migrations/0006_alter_jobposting_qualifications.py delete mode 100644 templates/jobs/partials/job_status_form.html diff --git a/db.sqlite3 b/db.sqlite3 index 9cc3632d34ad8201ab852431694efa62806189f8..94afcefb86a9e7561742b20c7bc6e84c303daa5e 100644 GIT binary patch delta 33275 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 NHM8kET`T+j@*jS;Rqy}+ delta 2696 zcmaJ@du&rx81L=6zPq)IZfnNy=-@MxAojx9`g@0 z4v=VE$`>DzOo@pj2u9<4{9#O%ASfZhX<|Zd(0_bHMHBsp1pYwJcWzlrN4-gZJ@@xL z&i8%iJLlXFc3CE8r}0*v^R?0-H)E#vKO@V)WNPw0ShAv|BwbQ6RZ?=p z6ol^b)m$Z{%D;gv=Gl%~8Vf;i(4XR=FmAZ+^gg%ly3<9W()avE61t~DEvjMAvNGzU zOq92gI+O$u>JeNBL4*c`Mg;V&StL0r$)ZA#Uw|m?iwP>-6FXN-#~{M7H2~8$xuB zEz_JzDnsI8EG7%1BH0QbR(Ksu&eXTUYz6ONMmx|b0;bBQqv&v~YPl5e>(5jD_BJ@+xOlt*I;EiM_GP{tmY!{VGQdMY_`MGwZ7^hm#Fv{C= zoq_vWZ;iEZ!xL!JDiVS!#)c)42qZpyq_{l2sNV~JS02{O(@V>9g6_{-?noc{CjtVF z_;S_`WG@mignbmWayg}nie}HGaiT;_P|0ExvTWy@K*rO=3Glk7y?GGT*c@>>>WiM6 z*WH*xy|-vV2heN)sutuT9+=K9Sjn-v(-22dDpSxZ4yDL}bW)(}ryfa*g$qj#pjHxL zgaTj2{_?ThmqA{a`A(x1o4~p`6=y5UmuW88wD3``3tn0{89|qtJx)YckHI5(znY^b zzd2~IQP|<_=TdOq`Ij$GnkZ=VKLE3O6`SlSnR8TKdT?3`=O)eG#RafG6UlaQ0Z=D(x28XeYMUsTXZiYg3=nng&blaiRwo6bZ|p&1}_f-BJ3 zGiN}{Zc>t&p?rPE7H*{nPD&P%^EX~Oc@=%UhM>EE@j$a9JLmlrd=&Vc+YfSmomuZn zn5duR06K!DD?0@v!CaY|;ci0!ehMDu&cV|S;gXd-3zH2`(Z#sk(Cscb#xM?6%9be{ zvQnPKQBf5qkeh&`jaT$4PC&HjXh z-ca9(WC)duCcc2&1=t@Nv$LB6-{V=27yb>MSW zR0S!i+&didYM-L+XYfn&+ilFj|HLtks?+dZOI9zyG^}ZT;V8S2@_FD@q+e#t9g}t; zS5yX*ex@-IvqnSB+9!>Qczx1?xF8(fF|YU0 zIMkNbbC{ty_`ux$rsFb7zC^eL=i56Luw%4LXTC!EGW^kA-*yRyUsLFdK5(%vqWmIs zgom7LvG6_0x5Jt6yVaVjPZ-Q31=7Pl5!m+vX@z~fe;2zf*_FUfS+-+Y!?DF@m7igr uDbUR)sbW!PnswD^Dv?QwtI2m%hoe8`ahT=9+&|N|dB4&6y&=H9M*ag2QAB6} diff --git a/recruitment/__pycache__/forms.cpython-312.pyc b/recruitment/__pycache__/forms.cpython-312.pyc index a4bf3f60e18ae0d0b0b3d9b607fd095d227be52e..cc1d2a730a88baa8562b36880abe0d8f51f535de 100644 GIT binary patch delta 5393 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 LeQ=QIaJl~h>aF?c delta 5522 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 delta 3237 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 OHR`*4*j_JazuLb%TUWOL diff --git a/recruitment/__pycache__/views.cpython-312.pyc b/recruitment/__pycache__/views.cpython-312.pyc index 382f068cbc3eea9d1a19775a6b9590427e856b66..d052836331ee0fd880ddde8c1217fc89013e05e3 100644 GIT binary patch delta 8473 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 WxU*iU7dr186!`W>e{b!EA^!`n8O-ni diff --git a/recruitment/admin.py b/recruitment/admin.py index 0676c9e..92200c8 100644 --- a/recruitment/admin.py +++ b/recruitment/admin.py @@ -5,7 +5,7 @@ from django.utils import timezone from .models import ( JobPosting, Candidate, TrainingMaterial, ZoomMeeting, FormTemplate, FormStage, FormField, FormSubmission, FieldResponse, - SharedFormTemplate, Source, HiringAgency, IntegrationLog,InterviewSchedule,Profile + SharedFormTemplate, Source, HiringAgency, IntegrationLog,InterviewSchedule,Profile,JobPostingImage ) class FormFieldInline(admin.TabularInline): @@ -263,3 +263,6 @@ admin.site.register(FieldResponse) admin.site.register(InterviewSchedule) admin.site.register(Profile) # admin.site.register(HiringAgency) + + +admin.site.register(JobPostingImage) \ No newline at end of file diff --git a/recruitment/forms.py b/recruitment/forms.py index 769b3e7..d4d3532 100644 --- a/recruitment/forms.py +++ b/recruitment/forms.py @@ -5,7 +5,10 @@ from django.forms.formsets import formset_factory from django.utils.translation import gettext_lazy as _ from crispy_forms.helper import FormHelper from crispy_forms.layout import Layout, Submit, Row, Column, Field, Div -from .models import ZoomMeeting, Candidate,TrainingMaterial,JobPosting,FormTemplate,InterviewSchedule,BreakTime +from .models import ( + ZoomMeeting, Candidate,TrainingMaterial,JobPosting, + FormTemplate,InterviewSchedule,BreakTime,JobPostingImage +) # from django_summernote.widgets import SummernoteWidget from django_ckeditor_5.widgets import CKEditor5Widget @@ -192,8 +195,8 @@ class JobPostingForm(forms.ModelForm): fields = [ 'title', 'department', 'job_type', 'workplace_type', 'location_city', 'location_state', 'location_country', - 'description', 'qualifications', 'salary_range', 'benefits', - 'application_url', 'application_deadline', 'application_instructions', + 'description', 'qualifications', 'salary_range', 'benefits' + ,'application_deadline', 'application_instructions', 'position_number', 'reporting_to', 'start_date', 'status', 'created_by','open_positions','hash_tags' ] @@ -239,11 +242,11 @@ class JobPostingForm(forms.ModelForm): # Application Information - 'application_url': forms.URLInput(attrs={ - 'class': 'form-control', - 'placeholder': 'https://university.edu/careers/job123', - 'required': True - }), + # 'application_url': forms.URLInput(attrs={ + # 'class': 'form-control', + # 'placeholder': 'https://university.edu/careers/job123', + # 'required': True + # }), 'application_deadline': forms.DateInput(attrs={ 'class': 'form-control', 'type': 'date' @@ -356,6 +359,10 @@ class JobPostingForm(forms.ModelForm): return cleaned_data +class JobPostingImageForm(forms.ModelForm): + class Meta: + model=JobPostingImage + fields=['post_image'] class FormTemplateForm(forms.ModelForm): """Form for creating form templates""" diff --git a/recruitment/migrations/0001_initial.py b/recruitment/migrations/0001_initial.py index 27ae747..0e32b64 100644 --- a/recruitment/migrations/0001_initial.py +++ b/recruitment/migrations/0001_initial.py @@ -1,7 +1,8 @@ -# Generated by Django 5.2.6 on 2025-10-09 10:10 +# Generated by Django 5.2.7 on 2025-10-11 11:04 import django.core.validators import django.db.models.deletion +import django_ckeditor_5.fields import django_countries.fields import django_extensions.db.fields import recruitment.validators @@ -183,7 +184,7 @@ class Migration(migrations.Migration): ('slug', django_extensions.db.fields.RandomCharField(blank=True, editable=False, length=8, unique=True, verbose_name='Slug')), ('name', models.CharField(help_text='Name of the form template', max_length=200)), ('description', models.TextField(blank=True, help_text='Description of the form template')), - ('is_active', models.BooleanField(default=True, help_text='Whether this template is active')), + ('is_active', models.BooleanField(default=False, help_text='Whether this template is active')), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='form_templates', to=settings.AUTH_USER_MODEL)), ], options={ @@ -215,6 +216,7 @@ class Migration(migrations.Migration): ('phone', models.CharField(max_length=20, verbose_name='Phone')), ('address', models.TextField(max_length=200, verbose_name='Address')), ('resume', models.FileField(upload_to='resumes/', verbose_name='Resume')), + ('is_resume_parsed', models.BooleanField(default=False, verbose_name='Resume Parsed')), ('parsed_summary', models.TextField(blank=True, verbose_name='Parsed Summary')), ('applied', models.BooleanField(default=False, verbose_name='Applied')), ('stage', models.CharField(choices=[('Applied', 'Applied'), ('Exam', 'Exam'), ('Interview', 'Interview'), ('Offer', 'Offer')], default='Applied', max_length=100, verbose_name='Stage')), @@ -249,16 +251,16 @@ class Migration(migrations.Migration): ('location_city', models.CharField(blank=True, max_length=100)), ('location_state', models.CharField(blank=True, max_length=100)), ('location_country', models.CharField(default='Saudia Arabia', max_length=100)), - ('description', models.TextField(help_text='Full job description including responsibilities and requirements')), - ('qualifications', models.TextField(blank=True, help_text='Required qualifications and skills')), + ('description', django_ckeditor_5.fields.CKEditor5Field(verbose_name='Description')), + ('qualifications', django_ckeditor_5.fields.CKEditor5Field(blank=True, null=True)), ('salary_range', models.CharField(blank=True, help_text='e.g., $60,000 - $80,000', max_length=200)), - ('benefits', models.TextField(blank=True, help_text='Benefits offered')), + ('benefits', django_ckeditor_5.fields.CKEditor5Field(blank=True, null=True)), ('application_url', models.URLField(blank=True, help_text='URL where candidates apply', null=True, validators=[django.core.validators.URLValidator()])), ('application_deadline', models.DateField(blank=True, null=True)), - ('application_instructions', models.TextField(blank=True, help_text='Special instructions for applicants')), + ('application_instructions', django_ckeditor_5.fields.CKEditor5Field(blank=True, null=True)), ('internal_job_id', models.CharField(editable=False, max_length=50, primary_key=True, serialize=False)), ('created_by', models.CharField(blank=True, help_text='Name of person who created this job', max_length=100)), - ('status', models.CharField(blank=True, choices=[('DRAFT', 'Draft'), ('PUBLISHED', 'Published'), ('CLOSED', 'Closed'), ('ARCHIVED', 'Archived')], default='DRAFT', max_length=20, null=True)), + ('status', models.CharField(blank=True, choices=[('DRAFT', 'Draft'), ('ACTIVE', 'Active'), ('CLOSED', 'Closed'), ('CANCELLED', 'Cancelled'), ('ARCHIVED', 'Archived')], default='DRAFT', max_length=20, null=True)), ('hash_tags', models.CharField(blank=True, help_text='Comma-separated hashtags for linkedin post like #hiring,#jobopening', max_length=200, validators=[recruitment.validators.validate_hash_tags])), ('linkedin_post_id', models.CharField(blank=True, help_text='LinkedIn post ID after posting', max_length=200)), ('linkedin_post_url', models.URLField(blank=True, help_text='Direct URL to LinkedIn post')), @@ -270,6 +272,9 @@ class Migration(migrations.Migration): ('reporting_to', models.CharField(blank=True, help_text='Who this position reports to', max_length=100)), ('start_date', models.DateField(blank=True, help_text='Desired start date', null=True)), ('open_positions', models.PositiveIntegerField(default=1, help_text='Number of open positions for this job')), + ('cancel_reason', models.TextField(blank=True, help_text='Reason for canceling the job posting', verbose_name='Cancel Reason')), + ('cancelled_by', models.CharField(blank=True, help_text='Name of person who cancelled this job', max_length=100, verbose_name='Cancelled By')), + ('cancelled_at', models.DateTimeField(blank=True, null=True)), ('hiring_agency', models.ManyToManyField(blank=True, help_text='External agency responsible for sourcing candidates for this role', related_name='jobs', to='recruitment.hiringagency', verbose_name='Hiring Agency')), ('source', models.ForeignKey(blank=True, help_text='The system or channel from which this job posting originated or was first published.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='job_postings', to='recruitment.source')), ], @@ -312,6 +317,16 @@ class Migration(migrations.Migration): name='job', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='candidates', to='recruitment.jobposting', verbose_name='Job'), ), + migrations.CreateModel( + name='JobPostingImage', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('post_image', models.ImageField(height_field='photo_height', upload_to='post/', width_field='photo_width')), + ('post_image_height', models.PositiveIntegerField(blank=True, null=True)), + ('post_image_width', models.PositiveIntegerField(blank=True, null=True)), + ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='post_images', to='recruitment.jobposting')), + ], + ), migrations.CreateModel( name='Profile', fields=[ @@ -369,7 +384,7 @@ class Migration(migrations.Migration): ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated at')), ('slug', django_extensions.db.fields.RandomCharField(blank=True, editable=False, length=8, unique=True, verbose_name='Slug')), ('title', models.CharField(max_length=255, verbose_name='Title')), - ('content', models.TextField(blank=True, verbose_name='Content')), + ('content', django_ckeditor_5.fields.CKEditor5Field(blank=True, verbose_name='Content')), ('video_link', models.URLField(blank=True, verbose_name='Video Link')), ('file', models.FileField(blank=True, upload_to='training_materials/', verbose_name='File')), ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Created by')), diff --git a/recruitment/migrations/0002_jobposting_cancel_reason_jobposting_cancelled_at_and_more.py b/recruitment/migrations/0002_jobposting_cancel_reason_jobposting_cancelled_at_and_more.py deleted file mode 100644 index 91b6321..0000000 --- a/recruitment/migrations/0002_jobposting_cancel_reason_jobposting_cancelled_at_and_more.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 5.2.6 on 2025-10-09 10:33 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('recruitment', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='jobposting', - name='cancel_reason', - field=models.TextField(blank=True, help_text='Reason for canceling the job posting', verbose_name='Cancel Reason'), - ), - migrations.AddField( - model_name='jobposting', - name='cancelled_at', - field=models.DateTimeField(blank=True, null=True), - ), - migrations.AddField( - model_name='jobposting', - name='cancelled_by', - field=models.CharField(blank=True, help_text='Name of person who cancelled this job', max_length=100, verbose_name='Cancelled By'), - ), - migrations.AlterField( - model_name='jobposting', - name='status', - field=models.CharField(blank=True, choices=[('DRAFT', 'Draft'), ('ACTIVE', 'Active'), ('CLOSED', 'Closed'), ('CANCELLED', 'Cancelled'), ('ARCHIVED', 'Archived')], default='DRAFT', max_length=20, null=True), - ), - ] diff --git a/recruitment/migrations/0002_remove_jobpostingimage_post_image_height_and_more.py b/recruitment/migrations/0002_remove_jobpostingimage_post_image_height_and_more.py new file mode 100644 index 0000000..385c411 --- /dev/null +++ b/recruitment/migrations/0002_remove_jobpostingimage_post_image_height_and_more.py @@ -0,0 +1,26 @@ +# Generated by Django 5.2.7 on 2025-10-11 12:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='jobpostingimage', + name='post_image_height', + ), + migrations.RemoveField( + model_name='jobpostingimage', + name='post_image_width', + ), + migrations.AlterField( + model_name='jobpostingimage', + name='post_image', + field=models.ImageField(upload_to='post/'), + ), + ] diff --git a/recruitment/migrations/0003_candidate_is_resume_parsed_and_more.py b/recruitment/migrations/0003_candidate_is_resume_parsed_and_more.py deleted file mode 100644 index 959dd78..0000000 --- a/recruitment/migrations/0003_candidate_is_resume_parsed_and_more.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 5.2.6 on 2025-10-09 12:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('recruitment', '0002_jobposting_cancel_reason_jobposting_cancelled_at_and_more'), - ] - - operations = [ - migrations.AddField( - model_name='candidate', - name='is_resume_parsed', - field=models.BooleanField(default=False, verbose_name='Resume Parsed'), - ), - migrations.AlterField( - model_name='formtemplate', - name='is_active', - field=models.BooleanField(default=False, help_text='Whether this template is active'), - ), - ] diff --git a/recruitment/migrations/0004_alter_jobposting_description_jobpostingimage.py b/recruitment/migrations/0004_alter_jobposting_description_jobpostingimage.py deleted file mode 100644 index 2123467..0000000 --- a/recruitment/migrations/0004_alter_jobposting_description_jobpostingimage.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 5.2.7 on 2025-10-10 10:35 - -import django.db.models.deletion -import django_ckeditor_5.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('recruitment', '0003_candidate_is_resume_parsed_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='jobposting', - name='description', - field=django_ckeditor_5.fields.CKEditor5Field(help_text='Full job description including responsibilities and requirements'), - ), - migrations.CreateModel( - name='JobPostingImage', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('post_image', models.ImageField(height_field='photo_height', upload_to='post/', width_field='photo_width')), - ('post_image_height', models.PositiveIntegerField(blank=True, null=True)), - ('post_image_width', models.PositiveIntegerField(blank=True, null=True)), - ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='post_images', to='recruitment.jobposting')), - ], - ), - ] diff --git a/recruitment/migrations/0005_alter_jobposting_description.py b/recruitment/migrations/0005_alter_jobposting_description.py deleted file mode 100644 index 23b2679..0000000 --- a/recruitment/migrations/0005_alter_jobposting_description.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.2.7 on 2025-10-10 10:56 - -import django_ckeditor_5.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('recruitment', '0004_alter_jobposting_description_jobpostingimage'), - ] - - operations = [ - migrations.AlterField( - model_name='jobposting', - name='description', - field=django_ckeditor_5.fields.CKEditor5Field(verbose_name='Description'), - ), - ] diff --git a/recruitment/migrations/0006_alter_jobposting_qualifications.py b/recruitment/migrations/0006_alter_jobposting_qualifications.py deleted file mode 100644 index beee000..0000000 --- a/recruitment/migrations/0006_alter_jobposting_qualifications.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.2.7 on 2025-10-10 11:10 - -import django_ckeditor_5.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('recruitment', '0005_alter_jobposting_description'), - ] - - operations = [ - migrations.AlterField( - model_name='jobposting', - name='qualifications', - field=django_ckeditor_5.fields.CKEditor5Field(blank=True, help_text='Required qualifications and skills'), - ), - ] diff --git a/recruitment/models.py b/recruitment/models.py index 512849d..d470e25 100644 --- a/recruitment/models.py +++ b/recruitment/models.py @@ -91,7 +91,7 @@ class JobPosting(Base): ) benefits = CKEditor5Field(blank=True,null=True,config_name='extends') - # Application Information + # Application Information ---job detail apply link for the candidates application_url = models.URLField( validators=[URLValidator()], help_text="URL where candidates apply", @@ -249,11 +249,8 @@ class JobPosting(Base): class JobPostingImage(models.Model): job=models.ForeignKey('JobPosting',on_delete=models.CASCADE,related_name='post_images') - post_image = models.ImageField(upload_to='post/', - height_field='photo_height', - width_field='photo_width') - post_image_height = models.PositiveIntegerField(null=True, blank=True) - post_image_width = models.PositiveIntegerField(null=True, blank=True) + post_image = models.ImageField(upload_to='post/') + class Candidate(Base): class Stage(models.TextChoices): @@ -409,6 +406,7 @@ class Candidate(Base): return self.STAGE_SEQUENCE.get(old_stage, []) @property + def submission(self): return FormSubmission.objects.filter(template__job=self.job).first() @property diff --git a/recruitment/urls.py b/recruitment/urls.py index 9ae1a4e..f3340ca 100644 --- a/recruitment/urls.py +++ b/recruitment/urls.py @@ -9,6 +9,7 @@ urlpatterns = [ # Job URLs (using JobPosting model) path('jobs/', views_frontend.JobListView.as_view(), name='job_list'), path('jobs/create/', views.create_job, name='job_create'), + path('job//upload_image_simple/', views.job_image_upload, name='job_image_upload'), path('jobs//update/', views.edit_job, name='job_update'), # path('jobs//delete/', views., name='job_delete'), path('jobs//', views.job_detail, name='job_detail'), @@ -66,7 +67,7 @@ urlpatterns = [ # path('forms/form//submit/', views.submit_form, name='submit_form'), # path('forms/form//', views.form_wizard_view, name='form_wizard'), - path('forms//submissions//', views.form_submission_details, name='form_submission_details'), + path('forms//submissions//', views.form_submission_details, name='form_submission_details'), path('forms/template//submissions/', views.form_template_submissions_list, name='form_template_submissions_list'), # path('forms//', views.form_preview, name='form_preview'), diff --git a/recruitment/views.py b/recruitment/views.py index fcf6e8d..d83b636 100644 --- a/recruitment/views.py +++ b/recruitment/views.py @@ -17,6 +17,7 @@ from .forms import ( FormTemplateForm, InterviewScheduleForm,JobPostingStatusForm, BreakTimeFormSet, + JobPostingImageForm ) from rest_framework import viewsets from django.contrib import messages @@ -215,6 +216,11 @@ def create_job(request): job.created_by = request.POST.get("created_by", "").strip() if not job.created_by: job.created_by = "University Administrator" + + job.save() + job_apply_url_relative=reverse('job_detail_candidate',kwargs={'slug':job.slug}) + job_apply_url_absolute=request.build_absolute_uri(job_apply_url_relative) + job.application_url=job_apply_url_absolute job.save() messages.success(request, f'Job "{job.title}" created successfully!') return redirect("job_list") @@ -279,6 +285,7 @@ def job_detail(request, slug): offer_count = candidates.filter(stage="Offer").count() status_form = JobPostingStatusForm(instance=job) + image_upload_form=JobPostingImageForm(instance=job) # 2. Check for POST request (Status Update Submission) if request.method == 'POST': @@ -306,10 +313,32 @@ def job_detail(request, slug): "applied_count": applied_count, "interview_count": interview_count, "offer_count": offer_count, - 'status_form':status_form + 'status_form':status_form, + 'image_upload_form':image_upload_form } return render(request, "jobs/job_detail.html", context) +def job_image_upload(request, slug): + #only for handling the post request + job=get_object_or_404(JobPosting,slug=slug) + if request.method=='POST': + image_upload_form=JobPostingImageForm(request.POST,request.FILES) + if image_upload_form.is_valid(): + image_upload_form = image_upload_form.save(commit=False) + + image_upload_form.job = job + image_upload_form.save() + messages.success(request, f"Image uploaded successfully for {job.title}.") + return redirect('job_detail', slug=job.slug) + else: + + messages.error(request, "Image upload failed: Please ensure a valid image file was selected.") + + return redirect('job_detail', slug=job.slug) + return redirect('job_detail', slug=job.slug) + + + # job detail facing the candidate: def job_detail_candidate(request, slug): diff --git a/static/image/vision.svg b/static/image/vision.svg index 43156d8..97124a3 100644 --- a/static/image/vision.svg +++ b/static/image/vision.svg @@ -1,8 +1,120 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/forms/form_builder.html b/templates/forms/form_builder.html index 13e6f08..328e686 100644 --- a/templates/forms/form_builder.html +++ b/templates/forms/form_builder.html @@ -364,14 +364,14 @@ .add-option { color: var(--primary); cursor: pointer; - font-size: 0.9rem; + font-size: 1rem; display: inline-flex; align-items: center; gap: 5px; margin-top: 5px; } .add-option:hover { - text-decoration: underline; + text-decoration: none; } /* File Upload Specific Styles */ .file-upload-area { @@ -685,12 +685,10 @@

diff --git a/templates/jobs/job_detail_candidate.html b/templates/jobs/job_detail_candidate.html index 5d752fc..f74189d 100644 --- a/templates/jobs/job_detail_candidate.html +++ b/templates/jobs/job_detail_candidate.html @@ -246,7 +246,7 @@
- {{job.form_template}} +