diff --git a/jobs/templates/base.html b/jobs/templates/base.html
index 7f3a117..199f86b 100644
--- a/jobs/templates/base.html
+++ b/jobs/templates/base.html
@@ -23,19 +23,18 @@
- -
+
-
- -
+
-
Messages
- -
+
-
Your Jobs
-{# {% url 'jobs:job_list' %}#}
Post a job
diff --git a/jobs/views.py b/jobs/views.py
index 1c58106..b5fa777 100644
--- a/jobs/views.py
+++ b/jobs/views.py
@@ -7,11 +7,13 @@ from django.contrib import messages
from django.shortcuts import get_object_or_404, redirect
from rules.contrib.views import PermissionRequiredMixin
from django.contrib.auth import get_user_model
+from django.contrib.auth.decorators import login_required
from .models import Job, Application, Question, JobMessage
from .forms import JobForm, QuestionFormSet, ApplicationForm, AnswerForm, MessageForm
+import logging
-
+logger = logging.getLogger(__name__)
User = get_user_model()
class Index(TemplateView):
@@ -85,7 +87,7 @@ class ApplicationCreate(LoginRequiredMixin, CreateView):
# TODO: restrict users from re-application
model = Application
form_class = ApplicationForm
- success_url = reverse_lazy("jobs:index")
+ success_url = reverse_lazy("jobs:job_list")
def get_question_queryset(self):
# filter questions for particular job and order it so same queryset
@@ -161,6 +163,7 @@ class ListOwnApplications(ListView):
def get_context_data(self, **kwargs):
context = super(ListOwnApplications, self).get_context_data(**kwargs)
context['title'] = 'Your Applications'
+ context['application_page'] = 'active'
return context
@@ -174,11 +177,6 @@ class ListJobApplications(ListView):
def get_context_data(self, **kwargs):
context = super(ListJobApplications, self).get_context_data(**kwargs)
- context['title'] = 'Applications to your jobs'
- context['form'] = MessageForm
- return context
-
-
class ApplicationDetail(LoginRequiredMixin, DetailView):
model = Application
@@ -201,6 +199,7 @@ class MesssageInbox(LoginRequiredMixin, ListView):
def get_context_data(self, **kwargs):
context = super(MesssageInbox, self).get_context_data(**kwargs)
context['title'] = 'Messages Inbox'
+ context['messages_page'] = 'active'
return context
@@ -220,6 +219,7 @@ class Conversation(LoginRequiredMixin, ListView):
context = super(Conversation, self).get_context_data(**kwargs)
context['form'] = MessageForm
context['person'] = User.objects.get(id=self.kwargs['pk'])
+ context['messages_page'] = 'active'
return context
@@ -235,9 +235,10 @@ class MyJobs(LoginRequiredMixin, ListView):
def get_context_data(self, **kwargs):
context = super(MyJobs, self).get_context_data(**kwargs)
context['title'] = 'Your jobs'
+ context['my_jobs_page'] = 'active'
return context
-
+@login_required()
def send_message(request):
form = MessageForm(request.POST)
if form.is_valid():
@@ -247,16 +248,24 @@ def send_message(request):
print("Error")
return redirect('jobs:conversation', pk=request.POST.get('receiver_id'))
+@login_required()
def change_status(request):
- print(request.POST)
- job_id = request.POST.get('job_id')
- if job_id is not None:
- job = Job.objects.get(id=job_id)
- if job.active:
- job.active = False
+ try:
+ job_obj = Job.objects.get(id=request.POST.get('job_id'))
+ if job_obj.posted_by == request.user:
+ if job_obj.active:
+ job_obj.active = False
+ else:
+ job_obj.active = True
+ job_obj.save()
else:
- job.active = True
- job.save()
- else:
- print("Error")
+ logger.error(
+ "the user {} tried to toggle the job id {}. But it doesn't belong to him".format(
+ request.user, request.POST.get('job_id'))
+ )
+ except Job.DoesNotExist:
+ logger.error(
+ "the user {} tried to toggle the job id {} but it doesn't exist.".format(
+ request.user, request.POST.get('job_id'))
+ )
return redirect('jobs:my_jobs')