Skip to content

Commit

Permalink
Merge pull request #649 from LibraryOfCongress/pass-active-filters-to…
Browse files Browse the repository at this point in the history
…-lower-levels

Pass current status filter to other levels
  • Loading branch information
acdha committed Nov 19, 2018
2 parents 9c2aeb7 + 171e4b7 commit f322b98
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<table id="progress-stats" class="table table-sm font-weight-light">
<tbody>
{% for key, label, value in transcription_status_counts reversed %}
<tr>
<tr class="{% if filters.transcription_status == key %}table-secondary{% endif %}">
<th class="text-nowrap">
<a href="?transcription_status={{ key|urlencode }}">
<span class="transcription-status-key bg-{{ key }}"></span>
Expand Down
1 change: 1 addition & 0 deletions concordia/templates/transcriptions/asset_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
{% endblock title %}

{% block head_content %}
<link rel="canonical" href="https://{{ request.get_host }}{{ request.path }}">
{% endblock head_content %}

{% block breadcrumbs %}
Expand Down
9 changes: 7 additions & 2 deletions concordia/templates/transcriptions/campaign_detail.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
{% extends "base.html" %}

{% load staticfiles %}

{% block title %}{{ campaign.title }}{% endblock title %}

{% block head_content %}
<link rel="canonical" href="https://{{ request.get_host }}{{ request.path }}">
{% endblock head_content %}

{% block breadcrumbs %}
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:campaign-list' %}">Campaigns</a></li>
<li class="breadcrumb-item active" aria-current="page" title="{{ campaign.title }}">{{ campaign.title }}</li>
Expand Down Expand Up @@ -35,7 +40,7 @@ <h4>Related Links</h4>
<div class="col-12 col-md-4 col-lg-3 m-2 p-1 concordia-object-card card bg-lightest-gray shadow-regular align-items-center" data-transcription-status="{{ project.lowest_transcription_status }}">
{% url 'transcriptions:project-detail' campaign.slug project.slug as project_url %}

<a href="{{ project_url }}" aria-hidden="true">
<a href="{{ project_url }}?{{ sublevel_querystring }}" aria-hidden="true">
<img class="card-img card-img-campaign" src="{{ MEDIA_URL }}{{ project.thumbnail_image }}" alt="{{ project.title }}">
</a>

Expand All @@ -46,7 +51,7 @@ <h4>Related Links</h4>
</div>

<h6 class="text-center primary-text">
<a href="{{ project_url }}">{{ project.title }}</a>
<a href="{{ project_url }}?{{ sublevel_querystring }}">{{ project.title }}</a>
</h6>
</div>
{% endfor %}
Expand Down
4 changes: 4 additions & 0 deletions concordia/templates/transcriptions/campaign_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

{% block title %}Campaigns{% endblock title %}

{% block head_content %}
<link rel="canonical" href="https://{{ request.get_host }}{{ request.path }}">
{% endblock head_content %}

{% block breadcrumbs %}
<li class="breadcrumb-item active" aria-current="page">Campaigns</li>
{% endblock breadcrumbs %}
Expand Down
8 changes: 5 additions & 3 deletions concordia/templates/transcriptions/item_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@
{{ item.title }} ({{ campaign.title }}: {{ project.title }})
{% endblock title %}

{% block head_content %}{% endblock head_content %}
{% block head_content %}
<link rel="canonical" href="https://{{ request.get_host }}{{ request.path }}">
{% endblock head_content %}

{% block breadcrumbs %}
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:campaign-list' %}">Campaigns</a></li>
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:campaign-detail' campaign.slug %}" title="{{ campaign.title }}">{{ campaign.title }}</a></li>
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:project-detail' campaign.slug project.slug %}" title="{{ project.title }}">{{ project.title }}</a></li>
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:campaign-detail' campaign.slug %}?{{ sublevel_querystring }}" title="{{ campaign.title }}">{{ campaign.title }}</a></li>
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:project-detail' campaign.slug project.slug %}?{{ sublevel_querystring }}" title="{{ project.title }}">{{ project.title }}</a></li>
<li class="breadcrumb-item active" aria-current="page" title="{{ item.title }}">{{ item.title|truncatechars:40 }}</li>
{% endblock breadcrumbs%}

Expand Down
7 changes: 4 additions & 3 deletions concordia/templates/transcriptions/project_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@
{% block title %}{{ project.title }} ({{ campaign.title }}){% endblock title %}

{% block head_content %}
<link rel="canonical" href="https://{{ request.get_host }}{{ request.path }}">
{% endblock head_content %}

{% block breadcrumbs %}
<li class="breadcrumb-item"><a class="primary-text" href="{% url 'transcriptions:campaign-list' %}">Campaigns</a></li>
<li class="breadcrumb-item">
<a class="primary-text" href="{% url 'transcriptions:campaign-detail' campaign.slug %}" title="{{ campaign.title }}">{{ campaign.title }}</a>
<a class="primary-text" href="{% url 'transcriptions:campaign-detail' campaign.slug %}?{{ sublevel_querystring }}" title="{{ campaign.title }}">{{ campaign.title }}</a>
</li>
<li class="breadcrumb-item active" aria-current="page" title="{{ project.title }}">{{ project.title }}</li>
{% endblock breadcrumbs %}
Expand All @@ -28,7 +29,7 @@ <h1 class="m-3">{{ project.title }}</h1>
<div class="card-deck w-100 flex-column flex-sm-row justify-content-center align-items-center align-items-sm-stretch">
{% for item in items %}
<div class="col-12 col-md-4 col-lg-3 m-2 p-1 concordia-object-card card bg-lightest-gray shadow-regular align-items-center" data-transcription-status="{{ item.lowest_transcription_status }}">
<a href="{% url 'transcriptions:item-detail' campaign.slug project.slug item.item_id %}">
<a href="{% url 'transcriptions:item-detail' campaign.slug project.slug item.item_id %}?{{ sublevel_querystring }}">
<img class="card-img card-img-campaign" alt="{{ item.title }}" src="{{ item.thumbnail_url }}">
</a>

Expand All @@ -39,7 +40,7 @@ <h1 class="m-3">{{ project.title }}</h1>
</div>

<h6 class="text-center primary-text">
<a href="{% url 'transcriptions:item-detail' campaign.slug project.slug item.item_id %}" class="campaign-image-link">
<a href="{% url 'transcriptions:item-detail' campaign.slug project.slug item.item_id %}?{{ sublevel_querystring }}" class="campaign-image-link">
{{ item.title }}
</a>
</h6>
Expand Down
22 changes: 18 additions & 4 deletions concordia/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,9 +364,13 @@ def get_context_data(self, **kwargs):
)
)

ctx["filters"] = filters = {}
status = self.request.GET.get("transcription_status")
if status in TranscriptionStatus.CHOICE_MAP:
projects = projects.exclude(**{f"{status}_count": 0})
# We only want to pass specific QS parameters to lower-level search pages:
filters["transcription_status"] = status
ctx["sublevel_querystring"] = urlencode(filters)

annotate_children_with_progress_stats(projects)
ctx["projects"] = projects
Expand Down Expand Up @@ -406,9 +410,13 @@ def get_queryset(self):
}
)

self.filters = {}
status = self.request.GET.get("transcription_status")
if status in TranscriptionStatus.CHOICE_MAP:
item_qs = item_qs.exclude(**{f"{status}_count": 0})
# We only want to pass specific QS parameters to lower-level search
# pages so we'll record those here:
self.filters["transcription_status"] = status

return item_qs

Expand All @@ -417,6 +425,10 @@ def get_context_data(self, **kws):
ctx["project"] = project = self.project
ctx["campaign"] = project.campaign

if self.filters:
ctx["sublevel_querystring"] = urlencode(self.filters)
ctx["filters"] = self.filters

project_assets = Asset.objects.filter(
item__project=project, published=True, item__published=True
)
Expand Down Expand Up @@ -454,14 +466,14 @@ def get_queryset(self):
asset_qs = asset_qs.select_related(
"item__project__campaign", "item__project", "item"
)
return self.apply_asset_filters(asset_qs)

def apply_asset_filters(self, asset_qs):
"""Use optional GET parameters to filter the asset list"""

self.filters = {}
status = self.request.GET.get("transcription_status")
if status in TranscriptionStatus.CHOICE_MAP:
asset_qs = asset_qs.filter(transcription_status=status)
# We only want to pass specific QS parameters to lower-level search
# pages so we'll record those here:
self.filters["transcription_status"] = status

return asset_qs

Expand All @@ -473,6 +485,8 @@ def get_context_data(self, **kwargs):
"campaign": self.item.project.campaign,
"project": self.item.project,
"item": self.item,
"sublevel_querystring": urlencode(self.filters),
"filters": self.filters,
}
)

Expand Down

0 comments on commit f322b98

Please sign in to comment.