Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions devel/templatetags/group.py
Original file line number Diff line number Diff line change
@@ -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()
6 changes: 3 additions & 3 deletions main/templatetags/attributes.py
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
6 changes: 3 additions & 3 deletions main/templatetags/cdn.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@


@register.simple_tag
def jquery():
def jquery() -> str:
version = '3.6.0'
filename = f'jquery-{version}.min.js'
link = staticfiles_storage.url(filename)
return mark_safe(f'<script type="text/javascript" src="{link}"></script>')


@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)
return format_html('<script type="text/javascript" src="{link}"></script>', link=link)


@register.simple_tag
def d3js():
def d3js() -> str:
version = '3.5.0'
filename = f'd3-{version}.min.js'
link = staticfiles_storage.url(filename)
Expand Down
3 changes: 2 additions & 1 deletion main/templatetags/flags.py
Original file line number Diff line number Diff line change
@@ -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(
Expand Down
3 changes: 2 additions & 1 deletion planet/views.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render
from django.views.decorators.cache import cache_control

from planet.models import Feed, FeedItem, Planet


@cache_control(max_age=307)
def index(request):
def index(request: HttpRequest) -> HttpResponse:
context = {
'official_feeds': Feed.objects.all(),
'planets': Planet.objects.all(),
Expand Down
7 changes: 5 additions & 2 deletions todolists/templatetags/todolists.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading