lemoncurry/lemoncurry/templatetags/lemoncurry_tags.py

53 lines
1.3 KiB
Python
Raw Normal View History

2017-10-22 19:35:29 -04:00
import json
2017-10-24 00:01:17 -04:00
from collections import namedtuple
2017-10-22 19:35:29 -04:00
from os.path import join
from types import SimpleNamespace
2017-10-22 19:35:29 -04:00
2017-10-22 18:37:24 -04:00
from django import template
from django.conf import settings
2017-10-24 00:01:17 -04:00
from django.urls import reverse
2017-10-22 18:37:24 -04:00
register = template.Library()
cache = SimpleNamespace(package_json=None)
2017-10-22 18:37:24 -04:00
2017-10-22 19:35:29 -04:00
2017-10-24 00:01:17 -04:00
class MenuItem:
def __init__(self, label, icon, url):
self.label = label
self.icon = icon
self.url = reverse(url)
2017-10-22 19:35:29 -04:00
@register.simple_tag
def get_package_json():
if cache.package_json:
return cache.package_json
2017-10-22 19:35:29 -04:00
with open(join(settings.BASE_DIR, 'package.json')) as f:
cache.package_json = json.load(f)
return cache.package_json
2017-10-22 19:35:29 -04:00
2017-10-22 18:37:24 -04:00
@register.simple_tag
def site_name():
return settings.LEMONCURRY_SITE_NAME
2017-10-24 00:01:17 -04:00
@register.inclusion_tag('lemoncurry/tags/nav.html')
def nav_left():
items = ()
return {'items': items}
@register.inclusion_tag('lemoncurry/tags/nav.html')
def nav_right(request):
if request.user.is_authenticated():
items = (
MenuItem(label='admin', icon='fa fa-gear', url='admin:index'),
MenuItem(label='log out', icon='fa fa-sign-out', url='admin:logout'),
)
else:
items = (
MenuItem(label='log in', icon='fa fa-sign-in', url='admin:login'),
)
return {'items': items}