Adds markup for set goal status on feed page

This commit is contained in:
Mouse Reeve 2021-01-16 08:19:54 -08:00
parent b648012af5
commit 3a7271309e
5 changed files with 80 additions and 6 deletions

View file

@ -47,8 +47,8 @@
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<p class="card-header-title"> <p class="card-header-title">
<span>{% include 'snippets/book_titleby.html' with book=book %}</span> <span>{% include 'snippets/book_titleby.html' with book=book %}</span>
</> </p>
<div class="card-header-icon is-hidden-tablet"> <div class="card-header-icon is-hidden-tablet">
{% include 'snippets/toggle/toggle_button.html' with label="close" controls_text="no-book" class="delete" %} {% include 'snippets/toggle/toggle_button.html' with label="close" controls_text="no-book" class="delete" %}
</div> </div>
@ -67,6 +67,14 @@
<input class="toggle-control" type="radio" name="recent-books" id="no-book"> <input class="toggle-control" type="radio" name="recent-books" id="no-book">
</div> </div>
{% endif %} {% endif %}
{% if goal %}
<section class="section">
<div class="block">
{{ goal }} hi
</div>
</section>
{% endif %}
</div> </div>
<div class="column is-two-thirds" id="feed"> <div class="column is-two-thirds" id="feed">
@ -85,6 +93,33 @@
</ul> </ul>
</div> </div>
{# announcements and system messages #}
{% if not goal and tab == 'home' %}
<section class="block" aria-title="Announcements">
{% now 'Y' as year %}
<article class="card">
<header class="card-header">
<h3 class="card-header-title has-background-primary has-text-white">
{{ year }} reading goal
</h3>
</header>
<section class="card-content content">
<p>Set a goal for how many books you'll finish reading in {{ year }}, and track your progress throughout the year.</p>
{% include 'snippets/goal_form.html' %}
</section>
<footer class="card-footer has-background-white-bis">
<div class="card-footer-item is-flex-direction-column">
<button class="button is-danger is-light is-block">Dismiss message</button>
<p class="help">You can set or change your reading goal any time from your <a href="{{ request.user.local_path }}">profile page</a></p>
</div>
</footer>
</article>
</section>
{% endif %}
<hr>
{# activity feed #}
{% if not activities %} {% if not activities %}
<p>There aren't any activities right now! Try following a user to get started</p> <p>There aren't any activities right now! Try following a user to get started</p>
{% endif %} {% endif %}

View file

@ -29,8 +29,8 @@
<footer class="modal-card-foot"> <footer class="modal-card-foot">
<div class="columns"> <div class="columns">
<div class="column field"> <div class="column field">
<label for="post-status"> <label for="post_status-{{ uuid }}">
<input type="checkbox" name="post-status" class="checkbox" checked> <input type="checkbox" name="post-status" class="checkbox" id="post_status-{{ uuid }}" checked>
Post to feed Post to feed
</label> </label>
{% include 'snippets/privacy_select.html' %} {% include 'snippets/privacy_select.html' %}

View file

@ -0,0 +1,32 @@
<form method="post" name="goal" action="/goal/{{ year }}">
{% csrf_token %}
<input type="hidden" name="year" value="{{ year }}">
<input type="hidden" name="user" value="{{ request.user.id }}">
<div class="columns">
<div class="column">
<label class="label" for="id_goal">Reading goal:</label>
<div class="field has-addons">
<div class="control">
<input type="number" class="input" name="goal" id="id_goal" value="12">
</div>
<p class="button is-static">books</p>
</div>
</div>
<div class="column">
<label for="post_status" class="label">
<input type="checkbox" name="post-status" id="post_status" class="checkbox" checked>
Post to feed
</label>
<div class="field">
{% include 'snippets/privacy_select.html' %}
</div>
</div>
</div>
<p>
<button type="submit" class="button is-link">Set goal</button>
</p>
</form>

View file

@ -20,8 +20,8 @@
<footer class="modal-card-foot"> <footer class="modal-card-foot">
<div class="columns"> <div class="columns">
<div class="column field"> <div class="column field">
<label for="post-status"> <label for="post_status-{{ uuid }}">
<input type="checkbox" name="post-status" class="checkbox" checked> <input type="checkbox" name="post-status" class="checkbox" id="post_status-{{ uuid }}" checked>
Post to feed Post to feed
</label> </label>
{% include 'snippets/privacy_select.html' %} {% include 'snippets/privacy_select.html' %}

View file

@ -3,6 +3,7 @@ from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator from django.core.paginator import Paginator
from django.db.models import Avg, Max from django.db.models import Avg, Max
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.utils import timezone
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.views import View from django.views import View
@ -86,12 +87,18 @@ class Feed(View):
activities = get_activity_feed( activities = get_activity_feed(
request.user, ['public', 'followers']) request.user, ['public', 'followers'])
paginated = Paginator(activities, PAGE_LENGTH) paginated = Paginator(activities, PAGE_LENGTH)
goal = models.AnnualGoal.objects.filter(
user=request.user, year=timezone.now().year
).first()
data = { data = {
'title': 'Updates Feed', 'title': 'Updates Feed',
'user': request.user, 'user': request.user,
'suggested_books': suggested_books, 'suggested_books': suggested_books,
'activities': paginated.page(page), 'activities': paginated.page(page),
'tab': tab, 'tab': tab,
'goal': goal,
'goal_form': forms.GoalForm(),
} }
return TemplateResponse(request, 'feed.html', data) return TemplateResponse(request, 'feed.html', data)