diff --git a/itou/job_applications/models.py b/itou/job_applications/models.py index 18ad1734b1..12d27d237f 100644 --- a/itou/job_applications/models.py +++ b/itou/job_applications/models.py @@ -227,10 +227,9 @@ def with_accepted_at(self): ) ) - def with_jobseeker_eligibility_diagnosis(self): + def with_jobseeker_valid_eligibility_diagnosis(self): """ - Gives the "eligibility_diagnosis" linked to the job application or if none is found - the last valid eligibility diagnosis for this job seeker and this SIAE + Gives the last valid eligibility diagnosis for this job seeker and this SIAE """ sub_query = Subquery( ( @@ -240,7 +239,18 @@ def with_jobseeker_eligibility_diagnosis(self): ), output_field=models.IntegerField(), ) - return self.annotate(jobseeker_eligibility_diagnosis=Coalesce(F("eligibility_diagnosis"), sub_query, None)) + return self.annotate(jobseeker_valid_eligibility_diagnosis=sub_query) + + def with_jobseeker_eligibility_diagnosis(self): + """ + Gives the "eligibility_diagnosis" linked to the job application or if none is found + the last valid eligibility diagnosis for this job seeker and this SIAE + """ + return self.with_jobseeker_valid_eligibility_diagnosis().annotate( + jobseeker_eligibility_diagnosis=Coalesce( + F("eligibility_diagnosis"), F("jobseeker_valid_eligibility_diagnosis") + ) + ) def eligibility_validated(self): return self.filter( diff --git a/itou/templates/apply/includes/list_card_body_company.html b/itou/templates/apply/includes/list_card_body_company.html index 216ef66859..ee888df2aa 100644 --- a/itou/templates/apply/includes/list_card_body_company.html +++ b/itou/templates/apply/includes/list_card_body_company.html @@ -29,7 +29,7 @@

PASS IAE {{ approval.get_state_display|lower }} {% else %} - {% if job_application.iae_eligibility_diagnosis_required %} + {% if not job_application.jobseeker_valid_eligibility_diagnosis %} Éligibilité IAE à valider diff --git a/itou/www/apply/views/list_views.py b/itou/www/apply/views/list_views.py index 37aa3c5a1d..505373cccd 100644 --- a/itou/www/apply/views/list_views.py +++ b/itou/www/apply/views/list_views.py @@ -83,11 +83,6 @@ def _add_administrative_criteria(job_applications): job_application.preloaded_administrative_criteria_extra_nb = extra_nb -def _add_eligibility_diagnosis_required(job_applications): - for job_app in job_applications: - job_app.iae_eligibility_diagnosis_required = job_app.eligibility_diagnosis_by_siae_required() - - @login_required @user_passes_test(lambda u: u.is_job_seeker, login_url=reverse_lazy("search:employers_home"), redirect_field_name=None) def list_for_job_seeker(request, template_name="apply/list_for_job_seeker.html"): @@ -164,7 +159,6 @@ def list_prescriptions(request, template_name="apply/list_prescriptions.html"): _add_pending_for_weeks(job_applications_page) _add_user_can_view_personal_information(job_applications_page, request.user.can_view_personal_information) _add_administrative_criteria(job_applications_page) - _add_eligibility_diagnosis_required(job_applications_page) context = { "title": title, @@ -293,7 +287,6 @@ def list_for_siae(request, template_name="apply/list_for_siae.html"): iae_company = company.kind in SIAE_WITH_CONVENTION_KINDS if iae_company: _add_administrative_criteria(job_applications_page) - _add_eligibility_diagnosis_required(job_applications_page) context = { "title": title, diff --git a/tests/www/apply/__snapshots__/test_list_for_siae.ambr b/tests/www/apply/__snapshots__/test_list_for_siae.ambr index 9e5878ada3..2a3645b368 100644 --- a/tests/www/apply/__snapshots__/test_list_for_siae.ambr +++ b/tests/www/apply/__snapshots__/test_list_for_siae.ambr @@ -1,7 +1,7 @@ # serializer version: 1 # name: ProcessListSiaeTest.test_list_for_siae[view queries] dict({ - 'num_queries': 45, + 'num_queries': 36, 'queries': list([ dict({ 'origin': list([ @@ -721,7 +721,16 @@ OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) ORDER BY U0."created_at" DESC - LIMIT 1), NULL) AS "jobseeker_eligibility_diagnosis", + LIMIT 1)) AS "jobseeker_eligibility_diagnosis", + + (SELECT U0."id" + FROM "eligibility_eligibilitydiagnosis" U0 + WHERE (U0."expires_at" > %s + AND (U0."author_kind" = %s + OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) + AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) + ORDER BY U0."created_at" DESC + LIMIT 1) AS "jobseeker_valid_eligibility_diagnosis", GREATEST("job_applications_jobapplication"."created_at", MAX("job_applications_jobapplicationtransitionlog"."timestamp")) AS "last_change", (SELECT U1."start_at" @@ -797,6 +806,15 @@ "job_applications_jobapplication"."inverted_vae_contract", "job_applications_jobapplication"."diagoriente_invite_sent_at", GREATEST("job_applications_jobapplication"."created_at", MAX("job_applications_jobapplicationtransitionlog"."timestamp")) AS "last_change", + + (SELECT U0."id" + FROM "eligibility_eligibilitydiagnosis" U0 + WHERE (U0."expires_at" > %s + AND (U0."author_kind" = %s + OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) + AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) + ORDER BY U0."created_at" DESC + LIMIT 1) AS "jobseeker_valid_eligibility_diagnosis", COALESCE("job_applications_jobapplication"."eligibility_diagnosis_id", (SELECT U0."id" FROM "eligibility_eligibilitydiagnosis" U0 @@ -805,7 +823,7 @@ OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) ORDER BY U0."created_at" DESC - LIMIT 1), NULL) AS "jobseeker_eligibility_diagnosis", + LIMIT 1)) AS "jobseeker_eligibility_diagnosis", EXISTS (SELECT %s AS "a" FROM "rdv_insertion_invitationrequest" U0 @@ -1060,7 +1078,7 @@ WHERE ("job_applications_jobapplication"."to_company_id" = %s AND "job_applications_jobapplication"."archived_at" IS NULL) GROUP BY "job_applications_jobapplication"."id", - 48, + 49, "users_user"."id", "users_jobseekerprofile"."user_id", T10."id", @@ -1269,15 +1287,48 @@ "eligibility_administrativecriteria"."name" ASC ''', }), + dict({ + 'origin': list([ + 'Company.has_admin[common_apps/organizations/models.py]', + 'Company.convention_can_be_accessed_by[companies/models.py]', + 'nav[utils/templatetags/nav.py]', + 'InclusionNode[layout/_header_authenticated.html]', + 'IncludeNode[layout/base.html]', + 'IfNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', + 'list_for_siae[www/apply/views/list_views.py]', + ]), + 'sql': ''' + SELECT %s AS "a" + FROM "users_user" + INNER JOIN "companies_companymembership" ON ("users_user"."id" = "companies_companymembership"."user_id") + WHERE ("companies_companymembership"."id" IN + (SELECT U0."id" + FROM "companies_companymembership" U0 + INNER JOIN "users_user" U2 ON (U0."user_id" = U2."id") + WHERE (U0."company_id" = %s + AND U2."is_active" + AND U0."is_active" + AND U0."is_admin" + AND U2."is_active")) + AND "users_user"."id" = %s) + LIMIT 1 + ''', + }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -1311,148 +1362,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -1486,148 +1409,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -1661,148 +1456,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -1838,146 +1505,18 @@ }), dict({ 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), - dict({ - 'origin': list([ - 'CommonApprovalQuerySet.first[/django/db/models/query.py]', - 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'CommonApprovalQuerySet.first[/django/db/models/query.py]', + 'User.latest_pe_approval[users/models.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -2011,148 +1550,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -2186,148 +1597,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -2361,148 +1644,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -2536,148 +1691,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_for_siae.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_for_siae.html]', 'list_for_siae[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -2711,167 +1738,6 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), - dict({ - 'origin': list([ - 'Company.has_admin[common_apps/organizations/models.py]', - 'Company.convention_can_be_accessed_by[companies/models.py]', - 'nav[utils/templatetags/nav.py]', - 'InclusionNode[layout/_header_authenticated.html]', - 'IncludeNode[layout/base.html]', - 'IfNode[layout/base.html]', - 'ExtendsNode[apply/list_for_siae.html]', - 'list_for_siae[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT %s AS "a" - FROM "users_user" - INNER JOIN "companies_companymembership" ON ("users_user"."id" = "companies_companymembership"."user_id") - WHERE ("companies_companymembership"."id" IN - (SELECT U0."id" - FROM "companies_companymembership" U0 - INNER JOIN "users_user" U2 ON (U0."user_id" = U2."id") - WHERE (U0."company_id" = %s - AND U2."is_active" - AND U0."is_active" - AND U0."is_admin" - AND U2."is_active")) - AND "users_user"."id" = %s) - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'Atomic.__exit__[/django/db/transaction.py]', diff --git a/tests/www/apply/__snapshots__/test_list_prescriptions.ambr b/tests/www/apply/__snapshots__/test_list_prescriptions.ambr index dff0a9495c..5d2cefb09b 100644 --- a/tests/www/apply/__snapshots__/test_list_prescriptions.ambr +++ b/tests/www/apply/__snapshots__/test_list_prescriptions.ambr @@ -1,7 +1,7 @@ # serializer version: 1 # name: test_as_unauthorized_prescriber[SQL queries for prescriptions list] dict({ - 'num_queries': 24, + 'num_queries': 22, 'queries': list([ dict({ 'origin': list([ @@ -557,7 +557,16 @@ OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) ORDER BY U0."created_at" DESC - LIMIT 1), NULL) AS "jobseeker_eligibility_diagnosis", + LIMIT 1)) AS "jobseeker_eligibility_diagnosis", + + (SELECT U0."id" + FROM "eligibility_eligibilitydiagnosis" U0 + WHERE (U0."expires_at" > %s + AND (U0."author_kind" = %s + OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) + AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) + ORDER BY U0."created_at" DESC + LIMIT 1) AS "jobseeker_valid_eligibility_diagnosis", GREATEST("job_applications_jobapplication"."created_at", MAX("job_applications_jobapplicationtransitionlog"."timestamp")) AS "last_change" FROM "job_applications_jobapplication" LEFT OUTER JOIN "job_applications_jobapplicationtransitionlog" ON ("job_applications_jobapplication"."id" = "job_applications_jobapplicationtransitionlog"."job_application_id") @@ -620,6 +629,15 @@ "job_applications_jobapplication"."inverted_vae_contract", "job_applications_jobapplication"."diagoriente_invite_sent_at", GREATEST("job_applications_jobapplication"."created_at", MAX("job_applications_jobapplicationtransitionlog"."timestamp")) AS "last_change", + + (SELECT U0."id" + FROM "eligibility_eligibilitydiagnosis" U0 + WHERE (U0."expires_at" > %s + AND (U0."author_kind" = %s + OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) + AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) + ORDER BY U0."created_at" DESC + LIMIT 1) AS "jobseeker_valid_eligibility_diagnosis", COALESCE("job_applications_jobapplication"."eligibility_diagnosis_id", (SELECT U0."id" FROM "eligibility_eligibilitydiagnosis" U0 @@ -628,39 +646,39 @@ OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) ORDER BY U0."created_at" DESC - LIMIT 1), NULL) AS "jobseeker_eligibility_diagnosis", - T6."id", - T6."password", - T6."last_login", - T6."is_superuser", - T6."username", - T6."first_name", - T6."last_name", - T6."is_staff", - T6."is_active", - T6."date_joined", - T6."address_line_1", - T6."address_line_2", - T6."post_code", - T6."city", - T6."department", - T6."coords", - T6."geocoding_score", - T6."geocoding_updated_at", - T6."ban_api_resolved_address", - T6."insee_city_id", - T6."title", - T6."email", - T6."phone", - T6."kind", - T6."identity_provider", - T6."has_completed_welcoming_tour", - T6."created_by_id", - T6."external_data_source_history", - T6."last_checked_at", - T6."public_id", - T6."address_filled_at", - T6."first_login", + LIMIT 1)) AS "jobseeker_eligibility_diagnosis", + T5."id", + T5."password", + T5."last_login", + T5."is_superuser", + T5."username", + T5."first_name", + T5."last_name", + T5."is_staff", + T5."is_active", + T5."date_joined", + T5."address_line_1", + T5."address_line_2", + T5."post_code", + T5."city", + T5."department", + T5."coords", + T5."geocoding_score", + T5."geocoding_updated_at", + T5."ban_api_resolved_address", + T5."insee_city_id", + T5."title", + T5."email", + T5."phone", + T5."kind", + T5."identity_provider", + T5."has_completed_welcoming_tour", + T5."created_by_id", + T5."external_data_source_history", + T5."last_checked_at", + T5."public_id", + T5."address_filled_at", + T5."first_login", "users_jobseekerprofile"."user_id", "users_jobseekerprofile"."birthdate", "users_jobseekerprofile"."birth_place_id", @@ -851,8 +869,8 @@ INNER JOIN "users_user" ON ("job_applications_jobapplication"."sender_id" = "users_user"."id") LEFT OUTER JOIN "job_applications_jobapplicationtransitionlog" ON ("job_applications_jobapplication"."id" = "job_applications_jobapplicationtransitionlog"."job_application_id") INNER JOIN "companies_company" ON ("job_applications_jobapplication"."to_company_id" = "companies_company"."id") - INNER JOIN "users_user" T6 ON ("job_applications_jobapplication"."job_seeker_id" = T6."id") - LEFT OUTER JOIN "users_jobseekerprofile" ON (T6."id" = "users_jobseekerprofile"."user_id") + INNER JOIN "users_user" T5 ON ("job_applications_jobapplication"."job_seeker_id" = T5."id") + LEFT OUTER JOIN "users_jobseekerprofile" ON (T5."id" = "users_jobseekerprofile"."user_id") LEFT OUTER JOIN "companies_company" T8 ON ("job_applications_jobapplication"."sender_company_id" = T8."id") LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("job_applications_jobapplication"."sender_prescriber_organization_id" = "prescribers_prescriberorganization"."id") LEFT OUTER JOIN "companies_siaeconvention" ON ("companies_company"."convention_id" = "companies_siaeconvention"."id") @@ -860,8 +878,8 @@ WHERE ("job_applications_jobapplication"."sender_id" = %s AND "job_applications_jobapplication"."archived_at" IS NULL) GROUP BY "job_applications_jobapplication"."id", - 48, - T6."id", + 49, + T5."id", "users_jobseekerprofile"."user_id", "users_user"."id", T8."id", @@ -981,11 +999,16 @@ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_prescriptions.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_prescriptions.html]', 'list_prescriptions[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -1019,148 +1042,20 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_prescriptions[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'CommonApprovalQuerySet.first[/django/db/models/query.py]', 'User.latest_pe_approval[users/models.py]', - 'User.has_valid_common_approval[users/models.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', + 'User.latest_common_approval[users/models.py]', + 'WithNode[apply/includes/list_card_body_company.html]', + 'IfNode[apply/includes/list_card_body_company.html]', + 'IncludeNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'ForNode[apply/includes/list_job_applications.html]', + 'IfNode[apply/includes/list_job_applications.html]', + 'IncludeNode[apply/list_prescriptions.html]', + 'BlockNode[layout/base.html]', + 'ExtendsNode[apply/list_prescriptions.html]', 'list_prescriptions[www/apply/views/list_views.py]', ]), 'sql': ''' @@ -1194,139 +1089,6 @@ LIMIT 1 ''', }), - dict({ - 'origin': list([ - 'EligibilityDiagnosisQuerySet.first[/django/db/models/query.py]', - 'RelatedManager.last_considered_valid[eligibility/models/iae.py]', - 'RelatedManager.has_considered_valid[eligibility/models/iae.py]', - 'User.has_valid_diagnosis[users/models.py]', - 'JobApplication.eligibility_diagnosis_by_siae_required[job_applications/models.py]', - '_add_eligibility_diagnosis_required[www/apply/views/list_views.py]', - 'list_prescriptions[www/apply/views/list_views.py]', - ]), - 'sql': ''' - SELECT "eligibility_eligibilitydiagnosis"."id", - "eligibility_eligibilitydiagnosis"."author_id", - "eligibility_eligibilitydiagnosis"."author_kind", - "eligibility_eligibilitydiagnosis"."author_prescriber_organization_id", - "eligibility_eligibilitydiagnosis"."created_at", - "eligibility_eligibilitydiagnosis"."updated_at", - "eligibility_eligibilitydiagnosis"."expires_at", - "eligibility_eligibilitydiagnosis"."job_seeker_id", - "eligibility_eligibilitydiagnosis"."author_siae_id", - CASE - WHEN "eligibility_eligibilitydiagnosis"."author_kind" = %s THEN %s - ELSE %s - END AS "from_prescriber", - T4."id", - T4."password", - T4."last_login", - T4."is_superuser", - T4."username", - T4."first_name", - T4."last_name", - T4."is_staff", - T4."is_active", - T4."date_joined", - T4."address_line_1", - T4."address_line_2", - T4."post_code", - T4."city", - T4."department", - T4."coords", - T4."geocoding_score", - T4."geocoding_updated_at", - T4."ban_api_resolved_address", - T4."insee_city_id", - T4."title", - T4."email", - T4."phone", - T4."kind", - T4."identity_provider", - T4."has_completed_welcoming_tour", - T4."created_by_id", - T4."external_data_source_history", - T4."last_checked_at", - T4."public_id", - T4."address_filled_at", - T4."first_login", - "prescribers_prescriberorganization"."id", - "prescribers_prescriberorganization"."address_line_1", - "prescribers_prescriberorganization"."address_line_2", - "prescribers_prescriberorganization"."post_code", - "prescribers_prescriberorganization"."city", - "prescribers_prescriberorganization"."department", - "prescribers_prescriberorganization"."coords", - "prescribers_prescriberorganization"."geocoding_score", - "prescribers_prescriberorganization"."geocoding_updated_at", - "prescribers_prescriberorganization"."ban_api_resolved_address", - "prescribers_prescriberorganization"."insee_city_id", - "prescribers_prescriberorganization"."name", - "prescribers_prescriberorganization"."created_at", - "prescribers_prescriberorganization"."updated_at", - "prescribers_prescriberorganization"."uid", - "prescribers_prescriberorganization"."active_members_email_reminder_last_sent_at", - "prescribers_prescriberorganization"."siret", - "prescribers_prescriberorganization"."is_head_office", - "prescribers_prescriberorganization"."kind", - "prescribers_prescriberorganization"."is_brsa", - "prescribers_prescriberorganization"."phone", - "prescribers_prescriberorganization"."email", - "prescribers_prescriberorganization"."website", - "prescribers_prescriberorganization"."description", - "prescribers_prescriberorganization"."is_authorized", - "prescribers_prescriberorganization"."code_safir_pole_emploi", - "prescribers_prescriberorganization"."created_by_id", - "prescribers_prescriberorganization"."authorization_status", - "prescribers_prescriberorganization"."authorization_updated_at", - "prescribers_prescriberorganization"."authorization_updated_by_id", - "companies_company"."id", - "companies_company"."address_line_1", - "companies_company"."address_line_2", - "companies_company"."post_code", - "companies_company"."city", - "companies_company"."department", - "companies_company"."coords", - "companies_company"."geocoding_score", - "companies_company"."geocoding_updated_at", - "companies_company"."ban_api_resolved_address", - "companies_company"."insee_city_id", - "companies_company"."name", - "companies_company"."created_at", - "companies_company"."updated_at", - "companies_company"."uid", - "companies_company"."active_members_email_reminder_last_sent_at", - "companies_company"."siret", - "companies_company"."naf", - "companies_company"."kind", - "companies_company"."brand", - "companies_company"."phone", - "companies_company"."email", - "companies_company"."auth_email", - "companies_company"."website", - "companies_company"."description", - "companies_company"."provided_support", - "companies_company"."source", - "companies_company"."created_by_id", - "companies_company"."block_job_applications", - "companies_company"."job_applications_blocked_at", - "companies_company"."convention_id", - "companies_company"."job_app_score", - "companies_company"."rdv_solidarites_id" - FROM "eligibility_eligibilitydiagnosis" - LEFT OUTER JOIN "companies_company" ON ("eligibility_eligibilitydiagnosis"."author_siae_id" = "companies_company"."id") - INNER JOIN "users_user" T4 ON ("eligibility_eligibilitydiagnosis"."author_id" = T4."id") - LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("eligibility_eligibilitydiagnosis"."author_prescriber_organization_id" = "prescribers_prescriberorganization"."id") - WHERE ("eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND ("eligibility_eligibilitydiagnosis"."author_kind" = %s - OR "eligibility_eligibilitydiagnosis"."author_siae_id" = %s) - AND "eligibility_eligibilitydiagnosis"."job_seeker_id" = %s - AND "eligibility_eligibilitydiagnosis"."expires_at" > %s) - ORDER BY 10 DESC, - "eligibility_eligibilitydiagnosis"."created_at" DESC - LIMIT 1 - ''', - }), dict({ 'origin': list([ 'Atomic.__exit__[/django/db/transaction.py]', @@ -1558,6 +1320,15 @@ "job_applications_jobapplication"."inverted_vae_contract", "job_applications_jobapplication"."diagoriente_invite_sent_at", GREATEST("job_applications_jobapplication"."created_at", MAX("job_applications_jobapplicationtransitionlog"."timestamp")) AS "last_change", + + (SELECT U0."id" + FROM "eligibility_eligibilitydiagnosis" U0 + WHERE (U0."expires_at" > %s + AND (U0."author_kind" = %s + OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) + AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) + ORDER BY U0."created_at" DESC + LIMIT 1) AS "jobseeker_valid_eligibility_diagnosis", COALESCE("job_applications_jobapplication"."eligibility_diagnosis_id", (SELECT U0."id" FROM "eligibility_eligibilitydiagnosis" U0 @@ -1566,39 +1337,39 @@ OR U0."author_siae_id" = ("job_applications_jobapplication"."to_company_id")) AND U0."job_seeker_id" = ("job_applications_jobapplication"."job_seeker_id")) ORDER BY U0."created_at" DESC - LIMIT 1), NULL) AS "jobseeker_eligibility_diagnosis", - T6."id", - T6."password", - T6."last_login", - T6."is_superuser", - T6."username", - T6."first_name", - T6."last_name", - T6."is_staff", - T6."is_active", - T6."date_joined", - T6."address_line_1", - T6."address_line_2", - T6."post_code", - T6."city", - T6."department", - T6."coords", - T6."geocoding_score", - T6."geocoding_updated_at", - T6."ban_api_resolved_address", - T6."insee_city_id", - T6."title", - T6."email", - T6."phone", - T6."kind", - T6."identity_provider", - T6."has_completed_welcoming_tour", - T6."created_by_id", - T6."external_data_source_history", - T6."last_checked_at", - T6."public_id", - T6."address_filled_at", - T6."first_login", + LIMIT 1)) AS "jobseeker_eligibility_diagnosis", + T5."id", + T5."password", + T5."last_login", + T5."is_superuser", + T5."username", + T5."first_name", + T5."last_name", + T5."is_staff", + T5."is_active", + T5."date_joined", + T5."address_line_1", + T5."address_line_2", + T5."post_code", + T5."city", + T5."department", + T5."coords", + T5."geocoding_score", + T5."geocoding_updated_at", + T5."ban_api_resolved_address", + T5."insee_city_id", + T5."title", + T5."email", + T5."phone", + T5."kind", + T5."identity_provider", + T5."has_completed_welcoming_tour", + T5."created_by_id", + T5."external_data_source_history", + T5."last_checked_at", + T5."public_id", + T5."address_filled_at", + T5."first_login", "users_jobseekerprofile"."user_id", "users_jobseekerprofile"."birthdate", "users_jobseekerprofile"."birth_place_id", @@ -1789,16 +1560,16 @@ INNER JOIN "users_user" ON ("job_applications_jobapplication"."sender_id" = "users_user"."id") LEFT OUTER JOIN "job_applications_jobapplicationtransitionlog" ON ("job_applications_jobapplication"."id" = "job_applications_jobapplicationtransitionlog"."job_application_id") INNER JOIN "companies_company" ON ("job_applications_jobapplication"."to_company_id" = "companies_company"."id") - INNER JOIN "users_user" T6 ON ("job_applications_jobapplication"."job_seeker_id" = T6."id") - LEFT OUTER JOIN "users_jobseekerprofile" ON (T6."id" = "users_jobseekerprofile"."user_id") + INNER JOIN "users_user" T5 ON ("job_applications_jobapplication"."job_seeker_id" = T5."id") + LEFT OUTER JOIN "users_jobseekerprofile" ON (T5."id" = "users_jobseekerprofile"."user_id") LEFT OUTER JOIN "companies_company" T8 ON ("job_applications_jobapplication"."sender_company_id" = T8."id") LEFT OUTER JOIN "prescribers_prescriberorganization" ON ("job_applications_jobapplication"."sender_prescriber_organization_id" = "prescribers_prescriberorganization"."id") LEFT OUTER JOIN "companies_siaeconvention" ON ("companies_company"."convention_id" = "companies_siaeconvention"."id") LEFT OUTER JOIN "approvals_approval" ON ("job_applications_jobapplication"."approval_id" = "approvals_approval"."id") WHERE "job_applications_jobapplication"."sender_id" = %s GROUP BY "job_applications_jobapplication"."id", - 48, - T6."id", + 49, + T5."id", "users_jobseekerprofile"."user_id", "users_user"."id", T8."id",