From 46cb2c40de6449f5bfbe4d2981e785af0b4fe108 Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Tue, 28 Jul 2026 21:46:13 +0200 Subject: [PATCH 1/4] main: Type templatetags --- main/templatetags/attributes.py | 6 +++--- main/templatetags/cdn.py | 6 +++--- main/templatetags/flags.py | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/main/templatetags/attributes.py b/main/templatetags/attributes.py index c3ccfdbc..d3866733 100644 --- a/main/templatetags/attributes.py +++ b/main/templatetags/attributes.py @@ -1,20 +1,20 @@ import re +from typing import Any from django import template -from django.conf import settings numeric_test = re.compile(r"^\d+$") register = template.Library() -def attribute(value, arg): +def attribute(value: Any, arg: str) -> Any: """Gets an attribute of an object dynamically from a string name""" if hasattr(value, str(arg)): return getattr(value, arg) elif numeric_test.match(str(arg)) and len(value) > int(arg): return value[int(arg)] else: - return settings.TEMPLATE_STRING_IF_INVALID + return "" register.filter('attribute', attribute) diff --git a/main/templatetags/cdn.py b/main/templatetags/cdn.py index 1e0e0ce4..c87d78b4 100644 --- a/main/templatetags/cdn.py +++ b/main/templatetags/cdn.py @@ -7,7 +7,7 @@ @register.simple_tag -def jquery(): +def jquery() -> str: version = '3.6.0' filename = f'jquery-{version}.min.js' link = staticfiles_storage.url(filename) @@ -15,7 +15,7 @@ def jquery(): @register.simple_tag -def jquery_tablesorter(): +def jquery_tablesorter() -> str: version = '2.31.0' filename = f'jquery.tablesorter-{version}.min.js' link = staticfiles_storage.url(filename) @@ -23,7 +23,7 @@ def jquery_tablesorter(): @register.simple_tag -def d3js(): +def d3js() -> str: version = '3.5.0' filename = f'd3-{version}.min.js' link = staticfiles_storage.url(filename) diff --git a/main/templatetags/flags.py b/main/templatetags/flags.py index 0da58f63..820a1a36 100644 --- a/main/templatetags/flags.py +++ b/main/templatetags/flags.py @@ -1,11 +1,12 @@ from django import template from django.utils.html import format_html +from django_countries.fields import Country register = template.Library() @register.simple_tag -def country_flag(country): +def country_flag(country: Country) -> str: if not country: return '' return format_html( From 48812bcdbbbde334d8317283badd61faf66f164f Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Tue, 28 Jul 2026 21:47:08 +0200 Subject: [PATCH 2/4] devel: Type templatetags --- devel/templatetags/group.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/devel/templatetags/group.py b/devel/templatetags/group.py index d3fa3cf0..1a08f671 100644 --- a/devel/templatetags/group.py +++ b/devel/templatetags/group.py @@ -1,14 +1,15 @@ from django import template +from django.contrib.auth.models import User register = template.Library() @register.filter(name='in_group') -def in_group(user, group_name): +def in_group(user: User, group_name: str) -> bool: return user.groups.filter(name=group_name).exists() @register.filter(name='in_groups') -def in_groups(user, group_names): - group_names = group_names.split(':') - return user.groups.filter(name__in=group_names).exists() +def in_groups(user: User, group_names: str) -> bool: + names = group_names.split(':') + return user.groups.filter(name__in=names).exists() From 3009d6a1e5f4292f2faf2d66dffe17519ef86d46 Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Tue, 28 Jul 2026 21:47:28 +0200 Subject: [PATCH 3/4] todolists: Template templatetags --- todolists/templatetags/todolists.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/todolists/templatetags/todolists.py b/todolists/templatetags/todolists.py index 4851b8d7..bbbed0fc 100644 --- a/todolists/templatetags/todolists.py +++ b/todolists/templatetags/todolists.py @@ -1,15 +1,18 @@ from django import template from django.utils.html import format_html +from main.models import Arch, Repo +from todolists.models import TodolistPackage + register = template.Library() -def pkg_absolute_url(repo, arch, pkgname): +def pkg_absolute_url(repo: Repo, arch: Arch, pkgname: str) -> str: return f'/packages/{repo.name.lower()}/{arch.name}/{pkgname}/' @register.simple_tag -def todopkg_details_link(todopkg): +def todopkg_details_link(todopkg: TodolistPackage) -> str: pkg = todopkg.pkg if not pkg: return todopkg.pkgname From d2521f56c268d26ca210dc36f97c6e537ffd9450 Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Tue, 28 Jul 2026 21:47:47 +0200 Subject: [PATCH 4/4] planet: Type views --- planet/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/planet/views.py b/planet/views.py index d16255e0..3acdd79f 100644 --- a/planet/views.py +++ b/planet/views.py @@ -1,3 +1,4 @@ +from django.http import HttpRequest, HttpResponse from django.shortcuts import render from django.views.decorators.cache import cache_control @@ -5,7 +6,7 @@ @cache_control(max_age=307) -def index(request): +def index(request: HttpRequest) -> HttpResponse: context = { 'official_feeds': Feed.objects.all(), 'planets': Planet.objects.all(),