Skip to content

Commit

Permalink
Fix DoesNotExist error in job type and category views.
Browse files Browse the repository at this point in the history
Closes #800
  • Loading branch information
berkerpeksag committed Aug 18, 2015
1 parent bd698db commit 6f7b917
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 27 deletions.
11 changes: 10 additions & 1 deletion jobs/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from django.core.urlresolvers import reverse
from django.test import TestCase

from .. import admin # coverage FTW
from ..models import Job
from ..factories import (
ApprovedJobFactory, DraftJobFactory, JobCategoryFactory, JobTypeFactory,
Expand Down Expand Up @@ -332,6 +331,16 @@ def test_job_display_about(self):
self.job.company_description = ' '
self.assertEqual(self.job.display_description.raw, self.job.company_description.raw)

def test_job_list_type_404(self):
url = reverse('jobs:job_list_type', kwargs={'slug': 'invalid-type'})
response = self.client.get(url)
self.assertEqual(response.status_code, 404)

def test_job_list_category_404(self):
url = reverse('jobs:job_list_category', kwargs={'slug': 'invalid-type'})
response = self.client.get(url)
self.assertEqual(response.status_code, 404)


class JobsReviewTests(TestCase):
def setUp(self):
Expand Down
65 changes: 39 additions & 26 deletions jobs/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,26 @@
from .models import Job, JobType, JobCategory


class JobListMenu:
def job_list_view(self):
return True


class JobTypeMenu:
def job_type_view(self):
return True


class JobCategoryMenu:
def job_category_view(self):
return True


class JobLocationMenu:
def job_location_view(self):
return True


class JobBoardAdminRequiredMixin(GroupRequiredMixin):
group_required = "Job Board Admin"

Expand All @@ -34,12 +54,10 @@ def get_context_data(self, **kwargs):
return context


class JobList(JobMixin, ListView):
class JobList(JobListMenu, JobMixin, ListView):
model = Job
paginate_by = 25

job_list_view = True

def get_queryset(self):
return super().get_queryset().visible().select_related()

Expand All @@ -57,50 +75,45 @@ def get_queryset(self):
return queryset.filter(q)


class JobTypeMenu:
def job_type_view(self):
return True


class JobCategoryMenu:
def job_category_view(self):
return True


class JobLocationMenu:
def job_location_view(self):
return True


class JobListType(JobTypeMenu, JobList):
class JobListType(JobTypeMenu, ListView):
paginate_by = 25
template_name = 'jobs/job_type_list.html'

def get_queryset(self):
return super().get_queryset().filter(job_types__slug=self.kwargs['slug'])
self.current_type = get_object_or_404(JobType,
slug=self.kwargs['slug'])
return Job.objects.visible().select_related().filter(
job_types__slug=self.kwargs['slug'])

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['current_type'] = JobType.objects.get(slug=self.kwargs['slug'])
context['current_type'] = self.current_type
return context


class JobListCategory(JobCategoryMenu, JobList):
class JobListCategory(JobCategoryMenu, ListView):
paginate_by = 25
template_name = 'jobs/job_category_list.html'

def get_queryset(self):
return super().get_queryset().filter(category__slug=self.kwargs['slug'])
self.current_category = get_object_or_404(JobCategory,
slug=self.kwargs['slug'])
return Job.objects.visible().select_related().filter(
category__slug=self.kwargs['slug'])

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['current_category'] = JobCategory.objects.get(slug=self.kwargs['slug'])
context['current_category'] = self.current_category
return context


class JobListLocation(JobLocationMenu, JobList):
class JobListLocation(JobLocationMenu, ListView):
paginate_by = 25
template_name = 'jobs/job_location_list.html'

def get_queryset(self):
return super().get_queryset().filter(location_slug=self.kwargs['slug'])
return Job.objects.visible().select_related().filter(
location_slug=self.kwargs['slug'])


class JobTypes(JobTypeMenu, JobMixin, ListView):
Expand Down

0 comments on commit 6f7b917

Please sign in to comment.