django-admin-interface/admin_interface/context_processor.py

36 lines
999 B
Python

from .models import Theme
def get_active_theme(request):
objs_manager = Theme.objects
objs_active_qs = objs_manager.filter(active=True)
objs_active_ls = list(objs_active_qs)
objs_active_count = len(objs_active_ls)
if objs_active_count == 0:
obj = objs_manager.first()
if obj:
obj.set_active()
else:
obj = objs_manager.create()
elif objs_active_count == 1:
obj = objs_active_ls[0]
elif objs_active_count > 1:
# for frame_record in inspect.stack():
# if frame_record[3]=='get_response':
# request = frame_record[0].f_locals['request']
# user = request.user
# break
# else:
# request = None
user = request.user
try:
obj = objs_active_qs.filter(user=user).first()
except:
obj = objs_active_ls[-1]
obj.set_active()
return {
'theme': obj,
}