3
3
from typing import Dict , List
4
4
from django .template .base import Parser , Token , Node , FilterExpression , kwarg_re
5
5
from django .template import Library , TemplateSyntaxError , NodeList
6
- from django .conf import settings
7
6
from django .utils import timezone
8
7
import datetime
9
8
9
+ from django .utils .safestring import SafeText
10
+
10
11
from ..middleware import get_request_user
11
12
from ..decorators .models import UserModelUTZMixin
13
+ from ..datetime import utzdatetime
14
+
12
15
13
16
register = Library ()
14
17
_generic_name = "usertimezone"
@@ -89,10 +92,9 @@ def get_user(
89
92
return user
90
93
91
94
92
- def render (self , context ):
95
+ def render (self , context ) -> SafeText :
93
96
request_user = context .get ("request" ).user
94
- if self .user :
95
- preferred_user = self .user .resolve (context )
97
+ preferred_user = self .user .resolve (context ) if self .user else None
96
98
user = preferred_user if preferred_user else request_user
97
99
98
100
utz_meta = getattr (user , "UTZMeta" , None )
@@ -113,7 +115,7 @@ def render(self, context):
113
115
114
116
115
117
@register .tag (name = _generic_name )
116
- def utz_tag (parser : Parser , token : Token ):
118
+ def utz_tag (parser : Parser , token : Token ) -> UTZNode :
117
119
"""
118
120
Template tag to render datetimes in the template content
119
121
in the preferred user's timezone.
@@ -144,7 +146,7 @@ def utz_tag(parser: Parser, token: Token):
144
146
145
147
146
148
@register .filter (name = _generic_name )
147
- def utz_filter (value : datetime .datetime , user : UserModelUTZMixin = None ):
149
+ def utz_filter (value : datetime .datetime , user : UserModelUTZMixin = None ) -> datetime . datetime | utzdatetime :
148
150
"""
149
151
Filter to convert a datetime object to the request/provided user's timezone.
150
152
0 commit comments