48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
from datetime import datetime
|
|
from django.urls.base import reverse
|
|
import zoneinfo
|
|
|
|
|
|
def params(**kwargs):
|
|
params = "&".join([f"{key}" + ("" if kwargs[key] is None else f"={kwargs[key]}") for key in kwargs])
|
|
if len(params) > 0:
|
|
params = "?" + params
|
|
return params
|
|
|
|
|
|
def url_page(rel_path, **kwargs):
|
|
return reverse('page-page', kwargs={'rel_path': rel_path}) + params(**kwargs)
|
|
|
|
|
|
def url_helpview(page):
|
|
return reverse('page-helpview', kwargs={'page': page})
|
|
|
|
|
|
def url_delete(rel_path, **kwargs):
|
|
return reverse('page-delete', kwargs={'rel_path': rel_path}) + params(**kwargs)
|
|
|
|
|
|
def url_edit(rel_path, **kwargs):
|
|
return reverse('page-edit', kwargs={'rel_path': rel_path}) + params(**kwargs)
|
|
|
|
|
|
def url_rename(rel_path, **kwargs):
|
|
return reverse('page-rename', kwargs={'rel_path': rel_path}) + params(**kwargs)
|
|
|
|
|
|
def get_search_query(request):
|
|
return request.GET.get('q')
|
|
|
|
|
|
def timestamp_to_datetime(request, tm):
|
|
from users.models import get_userprofile
|
|
#
|
|
try:
|
|
up = get_userprofile(request.user)
|
|
except AttributeError:
|
|
return datetime.fromtimestamp(tm)
|
|
else:
|
|
tz = zoneinfo.ZoneInfo(up.timezone)
|
|
#
|
|
return datetime.fromtimestamp(tm, tz)
|