From 6faa6f502b39377ea8f85a7fca52492f3618c5c5 Mon Sep 17 00:00:00 2001 From: j Date: Sun, 23 Feb 2025 11:47:20 -0500 Subject: [PATCH] weeks --- app/item/views.py | 5 +++-- app/listmonk/views.py | 2 +- requirements.txt | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/item/views.py b/app/item/views.py index a65ccf7..8452429 100644 --- a/app/item/views.py +++ b/app/item/views.py @@ -2,6 +2,7 @@ import json import xml.etree.ElementTree as ET import ox +import isoweek from django.utils import timezone from django.utils.timezone import datetime, timedelta @@ -49,7 +50,7 @@ def get_byline(week): def get_weeks(archive): weeks = sorted(set(archive.values_list('year', 'week'))) - weeks = [datetime.strptime('%s-W%s-1' % w, "%Y-W%U-%w").strftime('%Y-%m-%d') for w in weeks] + weeks = [isoweek.Week(*w).monday().strftime('%Y-%m-%d') for w in weeks] weeks = [{ 'date': week, 'year': week.split('-')[0], @@ -89,7 +90,7 @@ def archive(request, year=None, month=None, day=None, week=None): archive = models.Item.all_public() if year and month and day: date = datetime.strptime('%s-%s-%s' % (year, month, day), '%Y-%m-%d') - week = int(date.strftime('%U')) + week = date.isocalendar()[1] year = int(year) archive_week = archive.filter(year=year, week=week).order_by('published') years = {} diff --git a/app/listmonk/views.py b/app/listmonk/views.py index 2aa4c80..de71841 100644 --- a/app/listmonk/views.py +++ b/app/listmonk/views.py @@ -34,7 +34,7 @@ def week(year, month, day): week=ExtractWeek('published') ) date = datetime.strptime('%s-%s-%s' % (year, month, day), '%Y-%m-%d') - week = int(date.strftime('%U')) + week = date.isocalendar()[1] year = int(year) archive_week = archive.filter(year=year, week=week).order_by('published') context['weeks'] = get_weeks(archive) diff --git a/requirements.txt b/requirements.txt index e80dfb9..ce76fb5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,3 +15,4 @@ redis django-brake python-telegram-bot ox +isoweek