Skip to content

Commit

Permalink
New dataset ordering
Browse files Browse the repository at this point in the history
  • Loading branch information
Simon-Rey committed Sep 22, 2022
1 parent bbc012c commit 37ea44b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
8 changes: 4 additions & 4 deletions preflibapp/templates/preflib/data_format.html
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ <h2 id="format">File Format</h2>
</tr>
<tr>
<td class='lineNumber'>8</td>
<td class='code-line-content'># PUBLICATION DATE: 2021-06-22</td>
<td class='code-line-content'># PUBLICATION DATE: 2013-08-17</td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -271,7 +271,7 @@ <h3>Ordinal Preferences</h3>
</tr>
<tr>
<td class='lineNumber'> 8 </td>
<td class='code-line-content'># PUBLICATION DATE: 2021-06-22</td>
<td class='code-line-content'># PUBLICATION DATE: 2013-08-17</td>
</tr>
<tr>
<td class='lineNumber'> 9 </td>
Expand Down Expand Up @@ -414,7 +414,7 @@ <h3>Categorical Preferences</h3>
</tr>
<tr>
<td class='lineNumber'> 8 </td>
<td class='code-line-content'># PUBLICATION DATE: 2021-06-25</td>
<td class='code-line-content'># PUBLICATION DATE: 2017-04-13</td>
</tr>
<tr>
<td class='lineNumber'> 9 </td>
Expand Down Expand Up @@ -527,7 +527,7 @@ <h3>Weighted Matching</h3>
</tr>
<tr>
<td class='lineNumber'> 8 </td>
<td class='code-line-content'># PUBLICATION DATE: 2021-06-25</td>
<td class='code-line-content'># PUBLICATION DATE: 2017-04-13</td>
</tr>
<tr>
<td class='lineNumber'> 9 </td>
Expand Down
26 changes: 18 additions & 8 deletions preflibapp/templates/preflib/dataset_all.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,16 @@ <h1> Datasets </h1>
Sort by:
<a href="javascript:sortByName()" id="sort-name" style="font-weight: bold;">Dataset name (A-Z)</a> &middot;
<a href="javascript:sortByNew()" id="sort-new">Newest first</a> &middot;
<a href="javascript:sortByOld()" id="sort-old">Oldest first</a>
<a href="javascript:sortByOld()" id="sort-old">Oldest first</a> &middot;
<a href="javascript:sortByNum()" id="sort-num">Series Number</a>
</p>

<section id="section-datasets">
<nav id="dataset-menu">
<ul>
{% for dsinfo in dataset_info %}
<li data-number="{{dsinfo.ds.series_number}}" data-name="{{dsinfo.ds.name}}" data-tags="{{ dsinfo.tags }}" class="dataset-menu-item">
<a href="#{{dsinfo.ds.series_number}}">{{ dsinfo.ds.name }}</a>
<li data-timestamp="{{ dsinfo.timestamp }}" data-number="{{ dsinfo.ds.series_number }}" data-name="{{ dsinfo.ds.name }}" data-tags="{{ dsinfo.tags }}" class="dataset-menu-item">
<a href="#{{ dsinfo.ds.series_number }}">{{ dsinfo.ds.name }}</a>
</li>
{% endfor %}
</ul>
Expand All @@ -54,7 +55,7 @@ <h1> Datasets </h1>
<ul id="dataset-list">
{% for dsinfo in dataset_info %}
{% with dsinfo.ds as ds %}
<li id="{{ ds.series_number }}" data-number="{{ ds.series_number }}" data-name="{{ ds.name }}" data-tags="{{ dsinfo.tags }}" class="dataset-list-item">
<li id="{{ ds.series_number }}" data-timestamp="{{ dsinfo.timestamp }}" data-number="{{ ds.series_number }}" data-name="{{ ds.name }}" data-tags="{{ dsinfo.tags }}" class="dataset-list-item">
<h2 class="dataset-title"><a href="{% url 'preflibapp:dataset' ds.series_number %}" id="{{ ds.series_number }}_title">{{ ds.name }}</a></h2>

<p class="dataset-number">{{ds.series_number}}</p>
Expand Down Expand Up @@ -99,7 +100,7 @@ <h2 class="dataset-title"><a href="{% url 'preflibapp:dataset' ds.series_number
var menu = document.querySelector('#dataset-menu ul');

function bolden(id) {
for (link of ["#sort-name", "#sort-new", "#sort-old"]) {
for (link of ["#sort-name", "#sort-new", "#sort-old", "#sort-num"]) {
if (link == id) {
document.querySelector(link).style.fontWeight = "bold";
} else {
Expand All @@ -119,21 +120,30 @@ <h2 class="dataset-title"><a href="{% url 'preflibapp:dataset' ds.series_number
}
function sortByNew() {
[...list.children]
.sort((a,b)=>b.dataset.number.localeCompare(a.dataset.number))
.sort((a,b)=>b.dataset.timestamp.localeCompare(a.dataset.timestamp))
.forEach(node=>list.appendChild(node));
[...menu.children]
.sort((a,b)=>b.dataset.number.localeCompare(a.dataset.number))
.sort((a,b)=>b.dataset.timestamp.localeCompare(a.dataset.timestamp))
.forEach(node=>menu.appendChild(node));
bolden("#sort-new");
}
function sortByOld() {
[...list.children]
.sort((a,b)=>a.dataset.timestamp.localeCompare(b.dataset.timestamp))
.forEach(node=>list.appendChild(node));
[...menu.children]
.sort((a,b)=>a.dataset.timestamp.localeCompare(b.dataset.timestamp))
.forEach(node=>menu.appendChild(node));
bolden("#sort-old");
}
function sortByNum() {
[...list.children]
.sort((a,b)=>a.dataset.number.localeCompare(b.dataset.number))
.forEach(node=>list.appendChild(node));
[...menu.children]
.sort((a,b)=>a.dataset.number.localeCompare(b.dataset.number))
.forEach(node=>menu.appendChild(node));
bolden("#sort-old");
bolden("#sort-num");
}

// menu updates
Expand Down
3 changes: 3 additions & 0 deletions preflibapp/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import datetime

from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render, get_object_or_404, redirect
from django.http import HttpResponseRedirect, Http404
Expand Down Expand Up @@ -120,6 +122,7 @@ def all_datasets(request):
files = list(ds.files.filter(related_files__isnull=True))
dataset_info.append({
"ds": ds,
"timestamp": (ds.publication_date - datetime.date(2000, 1, 1)).days,
"files": files[:max_files_displayed],
"num_files": len(files),
"num_hidden_files": max(0, len(files) - max_files_displayed),
Expand Down

0 comments on commit 37ea44b

Please sign in to comment.