mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 12:18:45 -05:00
moved manifest to use main theming function
This commit is contained in:
@@ -10,6 +10,10 @@ register = template.Library()
|
|||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def theme_values(request):
|
def theme_values(request):
|
||||||
|
return get_theming_values(request)
|
||||||
|
|
||||||
|
|
||||||
|
def get_theming_values(request):
|
||||||
space = None
|
space = None
|
||||||
if request.space:
|
if request.space:
|
||||||
space = request.space
|
space = request.space
|
||||||
@@ -17,10 +21,6 @@ def theme_values(request):
|
|||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
space = Space.objects.filter(id=UNAUTHENTICATED_THEME_FROM_SPACE).first()
|
space = Space.objects.filter(id=UNAUTHENTICATED_THEME_FROM_SPACE).first()
|
||||||
|
|
||||||
return get_theming_values(space, request.user)
|
|
||||||
|
|
||||||
|
|
||||||
def get_theming_values(space, user):
|
|
||||||
themes = {
|
themes = {
|
||||||
UserPreference.BOOTSTRAP: 'themes/bootstrap.min.css',
|
UserPreference.BOOTSTRAP: 'themes/bootstrap.min.css',
|
||||||
UserPreference.FLATLY: 'themes/flatly.min.css',
|
UserPreference.FLATLY: 'themes/flatly.min.css',
|
||||||
@@ -48,15 +48,14 @@ def get_theming_values(space, user):
|
|||||||
'sticky_nav': 'position: sticky; top: 0; left: 0; z-index: 1000;',
|
'sticky_nav': 'position: sticky; top: 0; left: 0; z-index: 1000;',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if request.user.is_authenticated:
|
||||||
if user.is_authenticated:
|
if request.user.userpreference.theme in themes:
|
||||||
if user.userpreference.theme in themes:
|
tv['theme'] = static(themes[ request.user.userpreference.theme])
|
||||||
tv['theme'] = static(themes[user.userpreference.theme])
|
if request.user.userpreference.nav_bg_color:
|
||||||
if user.userpreference.nav_bg_color:
|
tv['nav_bg_color'] = request.user.userpreference.nav_bg_color
|
||||||
tv['nav_bg_color'] = user.userpreference.nav_bg_color
|
if request.user.userpreference.nav_text_color and request.user.userpreference.nav_text_color in nav_text_type_mapping:
|
||||||
if user.userpreference.nav_text_color and user.userpreference.nav_text_color in nav_text_type_mapping:
|
tv['nav_text_class'] = nav_text_type_mapping[ request.user.userpreference.nav_text_color]
|
||||||
tv['nav_text_class'] = nav_text_type_mapping[user.userpreference.nav_text_color]
|
if not request.user.userpreference.nav_sticky:
|
||||||
if not user.userpreference.nav_sticky:
|
|
||||||
tv['sticky_nav'] = ''
|
tv['sticky_nav'] = ''
|
||||||
|
|
||||||
if space:
|
if space:
|
||||||
|
|||||||
@@ -1,19 +1,24 @@
|
|||||||
from django.contrib import auth
|
from django.contrib import auth
|
||||||
from django.templatetags.static import static
|
from django.templatetags.static import static
|
||||||
|
from django.test import RequestFactory
|
||||||
|
|
||||||
from cookbook.models import Space, UserPreference, UserFile
|
from cookbook.models import Space, UserPreference, UserFile
|
||||||
from cookbook.templatetags.theming_tags import theme_values, get_theming_values
|
from cookbook.templatetags.theming_tags import theme_values, get_theming_values
|
||||||
|
|
||||||
|
|
||||||
def test_theming_function(space_1, u1_s1):
|
def test_theming_function(space_1, u1_s1):
|
||||||
user = auth.get_user(u1_s1)
|
|
||||||
# uf = UserFile.objects.create(name='test', space=space_1, created_by=user) #TODO add file tests
|
|
||||||
|
|
||||||
assert get_theming_values(space_1, user)['theme'] == static('themes/tandoor.min.css')
|
# uf = UserFile.objects.create(name='test', space=space_1, created_by=user) #TODO add file tests
|
||||||
assert get_theming_values(space_1, user)['nav_bg_color'] == '#ddbf86'
|
user = auth.get_user(u1_s1)
|
||||||
assert get_theming_values(space_1, user)['nav_text_class'] == 'navbar-light'
|
request = RequestFactory()
|
||||||
assert get_theming_values(space_1, user)['nav_logo'] == static('assets/brand_logo.png')
|
request.user = auth.get_user(u1_s1)
|
||||||
assert get_theming_values(space_1, user)['sticky_nav'] == 'position: sticky; top: 0; left: 0; z-index: 1000;'
|
request.space = space_1
|
||||||
|
|
||||||
|
assert get_theming_values(request)['theme'] == static('themes/tandoor.min.css')
|
||||||
|
assert get_theming_values(request)['nav_bg_color'] == '#ddbf86'
|
||||||
|
assert get_theming_values(request)['nav_text_class'] == 'navbar-light'
|
||||||
|
assert get_theming_values(request)['nav_logo'] == static('assets/brand_logo.png')
|
||||||
|
assert get_theming_values(request)['sticky_nav'] == 'position: sticky; top: 0; left: 0; z-index: 1000;'
|
||||||
|
|
||||||
user.userpreference.theme = UserPreference.TANDOOR_DARK
|
user.userpreference.theme = UserPreference.TANDOOR_DARK
|
||||||
user.userpreference.nav_bg_color = '#ffffff'
|
user.userpreference.nav_bg_color = '#ffffff'
|
||||||
@@ -21,16 +26,16 @@ def test_theming_function(space_1, u1_s1):
|
|||||||
user.userpreference.nav_sticky = False
|
user.userpreference.nav_sticky = False
|
||||||
user.userpreference.save()
|
user.userpreference.save()
|
||||||
|
|
||||||
assert get_theming_values(space_1, user)['theme'] == static('themes/tandoor_dark.min.css')
|
assert get_theming_values(request)['theme'] == static('themes/tandoor_dark.min.css')
|
||||||
assert get_theming_values(space_1, user)['nav_bg_color'] == '#ffffff'
|
assert get_theming_values(request)['nav_bg_color'] == '#ffffff'
|
||||||
assert get_theming_values(space_1, user)['nav_text_class'] == 'navbar-dark'
|
assert get_theming_values(request)['nav_text_class'] == 'navbar-dark'
|
||||||
assert get_theming_values(space_1, user)['sticky_nav'] == ''
|
assert get_theming_values(request)['sticky_nav'] == ''
|
||||||
|
|
||||||
space_1.space_theme = Space.BOOTSTRAP
|
space_1.space_theme = Space.BOOTSTRAP
|
||||||
space_1.nav_bg_color = '#000000'
|
space_1.nav_bg_color = '#000000'
|
||||||
space_1.nav_text_color = UserPreference.DARK
|
space_1.nav_text_color = UserPreference.DARK
|
||||||
space_1.save()
|
space_1.save()
|
||||||
|
|
||||||
assert get_theming_values(space_1, user)['theme'] == static('themes/bootstrap.min.css')
|
assert get_theming_values(request)['theme'] == static('themes/bootstrap.min.css')
|
||||||
assert get_theming_values(space_1, user)['nav_bg_color'] == '#000000'
|
assert get_theming_values(request)['nav_bg_color'] == '#000000'
|
||||||
assert get_theming_values(space_1, user)['nav_text_class'] == 'navbar-light'
|
assert get_theming_values(request)['nav_text_class'] == 'navbar-light'
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ from cookbook.helper.permission_helper import (group_required, has_group_permiss
|
|||||||
from cookbook.models import (Comment, CookLog, InviteLink, SearchFields, SearchPreference,
|
from cookbook.models import (Comment, CookLog, InviteLink, SearchFields, SearchPreference,
|
||||||
ShareLink, Space, UserSpace, ViewLog)
|
ShareLink, Space, UserSpace, ViewLog)
|
||||||
from cookbook.tables import CookLogTable, ViewLogTable
|
from cookbook.tables import CookLogTable, ViewLogTable
|
||||||
|
from cookbook.templatetags.theming_tags import get_theming_values
|
||||||
from cookbook.version_info import VERSION_INFO
|
from cookbook.version_info import VERSION_INFO
|
||||||
from recipes.settings import PLUGINS, BASE_DIR
|
from recipes.settings import PLUGINS, BASE_DIR
|
||||||
|
|
||||||
@@ -481,18 +482,13 @@ def report_share_abuse(request, token):
|
|||||||
|
|
||||||
|
|
||||||
def web_manifest(request):
|
def web_manifest(request):
|
||||||
icons = [
|
theme_values = get_theming_values(request)
|
||||||
{"src": static("/assets/logo_color.svg"), "sizes": "any"},
|
|
||||||
{"src": static("/assets/logo_color144.png"), "type": "image/png", "sizes": "144x144"},
|
|
||||||
{"src": static("/assets/logo_color512.png"), "type": "image/png", "sizes": "512x512"}
|
|
||||||
]
|
|
||||||
|
|
||||||
if request.user.is_authenticated and getattr(request.space, 'logo_color_svg') and getattr(request.space, 'logo_color_144') and getattr(request.space, 'logo_color_512'):
|
icons = [
|
||||||
icons = [
|
{"src": theme_values['logo_color_svg'], "sizes": "any"},
|
||||||
{"src": request.space.logo_color_svg.file.url, "sizes": "any"},
|
{"src": theme_values['logo_color_144'], "type": "image/png", "sizes": "144x144"},
|
||||||
{"src": request.space.logo_color_144.file.url, "type": "image/png", "sizes": "144x144"},
|
{"src": theme_values['logo_color_512'], "type": "image/png", "sizes": "512x512"}
|
||||||
{"src": request.space.logo_color_512.file.url, "type": "image/png", "sizes": "512x512"}
|
]
|
||||||
]
|
|
||||||
|
|
||||||
manifest_info = {
|
manifest_info = {
|
||||||
"name": "Tandoor Recipes",
|
"name": "Tandoor Recipes",
|
||||||
@@ -500,10 +496,10 @@ def web_manifest(request):
|
|||||||
"description": _("Manage recipes, shopping list, meal plans and more."),
|
"description": _("Manage recipes, shopping list, meal plans and more."),
|
||||||
"icons": icons,
|
"icons": icons,
|
||||||
"start_url": "./search",
|
"start_url": "./search",
|
||||||
"background_color": "#ffcb76",
|
"background_color": theme_values['nav_bg_color'],
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
"scope": ".",
|
"scope": ".",
|
||||||
"theme_color": "#ffcb76",
|
"theme_color": theme_values['nav_bg_color'],
|
||||||
"shortcuts": [
|
"shortcuts": [
|
||||||
{
|
{
|
||||||
"name": _("Plan"),
|
"name": _("Plan"),
|
||||||
|
|||||||
Reference in New Issue
Block a user