Skip to content

Commit 44fde54

Browse files
committed
fix: query DB for releas
1 parent 25211b5 commit 44fde54

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

downloads/views.py

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
from django.core.handlers.wsgi import WSGIRequest
99
from django.db.models import Prefetch
1010
from django.urls import reverse
11+
from django.utils import timezone
1112
from django.views.generic import DetailView, TemplateView, ListView, RedirectView
1213
from django.http import Http404
1314
from django.contrib.syndication.views import Feed
1415
from django.utils.feedgenerator import Rss201rev2Feed
15-
import pytz
1616

1717
from .models import OS, Release, ReleaseFile
1818

@@ -198,38 +198,26 @@ def _fetch_releases(url: str) -> list[dict[str, Any]]:
198198
sorted_releases = sorted(data, key=lambda x: x["release_date"], reverse=True)
199199
return sorted_releases[:10]
200200

201-
def item_title(self, item: dict[str, Any]) -> str:
201+
def item_title(self, item: Release) -> str:
202202
"""Return the release name as the item title."""
203-
return item.get("name", "Unknown Release")
203+
return item.name
204204

205-
def item_description(self, item: dict[str, Any]) -> str:
205+
def item_description(self, item):
206206
"""Return the release version and release date as the item description."""
207-
version = item.get("version", "Unknown")
208-
release_date = item.get("release_date", "Unknown")
209-
return f"Version: {version}, Release Date: {release_date}"
207+
return f"Version: {item.version}, Release Date: {item.release_date}"
210208

211-
def item_link(self, item: dict[str, Any]) -> str:
209+
def item_link(self, item):
212210
"""Return the URL to the release page on python.org."""
213-
return reverse("downloads:download_release_detail", args=[item.get("slug", "")])
211+
return reverse("downloads:download_release_detail", args=[item.slug])
214212

215-
@staticmethod
216-
def item_pubdate(item: dict[str, Any]) -> datetime:
213+
def item_pubdate(self, item: Release) -> datetime:
217214
"""Return the release date as the item publication date."""
218-
try:
219-
release_date = datetime.strptime(
220-
item.get("release_date", ""), "%Y-%m-%dT%H:%M:%SZ"
221-
)
222-
return pytz.utc.localize(release_date)
223-
except ValueError:
224-
logger.error(
225-
f"Invalid release date format for item: {item.get('name', 'Unknown')}"
226-
)
227-
return pytz.utc.localize(datetime.now())
215+
return timezone.make_aware(item.release_date) if item.release_date else None
228216

229217
@staticmethod
230-
def item_guid(item: dict[str, Any]) -> str:
231-
"""Return the release URI as the item GUID."""
232-
return item.get("resource_uri", "")
218+
def item_guid(item: Release) -> str:
219+
"""Return a unique ID for the item based on DB record."""
220+
return str(item.pk)
233221

234222
def create_url(self, path: str) -> str:
235223
"""Create a full URL using the current site domain."""

0 commit comments

Comments
 (0)