Merge pull request #2308 from pateljannat/misc-issues

refactor: jobs and certified participants view
This commit is contained in:
Jannat Patel
2026-04-11 22:06:26 +05:30
committed by GitHub
12 changed files with 282 additions and 201 deletions
+10 -7
View File
@@ -232,14 +232,16 @@ def get_job_details(job: str):
@frappe.whitelist(allow_guest=True)
def get_job_opportunities(filters: dict = None, orFilters: dict = None):
def get_job_opportunities(
filters: dict = None, or_filters: dict = None, start: int = 0, page_length: int = 40
):
if not filters:
filters = {}
jobs = frappe.get_all(
"Job Opportunity",
filters=filters,
or_filters=orFilters,
or_filters=or_filters,
fields=[
"job_title",
"location",
@@ -252,6 +254,8 @@ def get_job_opportunities(filters: dict = None, orFilters: dict = None):
"creation",
"description",
],
start=start,
page_length=page_length,
order_by="creation desc",
)
@@ -344,11 +348,10 @@ def get_evaluator_details(evaluator: str):
@frappe.whitelist()
def get_certified_participants(filters: dict = None, start: int = 0, page_length: int = 100):
def get_certified_participants(filters: dict = None, start: int = 0, page_length: int = 40):
query = get_certification_query(filters)
query = query.orderby("issue_date", order=frappe.qb.desc).offset(start).limit(page_length)
participants = query.run(as_dict=True)
for participant in participants:
details = get_certified_participant_details(participant.member)
participant.update(details)
@@ -361,7 +364,7 @@ def get_certified_participant_details(member: str):
details = frappe.db.get_value(
"User",
member,
["full_name", "user_image", "username", "country", "headline", "open_to"],
["full_name", "user_image", "username", "creation", "headline", "open_to"],
as_dict=1,
)
details["certificate_count"] = count
@@ -374,12 +377,12 @@ def get_certification_query(filters: dict = None):
query = (
frappe.qb.from_(Certificate)
.select(Certificate.member, Certificate.issue_date)
.distinct()
.select(Certificate.member, fn.Max(Certificate.issue_date).as_("issue_date"))
.join(User)
.on(Certificate.member == User.name)
.where(Certificate.published == 1)
.where(User.enabled == 1)
.groupby(Certificate.member)
)
if filters: