Skip to content

Commit

Permalink
Replace stats view data management view
Browse files Browse the repository at this point in the history
For enabling #173
  • Loading branch information
dellsystem committed Apr 6, 2024
1 parent 99c96ec commit 9a7c51f
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 102 deletions.
2 changes: 1 addition & 1 deletion src/bookmarker/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
name='cite_tag'),
re_path(r'^tags$', bookmarker.views.view_all_tags, name='view_all_tags'),
re_path(r'^tags/add$', bookmarker.views.add_tag, name='add_tag'),
re_path(r'^stats$', bookmarker.views.view_stats, name='view_stats'),
re_path(r'^manage$', bookmarker.views.manage_data, name='manage_data'),
re_path(r'^api/suggest.json$', bookmarker.views.suggest_terms),
re_path(r'^api/define.json$', bookmarker.views.get_definition),
re_path(r'^faves$', bookmarker.views.view_faves, name='view_faves'),
Expand Down
47 changes: 16 additions & 31 deletions src/bookmarker/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1576,37 +1576,6 @@ def search(request):
return render(request, 'search.html', context)


def view_stats(request):
user = goodreadstools.get_user()
shelves = user.shelves()
num_read = shelves[0].count # assumes that read is first - confirm this
remaining_shelf = shelves[2] # assumes that to-read is third - confirm this
num_remaining = remaining_shelf.count

# Estimate the end date based on various reading paces.
pace_per_year = {
'one_per_month': 12,
'two_per_month': 24,
'one_per_week': 52,
'two_per_week': 104,
'one_per_day': 365,
}
dates = {}
for pace, count in pace_per_year.items():
days_left = num_remaining / float(count) * 365
end_date = datetime.datetime.today() + datetime.timedelta(days=days_left)
dates[pace] = end_date

context = {
'user': user,
'num_read': num_read,
'num_remaining': num_remaining,
'dates': dates,
}

return render(request, 'view_stats.html', context)


@login_required
def edit_note(request, note_id):
note = get_object_or_404(Note, pk=note_id)
Expand Down Expand Up @@ -1814,3 +1783,19 @@ def sync_goodreads(request):
}

return render(request, 'sync_goodreads.html', context)


@login_required
def manage_data(request):
# To help me find books that are missing read dates. Limit it to books that
# have been 'processed'.
books = Book.objects.filter(
completed_read=True,
is_processed=True
).filter(
Q(details__start_date=None) | Q(details__end_date=None)
).select_related('details').order_by('-pk')
context = {
'books': books,
}
return render(request, 'manage_data.html', context)
23 changes: 23 additions & 0 deletions src/templates/manage_data.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{% extends "base.html" %}

{% block title %}Manage data{% endblock %}

{% block breadcrumbs %}Manage data{% endblock %}

{% block content %}
<h1>Manage data</h1>
<h2>Missing read dates</h2>
<div class="ui bulleted list">
{% for book in books %}
<div class="item">
<a href="{{ book.get_absolute_url }}">
<strong>{{ book }}</strong>
</a>
({{ book.details.start_date }} - {{ book.details.end_date }})
<br />
<a href="{% url 'edit_book' book.slug %}">Edit</a> |
<a href="{{ book.details.link }}">Goodreads</a>
</div>
{% endfor %}
{% endblock %}

2 changes: 1 addition & 1 deletion src/templates/menu.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
Data
<i class="dropdown icon"></i>
<div class="menu">
<a class="item" href="{% url 'view_stats' %}">Stats</a>
<a class="item" href="{% url 'manage_data' %}">Manage</a>
<a class="item" href="{% url 'sync_goodreads' %}">Sync</a>
<a class="item" href="{% url 'add_book' %}">Add book</a>
<a class="item" href="{% url 'add_author' %}">Add author</a>
Expand Down
69 changes: 0 additions & 69 deletions src/templates/view_stats.html

This file was deleted.

0 comments on commit 9a7c51f

Please sign in to comment.