Knb
This commit is contained in:
parent
af768b6ac1
commit
6baa5f4e3d
Binary file not shown.
@ -41,6 +41,15 @@
|
||||
{% for value,label in source_status_choices %}<option value="{{ value }}" {% if source_status == value %}selected{% endif %}>{{ label }}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label class="form-label" for="sort">Sort</label>
|
||||
<select class="form-select" id="sort" name="sort">
|
||||
<option value="newest" {% if sort == "newest" %}selected{% endif %}>Newest</option>
|
||||
<option value="oldest" {% if sort == "oldest" %}selected{% endif %}>Oldest</option>
|
||||
<option value="company_az" {% if sort == "company_az" %}selected{% endif %}>Company A-Z</option>
|
||||
<option value="company_za" {% if sort == "company_za" %}selected{% endif %}>Company Z-A</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-1 d-grid">
|
||||
<button class="btn btn-dark" type="submit">Go</button>
|
||||
</div>
|
||||
|
||||
@ -41,6 +41,17 @@
|
||||
{% for value,label in status_choices %}<option value="{{ value }}" {% if status == value %}selected{% endif %}>{{ label }}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label class="form-label" for="sort">Sort</label>
|
||||
<select class="form-select" id="sort" name="sort">
|
||||
<option value="family_name" {% if sort == "family_name" %}selected{% endif %}>Family + name</option>
|
||||
<option value="name_az" {% if sort == "name_az" %}selected{% endif %}>Name A-Z</option>
|
||||
<option value="name_za" {% if sort == "name_za" %}selected{% endif %}>Name Z-A</option>
|
||||
<option value="status" {% if sort == "status" %}selected{% endif %}>Status</option>
|
||||
<option value="offers_high" {% if sort == "offers_high" %}selected{% endif %}>Offers high-low</option>
|
||||
<option value="offers_low" {% if sort == "offers_low" %}selected{% endif %}>Offers low-high</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-1 d-grid">
|
||||
<button class="btn btn-dark" type="submit">Go</button>
|
||||
</div>
|
||||
|
||||
@ -96,6 +96,15 @@ def job_list(request):
|
||||
contract = request.GET.get("contract", "").strip()
|
||||
family = request.GET.get("family", "").strip()
|
||||
source_status = request.GET.get("source_status", "").strip()
|
||||
sort = request.GET.get("sort", "newest").strip()
|
||||
|
||||
job_sort_map = {
|
||||
"newest": "-created_at",
|
||||
"oldest": "created_at",
|
||||
"company_az": "company",
|
||||
"company_za": "-company",
|
||||
}
|
||||
order_by = job_sort_map.get(sort, "-created_at")
|
||||
|
||||
jobs_qs = JobPosting.objects.select_related("source").filter(is_active=True)
|
||||
if query:
|
||||
@ -111,6 +120,7 @@ def job_list(request):
|
||||
jobs_qs = jobs_qs.filter(source__family=family)
|
||||
if source_status:
|
||||
jobs_qs = jobs_qs.filter(source__status=source_status)
|
||||
jobs_qs = jobs_qs.order_by(order_by)
|
||||
|
||||
paginator = Paginator(jobs_qs, 9)
|
||||
page_number = request.GET.get("page")
|
||||
@ -127,6 +137,7 @@ def job_list(request):
|
||||
"contract": contract,
|
||||
"family": family,
|
||||
"source_status": source_status,
|
||||
"sort": sort,
|
||||
"contract_choices": JobPosting.ContractType.choices,
|
||||
"family_choices": JobSource.Family.choices,
|
||||
"source_status_choices": JobSource.Status.choices,
|
||||
@ -153,8 +164,19 @@ def ops_dashboard(request):
|
||||
query = request.GET.get("q", "").strip()
|
||||
family = request.GET.get("family", "").strip()
|
||||
status = request.GET.get("status", "").strip()
|
||||
sort = request.GET.get("sort", "family_name").strip()
|
||||
|
||||
sources_qs = JobSource.objects.annotate(job_total=Count("jobs")).order_by("family", "name")
|
||||
source_sort_map = {
|
||||
"family_name": ("family", "name"),
|
||||
"name_az": ("name",),
|
||||
"name_za": ("-name",),
|
||||
"status": ("status", "name"),
|
||||
"offers_high": ("-job_total", "name"),
|
||||
"offers_low": ("job_total", "name"),
|
||||
}
|
||||
source_order_by = source_sort_map.get(sort, ("family", "name"))
|
||||
|
||||
sources_qs = JobSource.objects.annotate(job_total=Count("jobs")).order_by(*source_order_by)
|
||||
if query:
|
||||
sources_qs = sources_qs.filter(Q(name__icontains=query) | Q(owner__icontains=query) | Q(url__icontains=query))
|
||||
if family:
|
||||
@ -205,6 +227,7 @@ def ops_dashboard(request):
|
||||
"query": query,
|
||||
"family": family,
|
||||
"status": status,
|
||||
"sort": sort,
|
||||
"family_choices": JobSource.Family.choices,
|
||||
"status_choices": JobSource.Status.choices,
|
||||
"current_filters_qs": current_filters_qs,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user