Merge branch 'main' into group-list-button

Hopefully fixes failing tests!
This commit is contained in:
Hugh Rundle
2022-01-05 08:47:01 +11:00
40 changed files with 549 additions and 301 deletions

View File

@ -24,7 +24,7 @@ LAST_DAY = 15
class AnnualSummary(View):
"""display a summary of the year for the current user"""
def get(self, request, username, year):
def get(self, request, username, year): # pylint: disable=too-many-locals
"""get response"""
user = get_user_from_username(request.user, username)
@ -79,6 +79,9 @@ class AnnualSummary(View):
)
ratings_stats = ratings.aggregate(Avg("rating"))
# annual goal status
goal_status = get_goal_status(user, year)
data = {
"summary_user": user,
"year": year,
@ -101,6 +104,7 @@ class AnnualSummary(View):
review.book.id for review in ratings.filter(rating=5)
],
"paginated_years": paginated_years,
"goal_status": goal_status,
}
return TemplateResponse(request, "annual_summary/layout.html", data)
@ -208,3 +212,17 @@ def get_books_from_shelfbooks(books_ids):
books = models.Edition.objects.filter(id__in=books_ids).order_by(ordered)
return books
def get_goal_status(user, year):
"""return a dict with the year's goal status"""
try:
goal = models.AnnualGoal.objects.get(user=user, year=year)
except models.AnnualGoal.DoesNotExist:
return None
if goal.privacy != "public":
return None
return dict(**goal.progress, **{"goal": goal.goal})

View File

@ -26,15 +26,15 @@ class Feed(View):
def post(self, request, tab):
"""save feed settings form, with a silent validation fail"""
settings_saved = False
filters_applied = False
form = forms.FeedStatusTypesForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
settings_saved = True
filters_applied = True
return self.get(request, tab, settings_saved)
return self.get(request, tab, filters_applied)
def get(self, request, tab, settings_saved=False):
def get(self, request, tab, filters_applied=False):
"""user's homepage with activity feed"""
tab = [s for s in STREAMS if s["key"] == tab]
tab = tab[0] if tab else STREAMS[0]
@ -61,7 +61,7 @@ class Feed(View):
"goal_form": forms.GoalForm(),
"feed_status_types_options": FeedFilterChoices,
"allowed_status_types": request.user.feed_status_types,
"settings_saved": settings_saved,
"filters_applied": filters_applied,
"path": f"/{tab['key']}",
"annual_summary_year": get_annual_summary_year(),
},