Skip to content

Commit 94aa80c

Browse files
committed
job_seekers_views: manage the session in a mixin and refactor
- ExpectedJobSeekerSessionMixin: to get the session and check that it was created to perform the action we're doing - JobSeekerBaseView: now uses this mixin - Update views: also use this mixin, instead of inheriting JobSeekerBaseView
1 parent 89b941f commit 94aa80c

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

itou/www/job_seekers_views/views.py

+30-19
Original file line numberDiff line numberDiff line change
@@ -225,19 +225,13 @@ def get(self, request, *args, **kwargs):
225225
return HttpResponseRedirect(reverse(view_name, kwargs={"session_uuid": self.job_seeker_session.name}))
226226

227227

228-
class JobSeekerBaseView(TemplateView):
228+
class ExpectedJobSeekerKindMixin:
229229
EXPECTED_SESSION_KIND = None
230230

231231
def __init__(self):
232-
super().__init__()
233-
self.company = None
234232
self.job_seeker_session = None
235-
self.hire_process = None
236-
self.prescription_proces = None
237-
self.auto_prescription_process = None
238-
self.is_gps = False
239233

240-
def setup(self, request, *args, session_uuid, hire_process=False, **kwargs):
234+
def setup(self, request, *args, session_uuid, **kwargs):
241235
self.job_seeker_session = SessionNamespace(request.session, session_uuid)
242236
if not self.job_seeker_session.exists():
243237
raise Http404
@@ -246,6 +240,33 @@ def setup(self, request, *args, session_uuid, hire_process=False, **kwargs):
246240
session_kind := self.job_seeker_session.get("config").get("session_kind")
247241
) and session_kind != self.EXPECTED_SESSION_KIND:
248242
raise Http404
243+
244+
super().setup(request, *args, **kwargs)
245+
246+
def get_reset_url(self):
247+
return self.job_seeker_session.get("config", {}).get("from_url") or reverse("dashboard:index")
248+
249+
def get_back_url(self):
250+
return None
251+
252+
def get_context_data(self, **kwargs):
253+
return super().get_context_data(**kwargs) | {
254+
"reset_url": self.get_reset_url(),
255+
"back_url": self.get_back_url(),
256+
}
257+
258+
259+
class JobSeekerBaseView(ExpectedJobSeekerKindMixin, TemplateView):
260+
def __init__(self):
261+
super().__init__()
262+
self.company = None
263+
self.hire_process = None
264+
self.prescription_proces = None
265+
self.auto_prescription_process = None
266+
self.is_gps = False
267+
268+
def setup(self, request, *args, hire_process=False, **kwargs):
269+
super().setup(request, *args, **kwargs)
249270
self.is_gps = self.job_seeker_session.get("config", {}).get("tunnel") == "gps"
250271
if company_pk := self.job_seeker_session.get("apply", {}).get("company_pk"):
251272
if not self.is_gps:
@@ -266,8 +287,6 @@ def setup(self, request, *args, session_uuid, hire_process=False, **kwargs):
266287
and self.company == request.current_organization
267288
)
268289

269-
super().setup(request, *args, **kwargs)
270-
271290
def redirect_to_check_infos(self, job_seeker_public_id):
272291
view_name = (
273292
"job_seekers_views:check_job_seeker_info_for_hire"
@@ -278,17 +297,9 @@ def redirect_to_check_infos(self, job_seeker_public_id):
278297
reverse(view_name, kwargs={"company_pk": self.company.pk, "job_seeker_public_id": job_seeker_public_id})
279298
)
280299

281-
def get_back_url(self):
282-
return None
283-
284-
def get_reset_url(self):
285-
return self.job_seeker_session.get("config", {}).get("from_url") or reverse("dashboard:index")
286-
287300
def get_context_data(self, **kwargs):
288301
return super().get_context_data(**kwargs) | {
289302
"siae": self.company,
290-
"back_url": self.get_back_url(),
291-
"reset_url": self.get_reset_url(),
292303
"hire_process": self.hire_process,
293304
"prescription_process": self.prescription_process,
294305
"auto_prescription_process": self.auto_prescription_process,
@@ -832,7 +843,7 @@ def get(self, request, *args, **kwargs):
832843
)
833844

834845

835-
class UpdateJobSeekerBaseView(JobSeekerBaseView):
846+
class UpdateJobSeekerBaseView(ExpectedJobSeekerKindMixin, TemplateView):
836847
EXPECTED_SESSION_KIND = JobSeekerSessionKinds.UPDATE
837848

838849
def __init__(self):

0 commit comments

Comments
 (0)