From 3b8ed4c93b92bd17f66cd406307c12d9d3b197c4 Mon Sep 17 00:00:00 2001 From: Faheed Date: Wed, 8 Oct 2025 14:58:19 +0300 Subject: [PATCH] django summernote added --- .../__pycache__/settings.cpython-312.pyc | Bin 5199 -> 5218 bytes .../__pycache__/urls.cpython-312.pyc | Bin 1457 -> 1538 bytes NorahUniversity/settings.py | 1 + NorahUniversity/urls.py | 3 +- db.sqlite3 | Bin 602112 -> 606208 bytes recruitment/__pycache__/forms.cpython-312.pyc | Bin 21289 -> 21056 bytes recruitment/forms.py | 62 +- templates/base.html | 14 +- templates/jobs/create_job.html | 357 +++++------ templates/jobs/edit_job.html | 577 ++++++++++-------- templates/recruitment/training_create.html | 53 +- 11 files changed, 547 insertions(+), 520 deletions(-) diff --git a/NorahUniversity/__pycache__/settings.cpython-312.pyc b/NorahUniversity/__pycache__/settings.cpython-312.pyc index 44677f0a3c141666226751e3278737502b91091f..745fbd77eace7229a44ae3d2d4e3fd3893fdb321 100644 GIT binary patch delta 89 zcmX@F@koRBG%qg~0}zyXJj)2($ScIcD6v_AWfG%cN>*ZCdVYLyX>M+6QC@yY>gEls r>MV>RlW%aAGsG%qg~0}!0Ce3oIekynU?QGBxk%Ou9lM_E-_7=;zg6%YUb diff --git a/NorahUniversity/__pycache__/urls.cpython-312.pyc b/NorahUniversity/__pycache__/urls.cpython-312.pyc index 6c86a8baca80857059164566307a443e8d5629d6..0cc7192eb84e550f942543dd98d274abbd5bc71a 100644 GIT binary patch delta 204 zcmdnU-Nd7QnwOW00SE#-pJk-8Ffcp@abN%}1LS=6+o)d6IC%}Dj95BrlxV6b6GJK& z5HqI;0ZEn=;mJD~0~tjob1^vzi>zjXXs_aBV2Bc}6x9@)9LKa>wTipAG&eW3C@;Sx zRliCsB`Yy6JwF~HrdL{&Q@mM}c^)GZE92y?EKM3L93A2l)h|dHUKTRC%wl{K$d{eT cenG+FvV`Sj7OM~3Z2U|O+#f_H`?Dqi0Q%81M*si- delta 146 zcmZqT*~qPanwOW00SI>3KFiQyVPJR+;=lkWl=0bUqk1)?SUO9TXsRd^Ln;>#Gp7gu zNtP7B$yXQy8HFaRF*yngt!9GgsN!W{h!U+7))bjs#k75M81pzp*q)uyS^& ePc*+EZFE`K_%f@>2ToRgrUvd0LX#J;CIJ8m7$CO* diff --git a/NorahUniversity/settings.py b/NorahUniversity/settings.py index 1b33af7..8049d5a 100644 --- a/NorahUniversity/settings.py +++ b/NorahUniversity/settings.py @@ -48,6 +48,7 @@ INSTALLED_APPS = [ 'channels', 'django_filters', 'crispy_forms', + 'django_summernote', 'crispy_bootstrap5', 'django_extensions', 'template_partials', diff --git a/NorahUniversity/urls.py b/NorahUniversity/urls.py index b8ab419..84c78b0 100644 --- a/NorahUniversity/urls.py +++ b/NorahUniversity/urls.py @@ -16,7 +16,8 @@ urlpatterns = [ path('admin/', admin.site.urls), path('api/', include(router.urls)), path('accounts/', include('allauth.urls')), - path('i18n/', include('django.conf.urls.i18n')), + path('i18n/', include('django.conf.urls.i18n')), + path('summernote/', include('django_summernote.urls')), ] # 2. URLs that DO have a language prefix (user-facing views) diff --git a/db.sqlite3 b/db.sqlite3 index 0bc4b00b03ae1f0fe140a822164b0549db4c6f09..6cb77e4a342a4bff9241597863b205dfc2057bfa 100644 GIT binary patch delta 939 zcmZp8pwiHwIzd`6mw|y{3J^m9li)-hW5(Q#3EOnoYGfjq?K!3^cC$-vHq~uqVw9h} zTi-?Aj|-?)o@Xut?_1vU{O|Zr^WWm%%fEnElb4w{fM@Pz8H0KrMFkdpMaGn@#Ju$U z_~O#s+|;7H{F2nfl9I&ajNH_`68X*hY}|yIYgig4vj=?SU^&LJj%6B4!)8Z?2Igo{ z7DjDG`LfK^@_2-f8gUjzeMb3|)ST3kR3!0gh0DiIb&O-A{|loTYzm78ye zXjU`V@XAhRzwnWRS0CtVWnNjJwX!@Ctjvsz@-<+x8cbG!$;xKayW36gGM+DDmgku> zojribmWgK$P)it(qP#o{gT5jjf41+9VcNbohS|NDS&IG7boK|#hAbS;?0%9YH!v_TiZ3llNi0d#%}C8Dh%ZU4C^0fHGSxLS&^547Ff_C>GO#kS)HAWP zFg7x_@dX;AifPQ`h4P|;D5{MOOf1_QUoZnP3lOscG28aW7wpaM%xWAV)7cF;Tsb&y zajfB};|N*osK8OLQNzl>sBMfM8P17$3ZVE=K*WzuHBhC#Ic5Zb)IwqnS#=deHAb|7 zR6_(os?DIuMXeI3T+>uArjjaEjb>WDey5|VBl)!xWn>{ zql810g`3%x@h!szzTbTEyrDcb-1U0XVM%`EKVuC7c? z#U+VJIjI=YgOs4~$uUfsuGr5cDvC(|NE#`h#93w(08YndR6@3v%)k WQ>G^*GKw;4Zm+4~XxY4Ig8%@-Q7;|< delta 290 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 delta 5532 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 M&s>|_TFeOl1DysXwEzGB diff --git a/recruitment/forms.py b/recruitment/forms.py index dab5dbc..05d2ae0 100644 --- a/recruitment/forms.py +++ b/recruitment/forms.py @@ -1,10 +1,12 @@ from django import forms from .validators import validate_hash_tags -from crispy_forms.helper import FormHelper from django.core.validators import URLValidator from django.utils.translation import gettext_lazy as _ -from crispy_forms.layout import Layout, Submit, HTML, Div, Field +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 +from django_summernote.widgets import SummernoteWidget + class CandidateForm(forms.ModelForm): class Meta: @@ -150,28 +152,33 @@ class TrainingMaterialForm(forms.ModelForm): 'file': _('File'), } widgets = { - 'title': forms.TextInput(attrs={'class': 'form-control', 'placeholder': _('Enter title')}), - 'content': forms.Textarea(attrs={'rows': 6, 'class': 'form-control', 'placeholder': _('Enter material content')}), + 'title': forms.TextInput(attrs={'class': 'form-control', 'placeholder': _('Enter material title')}), + # 💡 Use SummernoteWidget here + 'content': SummernoteWidget(attrs={'placeholder': _('Enter material content')}), 'video_link': forms.URLInput(attrs={'class': 'form-control', 'placeholder': _('https://www.youtube.com/watch?v=...')}), 'file': forms.FileInput(attrs={'class': 'form-control'}), } - + + # The __init__ and FormHelper layout remains the same def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_method = 'post' - self.helper.form_class = 'form-horizontal' - self.helper.label_class = 'col-md-3' - self.helper.field_class = 'col-md-9' + self.helper.form_class = 'g-3' + self.helper.layout = Layout( - Field('title', css_class='form-control'), - Field('content', css_class='form-control'), - Div( - Field('video_link', css_class='form-control'), - Field('file', css_class='form-control'), - css_class='row' + 'title', + 'content', # Summernote is applied via the widgets dictionary + Row( + Column('video_link', css_class='col-md-6'), + Column('file', css_class='col-md-6'), + css_class='g-3 mb-4' ), - Submit('submit', _('Save Material'), css_class='btn btn-primary mt-3') + Div( + Submit('submit', _('Create Material'), + css_class='btn btn-main-action'), + css_class='col-12 mt-4' + ) ) @@ -222,25 +229,22 @@ class JobPostingForm(forms.ModelForm): 'value': 'United States' }), - # Job Details - 'description': forms.Textarea(attrs={ - 'class': 'form-control', - 'rows': 6, + # Job Details (Using SummernoteWidget) + 'description': SummernoteWidget(attrs={ + # Removed 'class' and 'rows' as Summernote handles styling 'placeholder': 'Provide a comprehensive description of the role, responsibilities, and expectations...', 'required': True }), - 'qualifications': forms.Textarea(attrs={ - 'class': 'form-control', - 'rows': 4, + 'qualifications': SummernoteWidget(attrs={ + # Removed 'class' and 'rows' 'placeholder': 'List required qualifications, skills, education, and experience...' }), 'salary_range': forms.TextInput(attrs={ 'class': 'form-control', 'placeholder': '$60,000 - $80,000' }), - 'benefits': forms.Textarea(attrs={ - 'class': 'form-control', - 'rows': 2, + 'benefits': SummernoteWidget(attrs={ + # Removed 'class' and 'rows' 'placeholder': 'Health insurance, retirement plans, tuition reimbursement, etc.' }), @@ -254,9 +258,8 @@ class JobPostingForm(forms.ModelForm): 'class': 'form-control', 'type': 'date' }), - 'application_instructions': forms.Textarea(attrs={ - 'class': 'form-control', - 'rows': 3, + 'application_instructions': SummernoteWidget(attrs={ + # Removed 'class' and 'rows' 'placeholder': 'Special instructions for applicants (e.g., required documents, reference requirements, etc.)' }), 'open_positions': forms.NumberInput(attrs={ @@ -267,8 +270,7 @@ class JobPostingForm(forms.ModelForm): 'hash_tags': forms.TextInput(attrs={ 'class': 'form-control', 'placeholder': '#hiring,#jobopening', - 'validators':validate_hash_tags, - + # 'validators':validate_hash_tags, # Assuming this is available }), # Internal Information diff --git a/templates/base.html b/templates/base.html index f47418c..5e676c5 100644 --- a/templates/base.html +++ b/templates/base.html @@ -279,7 +279,7 @@ {% endcomment %} - - - - - - -