├── .gitattributes ├── .idea ├── misc.xml ├── modules.xml ├── ojss.iml └── workspace.xml ├── __pycache__ ├── __init__.cpython-36.pyc ├── settings.cpython-36.pyc ├── urls.cpython-36.pyc └── wsgi.cpython-36.pyc ├── ojss ├── .idea │ ├── misc.xml │ ├── modules.xml │ ├── ojss.iml │ └── workspace.xml ├── db.sqlite3 ├── manage.py ├── ojss │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── settings.cpython-36.pyc │ │ ├── urls.cpython-36.pyc │ │ └── wsgi.cpython-36.pyc │ ├── settings.py │ ├── static │ │ └── ojss_app │ │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── main.css │ │ │ ├── images │ │ │ └── bg.jpg │ │ │ └── js │ │ │ └── script.js │ ├── templates │ │ ├── base.html │ │ ├── index_base.html │ │ ├── ojss_app │ │ │ ├── _calendarentry.html │ │ │ ├── _job_item.html │ │ │ ├── applicant_details.html │ │ │ ├── appliedjobs.html │ │ │ ├── category_drop_down.html │ │ │ ├── createjob.html │ │ │ ├── detail.html │ │ │ ├── editjob.html │ │ │ ├── form.html │ │ │ ├── index.html │ │ │ ├── interview.html │ │ │ ├── job_details.html │ │ │ ├── managejobs.html │ │ │ ├── recruiterprofile.html │ │ │ ├── seekerprofile.html │ │ │ ├── seekerskill.html │ │ │ ├── showapplicants.html │ │ │ └── subcategory_drop_down.html │ │ └── registration │ │ │ ├── index.html │ │ │ ├── recruiterlogin.html │ │ │ └── seekerlogin.html │ ├── urls.py │ └── wsgi.py └── ojss_app │ ├── __init__.py │ ├── __pycache__ │ ├── __init__.cpython-36.pyc │ ├── admin.cpython-36.pyc │ ├── backends.cpython-36.pyc │ ├── forms.cpython-36.pyc │ ├── models.cpython-36.pyc │ └── views.cpython-36.pyc │ ├── admin.py │ ├── apps.py │ ├── backends.py │ ├── forms.py │ ├── migrations │ ├── 0001_initial.py │ ├── 0002_seekerprofile.py │ ├── 0003_auto_20180507_0017.py │ ├── 0004_auto_20180507_2056.py │ ├── 0005_auto_20180507_2057.py │ ├── 0006_remove_recruiterprofile_company_description.py │ ├── 0007_recruiterprofile_recruiter.py │ ├── 0008_seekerskillset.py │ ├── 0009_auto_20180508_0853.py │ ├── 0010_auto_20180508_1721.py │ ├── 0011_auto_20180508_1723.py │ ├── 0012_application_name.py │ ├── 0013_auto_20180508_1728.py │ ├── 0014_application_date.py │ ├── 0015_message.py │ ├── 0016_auto_20180509_1046.py │ ├── 0017_message_date.py │ ├── 0018_category.py │ ├── 0019_job_category.py │ ├── 0020_auto_20180509_1336.py │ ├── 0021_subcategory_category.py │ ├── 0022_job_sub_category.py │ ├── 0023_interview.py │ ├── 0024_auto_20180509_1737.py │ ├── 0025_auto_20180509_2306.py │ ├── 0026_auto_20180509_2307.py │ ├── 0027_auto_20180509_2312.py │ ├── 0028_auto_20180510_1824.py │ ├── 0029_auto_20180510_1833.py │ ├── 0030_auto_20180510_1833.py │ ├── 0031_auto_20180510_1835.py │ ├── 0032_auto_20180510_1838.py │ ├── __init__.py │ └── __pycache__ │ │ ├── 0001_initial.cpython-36.pyc │ │ ├── 0002_seekerprofile.cpython-36.pyc │ │ ├── 0003_auto_20180507_0017.cpython-36.pyc │ │ ├── 0004_auto_20180507_2056.cpython-36.pyc │ │ ├── 0005_auto_20180507_2057.cpython-36.pyc │ │ ├── 0006_remove_recruiterprofile_company_description.cpython-36.pyc │ │ ├── 0007_recruiterprofile_recruiter.cpython-36.pyc │ │ ├── 0008_seekerskillset.cpython-36.pyc │ │ ├── 0009_auto_20180508_0853.cpython-36.pyc │ │ ├── 0010_auto_20180508_1721.cpython-36.pyc │ │ ├── 0011_auto_20180508_1723.cpython-36.pyc │ │ ├── 0012_application_name.cpython-36.pyc │ │ ├── 0013_auto_20180508_1728.cpython-36.pyc │ │ ├── 0014_application_date.cpython-36.pyc │ │ ├── 0015_message.cpython-36.pyc │ │ ├── 0016_auto_20180509_1046.cpython-36.pyc │ │ ├── 0017_message_date.cpython-36.pyc │ │ ├── 0018_category.cpython-36.pyc │ │ ├── 0019_job_category.cpython-36.pyc │ │ ├── 0020_auto_20180509_1336.cpython-36.pyc │ │ ├── 0021_subcategory_category.cpython-36.pyc │ │ ├── 0022_job_sub_category.cpython-36.pyc │ │ ├── 0023_interview.cpython-36.pyc │ │ ├── 0024_auto_20180509_1737.cpython-36.pyc │ │ ├── 0025_auto_20180509_2306.cpython-36.pyc │ │ ├── 0026_auto_20180509_2307.cpython-36.pyc │ │ ├── 0027_auto_20180509_2312.cpython-36.pyc │ │ ├── 0028_auto_20180510_1824.cpython-36.pyc │ │ ├── 0029_auto_20180510_1833.cpython-36.pyc │ │ ├── 0030_auto_20180510_1833.cpython-36.pyc │ │ ├── 0031_auto_20180510_1835.cpython-36.pyc │ │ ├── 0032_auto_20180510_1838.cpython-36.pyc │ │ └── __init__.cpython-36.pyc │ ├── models.py │ ├── tests.py │ └── views.py ├── settings.py ├── static └── ojss_app │ ├── css │ ├── bootstrap.css │ └── main.css │ ├── images │ └── bg.jpg │ └── js │ └── script.js ├── templates ├── base.html ├── index_base.html ├── ojss_app │ ├── _calendarentry.html │ ├── _job_item.html │ ├── detail.html │ ├── form.html │ ├── index.html │ ├── job_details.html │ └── seekerprofile.html └── registration │ ├── index.html │ ├── recruiterlogin.html │ └── seekerlogin.html ├── urls.py └── wsgi.py /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/ojss.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 27 | 28 | 29 | 31 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | true 44 | DEFINITION_ORDER 45 | 46 | 47 | 48 | 49 | 50 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 168 | 169 | 170 | 171 | 172 | 173 | 174 |
175 | 176 | 184 | 185 | 186 |
187 | 188 |
189 | 190 | 197 | 198 | 199 |
200 | 201 |
202 | 203 | 213 | 214 | 215 |
216 | 217 | 218 | 219 |
220 | 221 | 222 | 223 | 224 |
225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 |
248 | 249 |
250 | 251 | 252 | 253 | 254 | 255 | 256 | {% block content %} 257 | {% endblock content %} 258 | 259 | 260 | 261 | 262 | 263 | 373 | 374 | -------------------------------------------------------------------------------- /ojss/ojss/templates/index_base.html: -------------------------------------------------------------------------------- 1 | {% load staticfiles %} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 22 | OJSS 23 | 24 | 25 | 26 | 27 | {% block content %} 28 | 29 | 30 | {% endblock %} 31 | 32 | -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/_calendarentry.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |

{{ entry.name }}

6 |

{{ entry.date }}

7 |

{{ entry.desc }}

8 | View Details 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/_job_item.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {% if results %} 4 | 5 | {% for item in results %} 6 | 7 |
8 | 9 | 10 |
11 |
12 | 13 |

{{ item.job_role }}

14 | 15 |
16 | 17 |
18 |
19 |
20 | 21 |

Organization :{{ item.organization }}

22 | 23 |
24 |
25 | 26 |
27 |
28 | 29 | 30 |
Location : {{ item.location }}
31 | 32 |
33 | 34 |
35 | 36 | 37 |
38 |
39 | 40 |
Renumeration : {{ item.remuneration }}
41 | 42 |
43 | 44 |
45 | 46 |
47 |
48 | 49 |
Deadline : {{ item.deadline }}
50 | 51 |
52 | 53 |
54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 |
62 | 63 |

{{ item.job_description|slice:":255" }}

64 | 65 |
66 | 67 | 68 |
69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 |
79 | 80 | {% endfor %} 81 | 82 | {% else %} 83 | 84 | 85 |
86 | 87 | {% if messages %} 88 | 89 | {% for message in messages %} 90 | 91 | 92 |

{{ message }}

93 | 94 | 95 | 96 | {% endfor %} 97 | 98 | {% endif %} 99 | 100 |
101 | 102 | 103 | 104 | {% endif %} 105 | 106 | 107 | 108 | 109 |
110 | -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/applicant_details.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 | 9 |
10 | 11 | {% if messages %} 12 | 13 | {% for message in messages %} 14 | 15 |
{{ message }}
16 | 17 | {% endfor %} 18 | 19 | {% endif %} 20 | 21 |
22 | 23 | 24 | {% comment %}{% endcomment %} 118 | 119 | 120 |
121 | 122 | {% if seeker and application %} 123 | 124 |
125 | 126 |

Applicant Details

127 | 128 |
129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 |
Application Status 138 | {% if application.status == 'A' %} 139 | ACTIVE APPLICATION 140 | 141 | 142 | 145 | 146 | 147 | 148 | 149 | {% elif application.status == 'S' %} 150 | APPLICANT SELECTED 151 | 152 | 153 | 155 | 156 | 157 | 158 | 159 | {% elif application.status == 'I' %} 160 | 161 | 163 | 164 | {% else %} APPLICANT REJECTED 165 | 166 | 167 | 170 | 171 | {% endif %} 172 | 173 | 174 | 175 |
First Name {{ seeker.first_name }}
Last Name {{ seeker.last_name }}
Matching Score {{ application.matching_score }}
Cover Letter{{ application.cover_letter }}
CV {{ application.cv }}
Gender {% if seeker.gender == 'M' %} Male {% else %} Female {% endif %}
Address {{ seeker.address }}
Phone {{ seeker.phone }}
Current Job {{ seeker.current_job_role }}
Current Company {{ seeker.current_company }}
231 | 232 | 233 | {% endif %} 234 | 235 | 236 |
237 | 238 | 239 | 240 | 241 | 242 |
243 | 244 | 245 | {% endblock %} 246 | -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/appliedjobs.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | 4 | {% block content %} 5 | 6 | 7 |
8 | 9 | 10 |
11 | 12 | 13 | 14 | {% if applications %} 15 | 16 |

Applied Jobs

17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | {% for item in applications %} 32 | 33 | 34 | 35 | {% if item.status == 'A' %} 36 | 37 | {% elif item.status == 'I' %} 38 | 39 | {% elif item.status == 'R' %} 40 | 41 | {% else %} 42 | 43 | {% endif %} 44 | 45 | 46 | 47 | 48 | 49 | 50 | {% if item.status == 'R' %} 51 | 52 | {% elif item.status == "A" %} 53 | 54 | {% elif item.status == "I" %} 55 | 56 | {% else %} 57 | {% endif %} 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | {% endfor %} 66 | 67 | 68 | 69 |
#Application IdYour ScoreApplied dateStatus
{{ forloop.counter }}{{ item.id }}{{ item.matching_score }}{{ item.date }} Application rejected Application sentSelected for interview Selected for next round
70 | 71 | {% else %} 72 | 73 |
You have not applied for any jobs
74 | 75 | {% endif %} 76 | 77 |
78 | 79 | 80 |
81 | 82 | 83 | 84 | 85 | 86 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/category_drop_down.html: -------------------------------------------------------------------------------- 1 | 2 | {% for item in category %} 3 | 4 | {% endfor %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/createjob.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 8 | 9 |
10 | 11 | {% if messages %} 12 | 13 | {% for message in messages %} 14 | 15 |

{{ message }}

16 | 17 | {% endfor %} 18 | 19 | {% endif %} 20 | 21 |
22 | 23 | 24 |
25 | 26 | {% if form %} 27 |

CREATE NEW JOB

28 | {% else %} 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | {% endif %} 41 | 42 |
43 | 44 | 45 |
46 | 47 | 48 | 49 | 50 |
51 | 52 | {% csrf_token %} 53 | 54 |
55 | 56 | {% for field in form %} 57 | 58 | {% if field.label == 'ad_choices' %} 59 | 60 |

Advertise Job Now

61 | 62 | 63 | 64 | 78 | 79 | {% elif field.label == 'Category' %} 80 | 81 | 82 | 93 | 94 | 95 | 96 | {% elif field.label == 'Sub category' %} 97 | 98 | 99 | 110 | 111 | 112 | 113 | {% elif field.label == "Deadline" %} 114 | 115 | 116 | 118 | 120 | 121 | 122 | 123 | {% elif field.label == "Job description" %} 124 | 125 | 128 | 131 | 132 | 133 | {% else %} 134 | 136 | 138 | 139 | {% endif %} 140 | {{ field.errors }} 141 | {% endfor %} 142 | 143 | 144 | 145 |
146 | 147 | 148 | {% if form %} 149 | 150 |
151 | 152 | 153 | 154 | 155 | 156 | 157 |
158 | 159 | 160 |
161 | 162 |
163 | 164 | {% endif %} 165 | 166 | 167 | 168 | 169 | 170 |
171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/detail.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | 4 | {% block content %} 5 |
6 | 7 | 8 |

{{ entries.name }}

9 |

{{ entries.date }}

10 | 11 | 12 |
13 | 14 | {% endblock content %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/editjob.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 | 9 | 10 |
11 | 12 | {% if messages %} 13 | 14 | {% for message in messages %} 15 | 16 |

{{ message }}

17 | 18 | {% endfor %} 19 | 20 | {% endif %} 21 | 22 |
23 | 24 | {% if form %} 25 | 26 |
27 |

EDIT JOB

28 |
29 | 30 | {% endif %} 31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 | 39 |
40 | 41 | {% csrf_token %} 42 | 43 |
44 | 45 | {% for field in form %} 46 | 47 | {% if field.label == 'ad_choices' %} 48 | 49 |

Advertise Job Now

50 | 63 | 64 | 65 | {% elif field.label == "Deadline" %} 66 | 67 | 68 | 70 | 73 | 74 | 75 | 76 | {% elif field.label == "Job description" %} 77 | 78 | 81 | 84 | 85 | 86 | 87 | 88 | {% elif field.label == 'Category' %} 89 | 90 | 91 | 103 | 104 | 105 | 106 | {% elif field.label == 'Sub category' %} 107 | 108 | 109 | 110 | 119 | 120 | 121 | 122 | {% else %} 123 | 125 | 128 | 129 | {% endif %} 130 | {{ field.errors }} 131 | {% endfor %} 132 | 133 | 134 | 135 |
136 | 137 | 138 | {% if form %} 139 | 140 | 141 |
142 | 143 | 144 | 145 | 146 | 147 | 148 |
149 | 150 | {% endif %} 151 | 152 | 153 |
154 | 155 |
156 | 157 |
158 | 159 | 160 | 161 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/form.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 |
8 | 9 |
10 |

ADD A NEW ENTRY

11 |
12 | 13 |
14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 |
22 | {% csrf_token %} 23 | 24 | {% for field in form %} 25 | 26 | 27 | {{ field.errors }} 28 | 29 | {% endfor %} 30 | 31 | 32 |
33 | 34 | 35 | 36 |
37 | 38 | 39 | {% endblock content %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/index.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | 4 | {% block content %} 5 | 6 | 7 | {% if request.user.is_seeker %} 8 | 9 | 10 | 11 | {% include 'ojss_app/_job_item.html' %} 12 | 13 | 14 | {% else %} 15 | 16 | 17 | {% if messages %} 18 | 19 | {% for message in messages %} 20 | 21 | {% if message.tags == 'success' %} 22 |
23 |

{{ message }}

24 |
25 | {% endif %} 26 | {% endfor %} 27 | 28 | {% endif %} 29 | 30 | 31 |
32 | 33 | {% include 'ojss_app/_job_item.html' %} 34 | 35 |
36 | 37 | 38 | 39 | 40 | {% endif %} 41 | 42 | 43 | 44 | 45 | {% endblock content %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/interview.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | 4 | {% block content %} 5 | 6 | 100 | 101 | 102 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/job_details.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 8 |
9 | 10 | {% if messages %} 11 | 12 | {% for message in messages %} 13 | 14 | 15 |

{{ message }}

16 | 17 | 18 | 19 | {% endfor %} 20 | 21 | {% endif %} 22 | 23 |
24 | 25 | 26 | 53 | 54 | 55 | {% if job %} 56 | 57 |
58 | 59 | 60 |
61 |
62 | 63 |

{{ job.job_role }}

64 | 65 |
66 | 67 |
68 |
69 |
70 | 71 |

Organization : {{ job.organization }}

72 | 73 |
74 |
75 | 76 |
77 |
78 | 79 | 80 |
Location : {{ job.location }}
81 | 82 |
83 | 84 |
85 | 86 | 87 |
88 |
89 | 90 |
Renumeration : {{ job.remuneration }}
91 | 92 |
93 | 94 |
95 | 96 | 97 |
98 |
99 | 100 |
Required Skills   :    101 | {{ job.skill_required_1 }}   102 | {{ job.skill_required_2 }} 103 | 104 |
105 | 106 |
107 | 108 | 109 |
110 |
111 | 112 |
Desirable Skills   :    113 | {% if job.skill_required_3 %} {{ job.skill_required_3 }} {% endif %}   114 | {% if job.skill_required_4 %} {{ job.skill_required_4 }} {% endif %}    115 | {% if job.skill_required_5 %} {{ job.skill_required_5 }} {% endif %}
116 | 117 |
118 | 119 |
120 | 121 | 122 |
123 | 124 | 125 |
126 | 127 | {% if request.user.is_seeker and status == 'T' %} 128 | 130 | 131 | {% else %} 132 |
You have already applied for this job
133 | {% endif %} 134 |
135 | 136 | 137 | 138 | 139 |
140 | 141 |
142 | 143 |

{{ job.job_description }}

144 | 145 |
146 | 147 | 148 |
149 | 150 | 151 | 152 | 153 | 154 | 155 |
156 | 157 | {% endif %} 158 | 159 |
160 | 161 | 162 | {% endblock content %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/managejobs.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 |
22 | 23 | {% if messages %} 24 | 25 | {% for message in messages %} 26 | 27 |

{{ message }}

28 | 29 | {% endfor %} 30 | 31 | {% endif %} 32 | 33 |
34 | 35 | 36 |
37 | 38 | 39 | 40 | 41 |
42 | 43 | 44 |
45 | 46 | 47 | 48 | {% if jobs %} 49 | 50 |

Created Jobs

51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | {% for item in jobs %} 69 | 70 | {% if item.job_ad_flag == 'Y' or item.job_ad_flag == 'y' %} 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 87 | 90 | 91 | 92 | 93 | {% endif %} 94 | 95 | 96 | 97 | {% endfor %} 98 | 99 | {% for item in jobs %} 100 | 101 | {% if item.job_ad_flag == 'N' or item.job_ad_flag == 'n' %} 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 118 | 121 | 122 | 123 | 124 | {% endif %} 125 | 126 | 127 | 128 | {% endfor %} 129 | 130 | 131 | 132 |
#Job RoleJob DescriptionRemunerationPosted DateDeadline Advertised (Yes/No)
{{ forloop.counter }}{{ item.job_role }}{{ item.job_description }}{{ item.remuneration }}{{ item.posted_date }}{{ item.deadline }}{{ item.job_ad_flag }} 83 | 84 | 86 | 88 |
{{ forloop.counter }}{{ item.job_role }}{{ item.job_description }}{{ item.remuneration }}{{ item.posted_date }}{{ item.deadline }}{{ item.job_ad_flag }} 114 | 115 | 117 | 119 |
133 | 134 | {% else %} 135 | 136 |
You have not created any jobs
137 | 138 | {% endif %} 139 | 140 |
141 | 142 | 143 |
144 | 145 | 146 | 147 | 148 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/recruiterprofile.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 |
9 | 10 |

PROFILE

11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 | 23 | 24 | 25 |
26 | {% csrf_token %} 27 | 28 |
29 | 30 | 32 | 33 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 |
43 | 44 | 45 | 46 |
47 | 48 | 49 | {% for field in form %} 50 | 51 | {% if field.label == 'Gender' %} 52 | 53 |

{{ field.label }}

54 | 67 | 68 | 69 | {% else %} 70 | 72 | 74 | 75 | {% endif %} 76 | {{ field.errors }} 77 | {% endfor %} 78 | 79 | 80 | 81 |
82 | 83 | 84 | 85 |
86 | 87 |
88 | 89 |
90 | 91 | 92 |
93 | 94 | 95 | 96 | 97 | 98 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/seekerprofile.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 |
9 | 10 |

PROFILE

11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 | 23 | 24 | 25 |
26 | {% csrf_token %} 27 | 28 |
29 | 30 | 32 | 33 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 |
43 | 44 | 45 | 46 |
47 | 48 | 49 | {% for field in form %} 50 | 51 | {% if field.label == 'Gender' %} 52 | 53 |

{{ field.label }}

54 | 67 | 68 | {% elif field.label == 'Birthdate' %} 69 | 70 | 72 | 76 | 77 | {% else %} 78 | 80 | 82 | 83 | {% endif %} 84 | {{ field.errors }} 85 | {% endfor %} 86 | 87 | 88 | 89 |
90 | 91 | 92 | 93 |
94 | 95 |
96 | 97 |
98 | 99 | 100 |
101 | 102 | 103 | 104 | 105 | 106 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/seekerskill.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 8 |
9 | 10 |

SKILL

11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 |
22 | {% csrf_token %} 23 | 24 |
25 | 26 | 28 | 29 | 31 | 32 |
33 | 34 | 35 |
36 | 37 | {% if messages %} 38 | 39 | {% for message in messages %} 40 | 41 |

{{ message }}

42 | 43 | {% endfor %} 44 | 45 | {% endif %} 46 | 47 |
48 | 49 | 50 | 51 |
52 | 53 |
54 | 55 | 56 | {% for field in form %} 57 | 58 |
59 | 60 | 61 | 62 | 64 | {{ field.errors }} 65 | 66 |
67 | 68 | 69 | {% endfor %} 70 | 71 | 72 |
73 | 74 | 75 | 76 | 77 |
78 | 79 | 80 | 81 |
82 |
83 |
84 | 85 | 86 | 87 | 88 | 89 | 90 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/showapplicants.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 8 | 9 |
10 | 11 | {% if messages %} 12 | 13 | {% for message in messages %} 14 | 15 |

{{ message }}

16 | 17 | {% endfor %} 18 | 19 | {% endif %} 20 | 21 |
22 | 23 | {% if applications %} 24 | 25 |
26 | 27 |

Applicants

28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | {% for item in applications %} 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | {% endfor %} 60 | 61 | 62 |
#Applicant nameMatching Score
{{ forloop.counter }}{{ item.seeker_name }}{{ item.matching_score }} 49 | 53 |
63 | 64 |
65 | 66 | 67 | {% else %} 68 | 69 |
70 | 71 |
You dont have any applicants currently
72 | 73 | 74 |
75 | 76 | 77 | 78 | {% endif %} 79 | 80 | 81 |
82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/ojss_app/subcategory_drop_down.html: -------------------------------------------------------------------------------- 1 | 2 | {% for item in sub_category %} 3 | 4 | {% endfor %} -------------------------------------------------------------------------------- /ojss/ojss/templates/registration/index.html: -------------------------------------------------------------------------------- 1 | {% extends 'index_base.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 | 13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 | 25 |
26 | 27 | 28 | 29 |
30 | 31 |
32 | {% csrf_token %} 33 | 34 | {% for field in form %} 35 | 36 | 37 | {% if field.label == "Password" or field.label == "Password confirmation"%} 38 | 39 | 41 | 42 | {% else %} 43 | 44 | {% endif %} 45 | {{ field.errors }} 46 | {{ form.non_field_errors }} 47 | 48 | 49 | {% endfor %} 50 |
51 |
52 | 53 | 54 | 55 |
56 | 57 |
58 | 59 |
60 | 61 | 62 | 67 | 72 | 73 | 74 | 75 | 76 | 77 | 78 |
79 | 80 | 81 | 82 |
83 |
84 | 85 | 86 | {% endblock %} -------------------------------------------------------------------------------- /ojss/ojss/templates/registration/recruiterlogin.html: -------------------------------------------------------------------------------- 1 | {% extends "index_base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 | 13 | 14 |
15 | 16 | 17 |
18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 |
26 | 27 |
28 | 29 |
30 | {% csrf_token %} 31 | 32 | {% for field in form %} 33 | 34 | {% if field.label == "Password" or field.label == "Password confirmation"%} 35 | 36 | 37 | 38 | {% else %} 39 | 40 | {% endif %} 41 | {{ field.errors }} 42 | 43 | {% endfor %} 44 |
45 | 46 |
47 | 48 |
49 | 50 | 51 |
52 | 53 | 54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 | {% endblock content %} -------------------------------------------------------------------------------- /ojss/ojss/templates/registration/seekerlogin.html: -------------------------------------------------------------------------------- 1 | {% extends "index_base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 12 | 13 |
14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 |
26 | 27 |
28 | 29 |
30 | {% csrf_token %} 31 | 32 | {% for field in form %} 33 | 34 | {% if field.label == "Password" or field.label == "Password confirmation"%} 35 | 36 | 37 | 38 | {% else %} 39 | 40 | {% endif %} 41 | {{ field.errors }} 42 | 43 | {% endfor %} 44 |
45 | 46 |
47 | 48 |
49 | 50 |
51 | 52 | 53 | 54 | 55 | 56 |
57 | 58 | 59 | 60 |
61 | 62 | {% endblock content %} -------------------------------------------------------------------------------- /ojss/ojss/urls.py: -------------------------------------------------------------------------------- 1 | """ojss URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.0/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path 18 | from ojss_app import views 19 | from django.contrib.auth.views import login 20 | 21 | urlpatterns = [ 22 | path('admin/', admin.site.urls), 23 | path("", views.index, name='index'), 24 | path("search", views.search, name='search'), 25 | path("job_details/",views.job_details, name="job_details"), 26 | path("apply/", views.apply, name='apply'), 27 | path("see_applications", views.my_applications, name="my_applications"), 28 | path("seeker_register",views.seekerRegister, name='seeker_register'), 29 | path("recruiter_register", views.recruiterRegister, name='recruiter_register'), 30 | path("^search?", views.search_for_jobs, name="search_list"), 31 | path("seekerprofile",views.seekerProfile, name= 'seeker_profile'), 32 | path("recruiterprofile",views.recruiterProfile, name='recruiter_profile'), 33 | path("skills",views.skills, name='skills'), 34 | path("add_jobs", views.add_job, name='add_job'), 35 | path("manage_jobs", views.manage_jobs, name='manage_jobs'), 36 | path('job_edit/', views.edit_job, name='job_edit'), 37 | path('applications/',views.applications, name='applications'), 38 | path('applicant_details//',views.applicant_details, name='applicant_details'), 39 | path('accept_applicant/',views.accept_applicant, name='accept_applicant'), 40 | path('reject_applicant/',views.reject_applicant, name='reject_applicant'), 41 | path('logout', views.logout_user, name='logout'), 42 | path('ajax/load_subcategory',views.subcategory, name='subcategory'), 43 | path('interview_call/', views.interview_call, name='send_interview_call'), 44 | path('ajax/load_category', views.category, name='category') 45 | ] 46 | 47 | #change add_jobs and job_edits -------------------------------------------------------------------------------- /ojss/ojss/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for ojss project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ojss.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /ojss/ojss_app/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__init__.py -------------------------------------------------------------------------------- /ojss/ojss_app/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/__pycache__/admin.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__pycache__/admin.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/__pycache__/backends.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__pycache__/backends.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/__pycache__/forms.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__pycache__/forms.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/__pycache__/models.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__pycache__/models.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/__pycache__/views.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/__pycache__/views.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import User,SeekerProfile,RecruiterProfile,Job,SeekerSkillset 3 | 4 | 5 | 6 | 7 | 8 | admin.site.register(User) 9 | admin.site.register(SeekerProfile) 10 | admin.site.register(Job) 11 | admin.site.register(RecruiterProfile) 12 | admin.site.register(SeekerSkillset) -------------------------------------------------------------------------------- /ojss/ojss_app/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class OjssAppConfig(AppConfig): 5 | name = 'ojss_app' 6 | -------------------------------------------------------------------------------- /ojss/ojss_app/backends.py: -------------------------------------------------------------------------------- 1 | from .models import User 2 | 3 | 4 | class CustomUserAuth(object): 5 | 6 | def authenticate(self, username=None, password=None): 7 | try: 8 | user = User.object.get(email=username) 9 | if user.check_password(password): 10 | return user 11 | except User.DoesNotExist: 12 | return None 13 | 14 | def get_user(self,user_id): 15 | try: 16 | user = User.object.get(pk=user_id) 17 | if user.is_active: 18 | return user 19 | return None 20 | except User.DoesNotExist: 21 | return None -------------------------------------------------------------------------------- /ojss/ojss_app/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from django.forms import ModelForm 3 | from django.contrib.auth.forms import UserCreationForm 4 | from django.contrib.auth.forms import ReadOnlyPasswordHashField 5 | from .models import User,SeekerProfile,RecruiterProfile,SeekerSkillset,Job,Category,Subcategory, Interview, Application 6 | 7 | 8 | 9 | class SeekerRegistrationForm(UserCreationForm): 10 | email = forms.EmailField(required=True,max_length=255) 11 | 12 | 13 | class Meta: 14 | model = User 15 | fields = ( 16 | 'email', 17 | 'password1', 18 | 'password2' 19 | ) 20 | 21 | 22 | def save(self, commit=True): 23 | user = super(UserCreationForm,self).save(commit=False) 24 | user.email = self.cleaned_data['email'] 25 | user.set_password(self.cleaned_data['password1']) 26 | user.is_seeker = True 27 | user.is_recruiter = False 28 | 29 | if commit: 30 | user.save() 31 | 32 | 33 | return user 34 | 35 | 36 | class RecruiterRegistrationForm(UserCreationForm): 37 | email = forms.EmailField(required=True,max_length=255) 38 | 39 | class Meta: 40 | model = User 41 | 42 | fields = ( 43 | 'email', 44 | 'password1', 45 | 'password2' 46 | 47 | ) 48 | 49 | 50 | def save(self, commit=True): 51 | user = super(UserCreationForm,self).save(commit=False) 52 | user.email = self.cleaned_data['email'] 53 | user.set_password(self.cleaned_data['password1']) 54 | user.is_seeker = False 55 | user.is_recruiter = True 56 | 57 | if commit: 58 | user.save() 59 | 60 | return user 61 | 62 | 63 | 64 | class SeekerProfileForm(forms.Form): 65 | 66 | 67 | class Meta: 68 | model = SeekerProfile 69 | 70 | GENDER_CHOICES = [ 71 | ('M', 'MALE'), 72 | ('F', 'FEMALE'), 73 | ] 74 | 75 | first_name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 76 | last_name = forms.CharField(widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 77 | gender = forms.ChoiceField(label='Gender',choices=GENDER_CHOICES,widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 78 | address = forms.CharField(widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 79 | phone = forms.IntegerField(widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 80 | birthDate = forms.DateTimeField(widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 81 | current_job_role = forms.CharField(widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 82 | current_company = forms.CharField(widget=forms.TextInput(attrs={'class' : 'profile-form-style'})) 83 | 84 | 85 | 86 | class RecruiterProfileForm(forms.Form): 87 | 88 | 89 | class Meta: 90 | model = RecruiterProfile 91 | 92 | GENDER_CHOICES = [ 93 | ('M', 'MALE'), 94 | ('F', 'FEMALE'), 95 | ] 96 | 97 | first_name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 98 | last_name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 99 | gender = forms.ChoiceField(label='Gender', choices=GENDER_CHOICES, 100 | widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 101 | company_name = forms.CharField(widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 102 | company_address = forms.CharField(widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 103 | company_phone = forms.IntegerField(widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 104 | job_role = forms.CharField(widget=forms.TextInput(attrs={'class': 'profile-form-style'})) 105 | 106 | 107 | 108 | class SkillForm(forms.Form): 109 | 110 | class Meta: 111 | model = SeekerSkillset 112 | 113 | skill_1 = forms.CharField(max_length=255) 114 | skill_2 = forms.CharField(max_length=255, required=False) 115 | skill_3 = forms.CharField(max_length=255, required=False) 116 | skill_4 = forms.CharField(max_length=255, required=False) 117 | skill_5 = forms.CharField(max_length=255, required=False) 118 | 119 | 120 | 121 | class CreateJobForm(forms.Form): 122 | 123 | 124 | AD_CHOICES = [ 125 | ('Y', 'YES'), 126 | ('N', 'NO'), 127 | ] 128 | 129 | class Meta: 130 | model = Job 131 | 132 | job_role = forms.CharField(max_length=255) 133 | job_description = forms.CharField(max_length=255, widget=forms.Textarea) 134 | category = forms.ModelChoiceField(queryset=Category.objects.all()) 135 | sub_category = forms.ModelChoiceField(queryset=Subcategory.objects.all()) 136 | organization = forms.CharField(max_length=255) 137 | remuneration = forms.IntegerField() 138 | location = forms.CharField(max_length=255) 139 | skill_required_1 = forms.CharField(max_length=255) 140 | skill_required_2 = forms.CharField(max_length=255) 141 | skill_required_3 = forms.CharField(max_length=255, required=False) 142 | skill_required_4 = forms.CharField(max_length=255,required=False) 143 | skill_required_5 = forms.CharField(max_length=255, required=False) 144 | deadline = forms.DateField() 145 | job_ad_flag = forms.ChoiceField(label='ad_choices', choices=AD_CHOICES) 146 | 147 | 148 | 149 | class InterviewForm(forms.Form): 150 | 151 | class Meta: 152 | model = Interview 153 | 154 | interview_Date = forms.DateField() 155 | interview_description = forms.CharField(max_length=1000) 156 | 157 | 158 | 159 | 160 | class Application_form(forms.Form): 161 | 162 | class Meta: 163 | model = Application 164 | field = ('cv', 'cover_letter') 165 | 166 | 167 | cv = forms.CharField(max_length=1000, widget=forms.Textarea) 168 | cover_letter = forms.CharField(max_length=1000, widget=forms.Textarea) 169 | 170 | 171 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-05 10:11 2 | 3 | from django.db import migrations, models 4 | import django.db.models.manager 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | initial = True 10 | 11 | dependencies = [ 12 | ] 13 | 14 | operations = [ 15 | migrations.CreateModel( 16 | name='User', 17 | fields=[ 18 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 19 | ('password', models.CharField(max_length=128, verbose_name='password')), 20 | ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), 21 | ('email', models.EmailField(max_length=255, unique=True, verbose_name='Email Address')), 22 | ('is_active', models.BooleanField(default=True)), 23 | ('is_recruiter', models.BooleanField(default=False)), 24 | ('is_seeker', models.BooleanField(default=False)), 25 | ('is_staff', models.BooleanField(default=False)), 26 | ('is_admin', models.BooleanField(default=False)), 27 | ('register_Date', models.DateTimeField(auto_now_add=True)), 28 | ], 29 | options={ 30 | 'abstract': False, 31 | }, 32 | managers=[ 33 | ('object', django.db.models.manager.Manager()), 34 | ], 35 | ), 36 | ] 37 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0002_seekerprofile.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-06 14:07 2 | 3 | from django.conf import settings 4 | from django.db import migrations, models 5 | import django.db.models.deletion 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('ojss_app', '0001_initial'), 12 | ] 13 | 14 | operations = [ 15 | migrations.CreateModel( 16 | name='SeekerProfile', 17 | fields=[ 18 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 19 | ('first_name', models.CharField(max_length=255)), 20 | ('last_name', models.CharField(max_length=255)), 21 | ('gender', models.CharField(choices=[('M', 'MALE'), ('F', 'FEMALE')], default='M', max_length=1)), 22 | ('address', models.CharField(max_length=255)), 23 | ('phone', models.IntegerField(max_length=10)), 24 | ('birthDate', models.DateTimeField()), 25 | ('current_job_role', models.CharField(max_length=255)), 26 | ('current_company', models.CharField(max_length=255)), 27 | ('seeker', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), 28 | ], 29 | ), 30 | ] 31 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0003_auto_20180507_0017.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-06 14:17 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0002_seekerprofile'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='seekerprofile', 15 | name='birthDate', 16 | field=models.DateField(), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0004_auto_20180507_2056.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-07 10:56 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0003_auto_20180507_0017'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Job', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('job_role', models.CharField(max_length=255)), 19 | ('job_description', models.CharField(max_length=255)), 20 | ('organization', models.CharField(max_length=255)), 21 | ('remuneration', models.IntegerField()), 22 | ('location', models.CharField(max_length=255)), 23 | ('skill_required_1', models.CharField(max_length=255)), 24 | ('skill_required_2', models.CharField(max_length=255)), 25 | ('skill_required_3', models.CharField(blank=True, max_length=255, null=True)), 26 | ('skill_required_4', models.CharField(blank=True, max_length=255, null=True)), 27 | ('skill_required_5', models.CharField(blank=True, max_length=255, null=True)), 28 | ('deadline', models.DateField()), 29 | ('posted_date', models.DateField(auto_now_add=True)), 30 | ('job_ad_flag', models.CharField(max_length=1)), 31 | ], 32 | ), 33 | migrations.CreateModel( 34 | name='RecruiterProfile', 35 | fields=[ 36 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 37 | ('first_name', models.CharField(max_length=255)), 38 | ('last_name', models.CharField(max_length=255)), 39 | ('gender', models.CharField(choices=[('M', 'MALE'), ('F', 'FEMALE')], default='M', max_length=1)), 40 | ('company_name', models.CharField(max_length=255)), 41 | ('company_description', models.CharField(max_length=255)), 42 | ('company_address', models.CharField(max_length=255)), 43 | ('company_phone', models.IntegerField()), 44 | ('job_role', models.CharField(max_length=255)), 45 | ], 46 | ), 47 | migrations.AddField( 48 | model_name='job', 49 | name='recruiter_id', 50 | field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.RecruiterProfile'), 51 | ), 52 | ] 53 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0005_auto_20180507_2057.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-07 10:57 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0004_auto_20180507_2056'), 11 | ] 12 | 13 | operations = [ 14 | migrations.RemoveField( 15 | model_name='job', 16 | name='recruiter_id', 17 | ), 18 | migrations.AddField( 19 | model_name='job', 20 | name='recruiter', 21 | field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ojss_app.RecruiterProfile'), 22 | preserve_default=False, 23 | ), 24 | ] 25 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0006_remove_recruiterprofile_company_description.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-07 11:16 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0005_auto_20180507_2057'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RemoveField( 14 | model_name='recruiterprofile', 15 | name='company_description', 16 | ), 17 | ] 18 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0007_recruiterprofile_recruiter.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-07 12:01 2 | 3 | from django.conf import settings 4 | from django.db import migrations, models 5 | import django.db.models.deletion 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('ojss_app', '0006_remove_recruiterprofile_company_description'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='recruiterprofile', 17 | name='recruiter', 18 | field=models.OneToOneField(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), 19 | preserve_default=False, 20 | ), 21 | ] 22 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0008_seekerskillset.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-07 22:37 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0007_recruiterprofile_recruiter'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='SeekerSkillset', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('skill1', models.CharField(max_length=255)), 19 | ('skill2', models.CharField(blank=True, max_length=255, null=True)), 20 | ('skill3', models.CharField(blank=True, max_length=255, null=True)), 21 | ('skill4', models.CharField(blank=True, max_length=255, null=True)), 22 | ('skill5', models.CharField(blank=True, max_length=255, null=True)), 23 | ('seeker', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.SeekerProfile')), 24 | ], 25 | ), 26 | ] 27 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0009_auto_20180508_0853.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-07 22:53 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0008_seekerskillset'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RenameField( 14 | model_name='seekerskillset', 15 | old_name='skill1', 16 | new_name='skill_1', 17 | ), 18 | migrations.RenameField( 19 | model_name='seekerskillset', 20 | old_name='skill2', 21 | new_name='skill_2', 22 | ), 23 | migrations.RenameField( 24 | model_name='seekerskillset', 25 | old_name='skill3', 26 | new_name='skill_3', 27 | ), 28 | migrations.RenameField( 29 | model_name='seekerskillset', 30 | old_name='skill4', 31 | new_name='skill_4', 32 | ), 33 | migrations.RenameField( 34 | model_name='seekerskillset', 35 | old_name='skill5', 36 | new_name='skill_5', 37 | ), 38 | ] 39 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0010_auto_20180508_1721.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-08 07:21 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0009_auto_20180508_0853'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Application', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('cover_letter', models.CharField(max_length=1000)), 19 | ('cv', models.CharField(max_length=1000)), 20 | ('matching_score', models.IntegerField()), 21 | ('status', models.CharField(choices=[('A', 'ACTIVE'), ('S', 'SELECTED'), ('R', 'REJECTED')], default='M', max_length=1)), 22 | ], 23 | ), 24 | migrations.AlterField( 25 | model_name='job', 26 | name='job_description', 27 | field=models.CharField(max_length=1000), 28 | ), 29 | migrations.AddField( 30 | model_name='application', 31 | name='job_id', 32 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.Job'), 33 | ), 34 | migrations.AddField( 35 | model_name='application', 36 | name='seeker_id', 37 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.SeekerProfile'), 38 | ), 39 | ] 40 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0011_auto_20180508_1723.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-08 07:23 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0010_auto_20180508_1721'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RenameField( 14 | model_name='application', 15 | old_name='job_id', 16 | new_name='job', 17 | ), 18 | migrations.RenameField( 19 | model_name='application', 20 | old_name='seeker_id', 21 | new_name='seeker', 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0012_application_name.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-08 07:27 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0011_auto_20180508_1723'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='application', 15 | name='name', 16 | field=models.CharField(default=1, max_length=255), 17 | preserve_default=False, 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0013_auto_20180508_1728.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-08 07:28 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0012_application_name'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RenameField( 14 | model_name='application', 15 | old_name='name', 16 | new_name='seeker_name', 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0014_application_date.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 00:28 2 | 3 | from django.db import migrations, models 4 | import django.utils.timezone 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0013_auto_20180508_1728'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='application', 16 | name='date', 17 | field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), 18 | preserve_default=False, 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0015_message.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 00:44 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0014_application_date'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Message', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('message_type', models.CharField(choices=[('A', 'APPLCIATION'), ('I', 'INTERVIEW')], default='M', max_length=1)), 19 | ('application_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.Application')), 20 | ('recruiter_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.RecruiterProfile')), 21 | ('seeker_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.SeekerProfile')), 22 | ], 23 | ), 24 | ] 25 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0016_auto_20180509_1046.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 00:46 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0015_message'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RenameField( 14 | model_name='message', 15 | old_name='application_id', 16 | new_name='application', 17 | ), 18 | migrations.RenameField( 19 | model_name='message', 20 | old_name='recruiter_id', 21 | new_name='recruiter', 22 | ), 23 | migrations.RenameField( 24 | model_name='message', 25 | old_name='seeker_id', 26 | new_name='seeker', 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0017_message_date.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 00:55 2 | 3 | from django.db import migrations, models 4 | import django.utils.timezone 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0016_auto_20180509_1046'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='message', 16 | name='date', 17 | field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), 18 | preserve_default=False, 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0018_category.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 03:26 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0017_message_date'), 10 | ] 11 | 12 | operations = [ 13 | migrations.CreateModel( 14 | name='Category', 15 | fields=[ 16 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 17 | ('category_name', models.CharField(max_length=255)), 18 | ], 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0019_job_category.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 03:31 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0018_category'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='job', 16 | name='category', 17 | field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ojss_app.Category'), 18 | preserve_default=False, 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0020_auto_20180509_1336.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 03:36 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0019_job_category'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Subcategory', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('sub_category_name', models.CharField(max_length=255)), 19 | ], 20 | ), 21 | migrations.AlterField( 22 | model_name='job', 23 | name='category', 24 | field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='ojss_app.Category'), 25 | ), 26 | ] 27 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0021_subcategory_category.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 03:37 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0020_auto_20180509_1336'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='subcategory', 16 | name='category', 17 | field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='ojss_app.Category'), 18 | preserve_default=False, 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0022_job_sub_category.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 03:38 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0021_subcategory_category'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='job', 16 | name='sub_category', 17 | field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='ojss_app.Subcategory'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0023_interview.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 07:36 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('ojss_app', '0022_job_sub_category'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Interview', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('interview_date', models.DateField()), 19 | ('interview_description', models.CharField(max_length=100)), 20 | ('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ojss_app.Application')), 21 | ], 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0024_auto_20180509_1737.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 07:37 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0023_interview'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='application', 15 | name='status', 16 | field=models.CharField(choices=[('A', 'ACTIVE'), ('S', 'SELECTED'), ('R', 'REJECTED'), {'Interview', 'I'}], default='M', max_length=1), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0025_auto_20180509_2306.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 13:06 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0024_auto_20180509_1737'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RemoveField( 14 | model_name='interview', 15 | name='interview_description', 16 | ), 17 | migrations.AlterField( 18 | model_name='interview', 19 | name='interview_date', 20 | field=models.DateTimeField(auto_now_add=True), 21 | ), 22 | migrations.AlterField( 23 | model_name='message', 24 | name='message_type', 25 | field=models.CharField(choices=[('A', 'APPLICATION'), ('I', 'INTERVIEW')], default='M', max_length=1), 26 | ), 27 | ] 28 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0026_auto_20180509_2307.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 13:07 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0025_auto_20180509_2306'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='message', 15 | name='message_type', 16 | field=models.CharField(choices=[('A', 'APPLICATION'), ('I', 'INTERVIEW')], default='A', max_length=1), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0027_auto_20180509_2312.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-09 13:12 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0026_auto_20180509_2307'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='message', 15 | name='message_type', 16 | field=models.CharField(max_length=1), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0028_auto_20180510_1824.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-10 08:24 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0027_auto_20180509_2312'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='job', 15 | name='skill_required_3', 16 | field=models.CharField(blank=True, default='####', max_length=255), 17 | ), 18 | migrations.AlterField( 19 | model_name='job', 20 | name='skill_required_4', 21 | field=models.CharField(blank=True, default='####', max_length=255), 22 | ), 23 | migrations.AlterField( 24 | model_name='job', 25 | name='skill_required_5', 26 | field=models.CharField(blank=True, default='####', max_length=255), 27 | ), 28 | migrations.AlterField( 29 | model_name='seekerskillset', 30 | name='skill_2', 31 | field=models.CharField(blank=True, default='!!!!', max_length=255), 32 | ), 33 | migrations.AlterField( 34 | model_name='seekerskillset', 35 | name='skill_3', 36 | field=models.CharField(blank=True, default='!!!!', max_length=255), 37 | ), 38 | migrations.AlterField( 39 | model_name='seekerskillset', 40 | name='skill_4', 41 | field=models.CharField(blank=True, default='!!!!', max_length=255), 42 | ), 43 | migrations.AlterField( 44 | model_name='seekerskillset', 45 | name='skill_5', 46 | field=models.CharField(blank=True, default='!!!!', max_length=255), 47 | ), 48 | ] 49 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0029_auto_20180510_1833.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-10 08:33 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0028_auto_20180510_1824'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='seekerskillset', 15 | name='skill_2', 16 | field=models.CharField(blank=True, max_length=255, null=True), 17 | ), 18 | migrations.AlterField( 19 | model_name='seekerskillset', 20 | name='skill_3', 21 | field=models.CharField(blank=True, max_length=255, null=True), 22 | ), 23 | migrations.AlterField( 24 | model_name='seekerskillset', 25 | name='skill_4', 26 | field=models.CharField(blank=True, max_length=255, null=True), 27 | ), 28 | migrations.AlterField( 29 | model_name='seekerskillset', 30 | name='skill_5', 31 | field=models.CharField(blank=True, max_length=255, null=True), 32 | ), 33 | ] 34 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0030_auto_20180510_1833.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-10 08:33 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0029_auto_20180510_1833'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='seekerskillset', 15 | name='skill_2', 16 | field=models.CharField(blank=True, default='####', max_length=255), 17 | ), 18 | migrations.AlterField( 19 | model_name='seekerskillset', 20 | name='skill_3', 21 | field=models.CharField(blank=True, default='####', max_length=255), 22 | ), 23 | migrations.AlterField( 24 | model_name='seekerskillset', 25 | name='skill_4', 26 | field=models.CharField(blank=True, default='####', max_length=255), 27 | ), 28 | migrations.AlterField( 29 | model_name='seekerskillset', 30 | name='skill_5', 31 | field=models.CharField(blank=True, default='####', max_length=255), 32 | ), 33 | ] 34 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0031_auto_20180510_1835.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-10 08:35 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0030_auto_20180510_1833'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='seekerskillset', 15 | name='skill_2', 16 | field=models.CharField(blank=True, default='####', max_length=255, null=True), 17 | ), 18 | migrations.AlterField( 19 | model_name='seekerskillset', 20 | name='skill_3', 21 | field=models.CharField(blank=True, default='####', max_length=255, null=True), 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/0032_auto_20180510_1838.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0.4 on 2018-05-10 08:38 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('ojss_app', '0031_auto_20180510_1835'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='job', 15 | name='skill_required_3', 16 | field=models.CharField(blank=True, max_length=255, null=True), 17 | ), 18 | migrations.AlterField( 19 | model_name='job', 20 | name='skill_required_4', 21 | field=models.CharField(blank=True, max_length=255, null=True), 22 | ), 23 | migrations.AlterField( 24 | model_name='job', 25 | name='skill_required_5', 26 | field=models.CharField(blank=True, max_length=255, null=True), 27 | ), 28 | migrations.AlterField( 29 | model_name='seekerskillset', 30 | name='skill_2', 31 | field=models.CharField(blank=True, max_length=255, null=True), 32 | ), 33 | migrations.AlterField( 34 | model_name='seekerskillset', 35 | name='skill_3', 36 | field=models.CharField(blank=True, max_length=255, null=True), 37 | ), 38 | migrations.AlterField( 39 | model_name='seekerskillset', 40 | name='skill_4', 41 | field=models.CharField(blank=True, max_length=255, null=True), 42 | ), 43 | migrations.AlterField( 44 | model_name='seekerskillset', 45 | name='skill_5', 46 | field=models.CharField(blank=True, max_length=255, null=True), 47 | ), 48 | ] 49 | -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__init__.py -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0001_initial.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0001_initial.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0002_seekerprofile.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0002_seekerprofile.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0003_auto_20180507_0017.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0003_auto_20180507_0017.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0004_auto_20180507_2056.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0004_auto_20180507_2056.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0005_auto_20180507_2057.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0005_auto_20180507_2057.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0006_remove_recruiterprofile_company_description.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0006_remove_recruiterprofile_company_description.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0007_recruiterprofile_recruiter.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0007_recruiterprofile_recruiter.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0008_seekerskillset.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0008_seekerskillset.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0009_auto_20180508_0853.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0009_auto_20180508_0853.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0010_auto_20180508_1721.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0010_auto_20180508_1721.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0011_auto_20180508_1723.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0011_auto_20180508_1723.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0012_application_name.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0012_application_name.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0013_auto_20180508_1728.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0013_auto_20180508_1728.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0014_application_date.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0014_application_date.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0015_message.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0015_message.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0016_auto_20180509_1046.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0016_auto_20180509_1046.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0017_message_date.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0017_message_date.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0018_category.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0018_category.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0019_job_category.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0019_job_category.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0020_auto_20180509_1336.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0020_auto_20180509_1336.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0021_subcategory_category.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0021_subcategory_category.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0022_job_sub_category.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0022_job_sub_category.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0023_interview.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0023_interview.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0024_auto_20180509_1737.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0024_auto_20180509_1737.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0025_auto_20180509_2306.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0025_auto_20180509_2306.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0026_auto_20180509_2307.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0026_auto_20180509_2307.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0027_auto_20180509_2312.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0027_auto_20180509_2312.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0028_auto_20180510_1824.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0028_auto_20180510_1824.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0029_auto_20180510_1833.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0029_auto_20180510_1833.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0030_auto_20180510_1833.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0030_auto_20180510_1833.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0031_auto_20180510_1835.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0031_auto_20180510_1835.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/0032_auto_20180510_1838.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/0032_auto_20180510_1838.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/migrations/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/ojss/ojss_app/migrations/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /ojss/ojss_app/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.contrib.auth.models import AbstractBaseUser, BaseUserManager 3 | 4 | 5 | 6 | class UserManager(BaseUserManager): 7 | 8 | def create_user(self,email,password=None,is_active=True,is_recruiter = False, is_seeker = False, is_staff=False, is_admin= False): 9 | 10 | if not email: 11 | raise ValueError("User must have a valid email address") 12 | 13 | if not password: 14 | raise ValueError("User must have a password") 15 | 16 | user_obj = self.model( 17 | 18 | email = self.normalize_email(email) 19 | ) 20 | 21 | user_obj.set_password(password) 22 | 23 | user_obj.is_active = is_active 24 | 25 | user_obj.is_recruiter = is_recruiter 26 | 27 | user_obj.is_seeker = is_seeker 28 | 29 | user_obj.is_admin = is_admin 30 | 31 | user_obj.is_staff = is_staff 32 | 33 | user_obj.save(using=self._db) 34 | 35 | return user_obj 36 | 37 | 38 | def create_staffuser(self,email,password): 39 | user = self.create_user( 40 | email, 41 | password, 42 | is_staff=True 43 | ) 44 | return user 45 | 46 | 47 | def create_superuser(self,email,password=None): 48 | user = self.create_user( 49 | email, 50 | password, 51 | is_admin=True, 52 | is_staff=True 53 | ) 54 | 55 | return user 56 | 57 | 58 | 59 | 60 | 61 | class User(AbstractBaseUser): 62 | email = models.EmailField( 63 | 64 | verbose_name='Email Address', 65 | max_length=255, 66 | unique=True, 67 | ) 68 | 69 | is_active = models.BooleanField(default=True) 70 | is_recruiter = models.BooleanField(default=False) 71 | is_seeker = models.BooleanField(default=False) 72 | is_staff = models.BooleanField(default=False) 73 | is_admin = models.BooleanField(default=False) 74 | register_Date = models.DateTimeField(auto_now_add=True) 75 | 76 | USERNAME_FIELD = 'email' 77 | 78 | REQUIRED_FIELDS = [] 79 | 80 | object = UserManager() 81 | 82 | def __str__(self): 83 | return self.email 84 | 85 | def has_perm(self, perm, obj=None): 86 | return True 87 | 88 | def has_module_perms(self, app_label): 89 | return True 90 | 91 | 92 | 93 | class SeekerProfile(models.Model): 94 | 95 | GENDER_CHOICES = ( 96 | ('M','MALE'), 97 | ('F','FEMALE'), 98 | ) 99 | 100 | seeker = models.OneToOneField(User,on_delete=models.CASCADE) 101 | first_name = models.CharField(max_length=255) 102 | last_name = models.CharField(max_length=255) 103 | gender = models.CharField(max_length=1, 104 | choices=GENDER_CHOICES, 105 | default='M') 106 | address = models.CharField(max_length=255) 107 | phone = models.IntegerField(max_length=10) 108 | birthDate = models.DateField() 109 | current_job_role = models.CharField(max_length=255) 110 | current_company = models.CharField(max_length=255) 111 | 112 | 113 | 114 | def __str__(self): 115 | return self.first_name 116 | 117 | 118 | class RecruiterProfile(models.Model): 119 | 120 | GENDER_CHOICES = ( 121 | ('M', 'MALE'), 122 | ('F', 'FEMALE'), 123 | ) 124 | 125 | recruiter = models.OneToOneField(User, on_delete=models.CASCADE) 126 | first_name = models.CharField(max_length=255) 127 | last_name = models.CharField(max_length=255) 128 | gender = models.CharField(max_length=1, 129 | choices=GENDER_CHOICES, 130 | default='M') 131 | company_name = models.CharField(max_length=255) 132 | company_address = models.CharField(max_length=255) 133 | company_phone = models.IntegerField() 134 | job_role = models.CharField(max_length=255) 135 | 136 | def __str__(self): 137 | return self.first_name 138 | 139 | 140 | class Category(models.Model): 141 | 142 | category_name = models.CharField(max_length=255) 143 | 144 | 145 | def __str__(self): 146 | return self.category_name 147 | 148 | 149 | class Subcategory(models.Model): 150 | 151 | sub_category_name = models.CharField(max_length=255) 152 | category = models.ForeignKey(Category, on_delete=models.CASCADE) 153 | 154 | def __str__(self): 155 | return self.sub_category_name 156 | 157 | 158 | 159 | 160 | 161 | 162 | class Job(models.Model): 163 | job_role = models.CharField(max_length=255) 164 | job_description = models.CharField(max_length=1000) 165 | organization = models.CharField(max_length=255) 166 | remuneration = models.IntegerField() 167 | location = models.CharField(max_length=255) 168 | category = models.ForeignKey(Category, on_delete=models.SET_NULL,null=True) 169 | sub_category = models.ForeignKey(Subcategory, on_delete=models.SET_NULL, null=True) 170 | skill_required_1 = models.CharField(max_length=255) 171 | skill_required_2 = models.CharField(max_length=255) 172 | skill_required_3 = models.CharField(max_length=255, blank=True, null=True) 173 | skill_required_4 = models.CharField(max_length=255, blank=True, null=True) 174 | skill_required_5 = models.CharField(max_length=255, blank=True, null=True) 175 | deadline = models.DateField() 176 | posted_date = models.DateField(auto_now_add=True) 177 | job_ad_flag = models.CharField(max_length=1) 178 | recruiter = models.ForeignKey(RecruiterProfile,on_delete=models.CASCADE) 179 | 180 | 181 | 182 | def __str__(self): 183 | return self.job_role 184 | 185 | 186 | 187 | class SeekerSkillset(models.Model): 188 | 189 | seeker = models.OneToOneField(SeekerProfile,on_delete=models.CASCADE) 190 | skill_1 = models.CharField(max_length=255) 191 | skill_2 = models.CharField(max_length=255, blank=True, null=True) 192 | skill_3 = models.CharField(max_length=255, blank=True, null=True) 193 | skill_4 = models.CharField(max_length=255, blank=True, null=True) 194 | skill_5 = models.CharField(max_length=255, blank=True, null=True) 195 | 196 | 197 | def __str__(self): 198 | return self.seeker 199 | 200 | 201 | class Application(models.Model): 202 | 203 | 204 | APPLICATION_CHOICES = ( 205 | ('A', 'ACTIVE'), 206 | ('S', 'SELECTED'), 207 | ('R', 'REJECTED'), 208 | {'I', 'Interview'}, 209 | ) 210 | 211 | 212 | seeker = models.ForeignKey(SeekerProfile, on_delete=models.CASCADE) 213 | date = models.DateTimeField(auto_now_add=True) 214 | seeker_name = models.CharField(max_length=255) 215 | job = models.ForeignKey(Job, on_delete=models.CASCADE) 216 | cover_letter = models.CharField(max_length=1000) 217 | cv = models.CharField(max_length=1000) 218 | matching_score = models.IntegerField() 219 | status = models.CharField(max_length=1, 220 | choices=APPLICATION_CHOICES, 221 | default='M') 222 | 223 | 224 | 225 | class Message(models.Model): 226 | 227 | 228 | 229 | message_type = models.CharField(max_length=1) 230 | seeker = models.ForeignKey(SeekerProfile, on_delete=models.CASCADE) 231 | recruiter = models.ForeignKey(RecruiterProfile,on_delete=models.CASCADE) 232 | application = models.ForeignKey(Application,on_delete=models.CASCADE) 233 | date = models.DateTimeField(auto_now_add=True) 234 | 235 | 236 | class Interview(models.Model): 237 | 238 | 239 | interview_date = models.DateTimeField(auto_now_add=True) 240 | application = models.ForeignKey(Application, on_delete=models.CASCADE) 241 | 242 | 243 | 244 | -------------------------------------------------------------------------------- /ojss/ojss_app/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for ojss project. 3 | 4 | Generated by 'django-admin startproject' using Django 2.0.4. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/2.0/ref/settings/ 11 | """ 12 | 13 | import os 14 | 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = '3vcdwcmu6_ua_g66_a&y=j#8fl=ygf&0-s2$a5jeity4*#(!-e' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'ojss_app', 35 | 'django.contrib.admin', 36 | 'django.contrib.auth', 37 | 'django.contrib.contenttypes', 38 | 'django.contrib.sessions', 39 | 'django.contrib.messages', 40 | 'django.contrib.staticfiles', 41 | ] 42 | 43 | 44 | AUTH_USER_MODEL = 'ojss_app.User' 45 | AUTHENTICATION_BACKENDS = ('ojss_app.backends.CustomUserAuth',) 46 | 47 | 48 | MIDDLEWARE = [ 49 | 'django.middleware.security.SecurityMiddleware', 50 | 'django.contrib.sessions.middleware.SessionMiddleware', 51 | 'django.middleware.common.CommonMiddleware', 52 | 'django.middleware.csrf.CsrfViewMiddleware', 53 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 54 | 'django.contrib.messages.middleware.MessageMiddleware', 55 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 56 | ] 57 | 58 | ROOT_URLCONF = 'ojss.urls' 59 | 60 | TEMPLATES = [ 61 | { 62 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 63 | 'DIRS': ['ojss/templates'], 64 | 'APP_DIRS': True, 65 | 'OPTIONS': { 66 | 'context_processors': [ 67 | 'django.template.context_processors.debug', 68 | 'django.template.context_processors.request', 69 | 'django.contrib.auth.context_processors.auth', 70 | 'django.contrib.messages.context_processors.messages', 71 | ], 72 | }, 73 | }, 74 | ] 75 | 76 | WSGI_APPLICATION = 'ojss.wsgi.application' 77 | 78 | 79 | 80 | 81 | # Database 82 | # https://docs.djangoproject.com/en/2.0/ref/settings/#databases 83 | 84 | DATABASES = { 85 | 'default': { 86 | 'ENGINE': 'django.db.backends.sqlite3', 87 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 88 | } 89 | } 90 | 91 | 92 | # Password validation 93 | # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators 94 | 95 | AUTH_PASSWORD_VALIDATORS = [ 96 | { 97 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 98 | }, 99 | { 100 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 101 | }, 102 | { 103 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 104 | }, 105 | { 106 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 107 | }, 108 | ] 109 | 110 | 111 | # Internationalization 112 | # https://docs.djangoproject.com/en/2.0/topics/i18n/ 113 | 114 | LANGUAGE_CODE = 'en-us' 115 | 116 | TIME_ZONE = 'UTC' 117 | 118 | USE_I18N = True 119 | 120 | USE_L10N = True 121 | 122 | USE_TZ = True 123 | 124 | 125 | # Static files (CSS, JavaScript, Images) 126 | # https://docs.djangoproject.com/en/2.0/howto/static-files/ 127 | 128 | STATIC_URL = '/static/' 129 | 130 | 131 | STATICFILES_DIRS = ( 132 | os.path.join(BASE_DIR, 'ojss/static'), 133 | ) 134 | -------------------------------------------------------------------------------- /static/ojss_app/css/main.css: -------------------------------------------------------------------------------- 1 | 2 | html{ 3 | height: 100%; 4 | width: 100%; 5 | } 6 | 7 | 8 | /* Body transformations */ 9 | body { 10 | margin: 0; 11 | padding: 0; 12 | background-color: #343a40; 13 | } 14 | 15 | /* Draws the line after navigation */ 16 | .border { 17 | border-bottom: #3ca861; 18 | } 19 | 20 | 21 | /* Styling labels above the search box */ 22 | .label { 23 | border-style: none; 24 | font-size: larger; 25 | text-transform: uppercase ; 26 | } 27 | 28 | /* Styling navbar */ 29 | .navbar-item { 30 | margin-right: 30px; 31 | position: relative; 32 | } 33 | 34 | .navbar-item:before { 35 | content: ""; 36 | position: absolute; 37 | width: 100%; 38 | height: 2px; 39 | bottom: 0; 40 | left: 0; 41 | background-color: #000; 42 | visibility: hidden; 43 | -webkit-transform: scaleX(0); 44 | transform: scaleX(0); 45 | -webkit-transition: all 0.3s ease-in-out 0s; 46 | transition: all 0.3s ease-in-out 0s; 47 | } 48 | 49 | .navbar-item:hover:before { 50 | visibility: visible; 51 | -webkit-transform: scaleX(1); 52 | transform: scaleX(1); 53 | } 54 | 55 | 56 | 57 | /* Styling individual job listing in search */ 58 | .job_list { 59 | color: #adb5bd; 60 | overflow: hidden; 61 | padding: 20px; 62 | border-style: inset; 63 | border-color: #ffffff; 64 | background-color: #0d0d0d; 65 | 66 | } 67 | 68 | 69 | /* border in induvidual job listing */ 70 | .border-job { 71 | border-bottom: #ffffff; 72 | border-style: inset; 73 | 74 | } 75 | 76 | 77 | /* hover styling for individual job listing */ 78 | 79 | .job_list:hover .border-job { 80 | 81 | border-color: #bf2e29; 82 | transition: border-color ease-in .4s; 83 | 84 | } 85 | 86 | 87 | 88 | .job_list h1, h2, h3, h4, h5, h6 { 89 | 90 | color: #a9e0bc; 91 | } 92 | 93 | .job_list p { 94 | padding-top: 20px; 95 | } 96 | 97 | 98 | 99 | /* centering elements on a page */ 100 | .page-center { 101 | width: 600px; 102 | margin: 110px auto; 103 | border-style: ridge; 104 | border-color: #e9edde; 105 | padding : 20px; 106 | border-width: thin; 107 | } 108 | 109 | 110 | /* styling form input boxes */ 111 | input { 112 | margin-top: 20px; 113 | color: #ffffff; 114 | } 115 | 116 | 117 | /* Job details page styling */ 118 | 119 | 120 | /* job detail page items */ 121 | 122 | .job_details { 123 | 124 | padding: 20px; 125 | clear: both; 126 | overflow: hidden; 127 | background-color: #0d0d0d; 128 | 129 | } 130 | 131 | 132 | 133 | #job_name,#job_location, #job_organization, #job_renumeration { 134 | 135 | 136 | padding: 5px; 137 | 138 | } 139 | 140 | 141 | 142 | .border-job-details { 143 | 144 | overflow: auto; 145 | padding: 2px; 146 | border-color: #919aa1; 147 | background-color: #0d0d0d; 148 | border-style: groove; 149 | 150 | } 151 | 152 | .job_details p { 153 | 154 | padding-top: 20px; 155 | } 156 | 157 | .login-button{ 158 | padding: 5px; 159 | } 160 | 161 | /* Logo Div Placement */ 162 | .logo{ 163 | margin-top: 40px; 164 | } 165 | 166 | /* logo text */ 167 | .logo-text{ 168 | color: #f0ad4e; 169 | } 170 | 171 | /* Login text such as signup and login */ 172 | .login-text { 173 | color: #4BBF73; 174 | } 175 | 176 | 177 | .profile-form{ 178 | 179 | width: 70%; 180 | margin: 0 auto; 181 | 182 | } 183 | 184 | 185 | 186 | .profile-form-style{ 187 | 188 | width: 400px; 189 | height: 30px; 190 | margin-left: 30px; 191 | 192 | } 193 | 194 | 195 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /static/ojss_app/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunilcyriac/OnlineJobSeekingSystem-Python-Django/43e231c7f4a0faceb9ed155afda23c1de5d582ab/static/ojss_app/images/bg.jpg -------------------------------------------------------------------------------- /static/ojss_app/js/script.js: -------------------------------------------------------------------------------- 1 | 2 | function applicationViewer() { 3 | 4 | var x = document.getElementsByClassName("application-toggler")[0]; 5 | var button = document.getElementById("applyButton") 6 | if (x.style.display == "none") { 7 | 8 | x.style.display = "block"; 9 | button.innerHTML = "CANCEL APPLICATION"; 10 | button.setAttribute('class','btn btn-warning') 11 | 12 | } 13 | else if (x.style.display == "block"){ 14 | 15 | x.style.display = "none"; 16 | button.innerHTML = "APPLY"; 17 | button.setAttribute('class','btn btn-info') 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | {% load staticfiles %} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Calendar App 12 | 13 | 14 | 15 | {% if request.user.is_seeker %} 16 | 17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 | 26 | 50 | 51 |
52 | 53 |
54 | 55 |
56 | 57 | 58 | 59 |
60 | 61 |
62 | 63 | 64 | 65 | 66 |
67 | 68 | 69 |
70 | 71 |
72 | 73 | 75 | 76 |
77 | 78 | 79 |
80 | 81 | 83 | 84 |
85 | 86 | 87 | 88 |
89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
97 | 98 | 99 |
100 | 101 |
102 | 103 | 104 | 106 | 107 | 108 |
109 | 110 | 111 | 112 |
113 | 114 | 122 | 123 | 124 |
125 | 126 | 127 |
128 | 129 | 130 | 131 | 132 |
133 | 134 | 135 | 136 |
137 | 138 | 139 | 140 | 141 | 142 | 143 |
144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 |
153 | 154 | {% else %} 155 | 156 | 157 | 158 |
159 | 160 |
161 | 162 |
163 | 164 | 165 | 189 | 190 |
191 | 192 |
193 | 194 |
195 | 196 | 197 | 198 |
199 | 200 |
201 | 202 | 203 | 204 | 205 |
206 | 207 | 208 |
209 | 210 |
211 | 212 | 214 | 215 |
216 | 217 | 218 |
219 | 220 | 222 | 223 |
224 | 225 | 226 | 227 |
228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 |
236 | 237 | 238 |
239 | 240 |
241 | 242 | 243 | 245 | 246 | 247 |
248 | 249 | 250 | 251 |
252 | 253 | 261 | 262 | 263 |
264 | 265 | 266 |
267 | 268 | 269 | 270 | 271 |
272 | 273 | 274 | 275 |
276 | 277 | 278 | 279 | 280 | 281 | 282 |
283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 |
292 | 293 | {% endif %} 294 | 295 | 296 | 297 | 298 | 299 | {% block content %} 300 | {% endblock content %} 301 | 302 | 303 | 304 | 305 | -------------------------------------------------------------------------------- /templates/index_base.html: -------------------------------------------------------------------------------- 1 | {% load staticfiles %} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 22 | Calendar App 23 | 24 | 25 | 26 | 27 | {% block content %} 28 | 29 | 30 | {% endblock %} 31 | 32 | -------------------------------------------------------------------------------- /templates/ojss_app/_calendarentry.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |

{{ entry.name }}

6 |

{{ entry.date }}

7 |

{{ entry.desc }}

8 | View Details 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /templates/ojss_app/_job_item.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 6 | 7 |
8 |
9 | 10 |

Software Engineer

11 | 12 |
13 | 14 |
15 |
16 |
17 | 18 |

Organization : Monash University

19 | 20 |
21 |
22 | 23 |
24 |
25 | 26 | 27 |
Location : Melbourne, Australia
28 | 29 |
30 | 31 |
32 | 33 | 34 |
35 |
36 | 37 |
Renumeration : 60000
38 | 39 |
40 | 41 |
42 | 43 | 44 | 45 |
46 | 47 |
48 | 49 |
50 | 51 |

Lorem Ipsum is simply dummy 52 | text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard 53 | dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled 54 | it to make a type specimen book. It has survived not only five centuries, but also the leap into 55 | electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the 56 | release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing 57 | software like Aldus PageMaker including versions of Lorem Ipsum.

58 | 59 |
60 | 61 | 62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
74 | 75 | 76 | 77 |
78 | -------------------------------------------------------------------------------- /templates/ojss_app/detail.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | 4 | {% block content %} 5 |
6 | 7 | 8 |

{{ entries.name }}

9 |

{{ entries.date }}

10 | 11 | 12 |
13 | 14 | {% endblock content %} -------------------------------------------------------------------------------- /templates/ojss_app/form.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 |
8 | 9 |
10 |

ADD A NEW ENTRY

11 |
12 | 13 |
14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 |
22 | {% csrf_token %} 23 | 24 | {% for field in form %} 25 | 26 | 27 | {{ field.errors }} 28 | 29 | {% endfor %} 30 | 31 | 32 |
33 | 34 | 35 | 36 |
37 | 38 | 39 | {% endblock content %} -------------------------------------------------------------------------------- /templates/ojss_app/index.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | 4 | 5 | 6 | 7 | {% block content %} 8 | 9 | 10 | 11 | 12 | {% include 'ojss_app/_job_item.html' %} 13 | 14 | 15 | 16 | 17 | {% endblock content %} -------------------------------------------------------------------------------- /templates/ojss_app/job_details.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 8 | 19 | 20 | 21 |
22 | 23 | 24 |
25 |
26 | 27 |

Software Engineer

28 | 29 |
30 | 31 |
32 |
33 |
34 | 35 |

Organization : Monash University

36 | 37 |
38 |
39 | 40 |
41 |
42 | 43 | 44 |
Location : Melbourne, Australia
45 | 46 |
47 | 48 |
49 | 50 | 51 |
52 |
53 | 54 |
Renumeration : 60000
55 | 56 |
57 | 58 |
59 | 60 | 61 | 62 |
63 | 64 | 65 |
66 | 67 | 68 | 70 | 71 |
72 | 73 | 74 | 75 | 76 |
77 | 78 |
79 | 80 |

Lorem Ipsum is simply dummy 81 | text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard 82 | dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled 83 | it to make a type specimen book. It has survived not only five centuries, but also the leap into 84 | electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the 85 | release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing 86 | software like Aldus PageMaker including versions of Lorem Ipsum.

87 | 88 |
89 | 90 | 91 |
92 | 93 | 94 | 95 | 96 | 97 | 98 |
99 | 100 | 101 | 102 |
103 | 104 | 105 | {% endblock content %} -------------------------------------------------------------------------------- /templates/ojss_app/seekerprofile.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 |
9 | 10 |

UPDATE PROFILE

11 | 12 |
13 | 14 | 15 | 16 |
17 | 18 |
19 | 20 |
21 | {% csrf_token %} 22 | 23 | 24 | {% for field in form %} 25 | 26 | {% if field.label == 'Gender' %} 27 | 28 |

{{ field.label }}

29 | 40 | 41 | {% else %} 42 | 44 | 47 | 48 | {% endif %} 49 | {{ field.errors }} 50 | {% endfor %} 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 59 | 60 |
61 | 62 |
63 | 64 |
65 | 66 |
67 | 68 | 69 |
70 | 71 | 72 | 73 | 74 | 75 | {% endblock %} -------------------------------------------------------------------------------- /templates/registration/index.html: -------------------------------------------------------------------------------- 1 | {% extends 'index_base.html' %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 | 13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 | 25 |
26 | 27 | 28 | 29 |
30 | 31 |
32 | {% csrf_token %} 33 | 34 | {% for field in form %} 35 | 36 | 37 | {% if field.label == "Password" or field.label == "Password confirmation"%} 38 | 39 | 41 | 42 | {% else %} 43 | 44 | {% endif %} 45 | {{ field.errors }} 46 | {{ form.non_field_errors }} 47 | 48 | 49 | {% endfor %} 50 |
51 |
52 | 53 | 54 | 55 |
56 | 57 |
58 | 59 |
60 | 61 | 62 | 67 | 72 | 73 | 74 | 75 | 76 | 77 | 78 |
79 | 80 | 81 | 82 |
83 |
84 | 85 | 86 | {% endblock %} -------------------------------------------------------------------------------- /templates/registration/recruiterlogin.html: -------------------------------------------------------------------------------- 1 | {% extends "index_base.html" %} 2 | 3 | {% block content %} 4 | 5 | 6 |
7 | 8 | 13 | 14 |
15 | 16 | 17 |
18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 |
26 | 27 |
28 | 29 |
30 | {% csrf_token %} 31 | 32 | {% for field in form %} 33 | 34 | {% if field.label == "Password" or field.label == "Password confirmation"%} 35 | 36 | 37 | 38 | {% else %} 39 | 40 | {% endif %} 41 | {{ field.errors }} 42 | 43 | {% endfor %} 44 |
45 | 46 |
47 | 48 |
49 | 50 | 51 |
52 | 53 | 54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 | {% endblock content %} -------------------------------------------------------------------------------- /templates/registration/seekerlogin.html: -------------------------------------------------------------------------------- 1 | {% extends "index_base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 | 7 | 12 | 13 |
14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 |
26 | 27 |
28 | 29 |
30 | {% csrf_token %} 31 | 32 | {% for field in form %} 33 | 34 | {% if field.label == "Password" or field.label == "Password confirmation"%} 35 | 36 | 37 | 38 | {% else %} 39 | 40 | {% endif %} 41 | {{ field.errors }} 42 | 43 | {% endfor %} 44 |
45 | 46 |
47 | 48 |
49 | 50 |
51 | 52 | 53 | 54 | 55 | 56 |
57 | 58 | 59 | 60 |
61 | 62 | {% endblock content %} -------------------------------------------------------------------------------- /urls.py: -------------------------------------------------------------------------------- 1 | """ojss URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.0/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path 18 | from ojss_app import views 19 | from django.contrib.auth.views import login 20 | 21 | urlpatterns = [ 22 | path('admin/', admin.site.urls), 23 | path("", views.index, name='index'), 24 | path("search", views.search), 25 | path("job_details",views.job_details, name="job_details"), 26 | path("apply", views.apply), 27 | path("see_applications", views.my_applications), 28 | path("see_applicants", views.applicatns), 29 | path("seeker_register",views.seekerRegister, name='seeker_register'), 30 | path("recruiter_register", views.recruiterRegister, name='recruiter_register'), 31 | path("^search?", views.my_applications, name="search_list"), 32 | path("seekerprofile",views.seekerProfile, name= 'seeker_profile') 33 | ] 34 | -------------------------------------------------------------------------------- /wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for ojss project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ojss.settings") 15 | 16 | application = get_wsgi_application() 17 | --------------------------------------------------------------------------------