Skip to content
This repository has been archived by the owner on Feb 1, 2019. It is now read-only.

Commit

Permalink
Merge branch 'master' into issue/fix-initial-revision-for-job-applica…
Browse files Browse the repository at this point in the history
…tion

# Conflicts:
#	aldryn_jobs/views.py
  • Loading branch information
mkoistinen committed Jul 17, 2015
2 parents 4b9c6f5 + 387b66b commit f9e0dfc
Showing 1 changed file with 7 additions and 34 deletions.
41 changes: 7 additions & 34 deletions aldryn_jobs/views.py
Expand Up @@ -9,12 +9,13 @@
from django.http import Http404
from django.shortcuts import redirect
from django.utils.translation import (
ugettext_lazy as _, get_language_from_request
ugettext as _, get_language_from_request
)
from django.views.generic import DetailView, ListView
from aldryn_apphooks_config.mixins import AppConfigMixin
from aldryn_apphooks_config.utils import get_app_instance
from menus.utils import set_language_changer
from parler.views import TranslatableSlugMixin

from .forms import JobApplicationForm
from .models import JobCategory, JobOpening
Expand All @@ -29,8 +30,9 @@ def get_queryset(self):
language = get_language_from_request(self.request, check_path=True)
return (
JobOpening.objects.active()
.filter(category__app_config=self.config)
.language(language)
.translated(language)
.active_translations(language)
.select_related('category')
.order_by('category__id')
)
Expand All @@ -46,7 +48,7 @@ def get_queryset(self):
self.category = (
JobCategory.objects
.language(language)
.translated(language, slug=category_slug)
.active_translations(language, slug=category_slug)
.namespace(self.namespace)
.get()
)
Expand All @@ -61,10 +63,11 @@ def set_language_changer(self, category):
set_language_changer(self.request, category.get_absolute_url)


class JobOpeningDetail(AppConfigMixin, DetailView):
class JobOpeningDetail(AppConfigMixin, TranslatableSlugMixin, DetailView):
form_class = JobApplicationForm
template_name = 'aldryn_jobs/jobs_detail.html'
slug_url_kwarg = 'job_opening_slug'
queryset = JobOpening.objects.all()

def dispatch(self, request, *args, **kwargs):
self.request = request
Expand All @@ -73,29 +76,6 @@ def dispatch(self, request, *args, **kwargs):
self.set_language_changer(self.object)
return super(JobOpeningDetail, self).dispatch(request, *args, **kwargs)

def get_object(self, queryset=None):
if queryset is None:
queryset = self.get_queryset()
slug = self.kwargs.get(self.slug_url_kwarg, None)
slug_field = self.get_slug_field()
language = get_language_from_request(self.request, check_path=True)
queryset = (
queryset.filter(category__app_config__namespace=self.namespace)
.language(language)
.translated(language, **{slug_field: slug})
)

job_opening = None
try:
job_opening = queryset.get()
except JobOpening.DoesNotExist:
pass
finally:
if (not job_opening or (not job_opening.get_active() and
not self.request.user.is_staff)):
raise Http404(_("Opening is no longer valid."))
return job_opening

def get_form_class(self):
return self.form_class

Expand All @@ -118,13 +98,6 @@ def get_form(self, form_class):
"""
return form_class(**self.get_form_kwargs())

def get_queryset(self):
# not active as well, see `get_object` for more detail
language = get_language_from_request(self.request, check_path=True)
return JobOpening.objects.language(language).translated(
language
).select_related('category')

def set_language_changer(self, job_opening):
"""Translate the slug while changing the language."""
set_language_changer(self.request, job_opening.get_absolute_url)
Expand Down

0 comments on commit f9e0dfc

Please sign in to comment.