yuyu_dashboard/yuyu/cases/setting_use_case.py
2023-03-08 14:45:30 +07:00

47 lines
1.4 KiB
Python

from openstack_dashboard.dashboards.yuyu.core import yuyu_client
from django.utils.html import format_html
class SettingUseCase:
def get_settings(self, request, transform_logo=True):
response = yuyu_client.get(request, "settings/").json()
if transform_logo and response["company_logo"]:
# convert base64 img
response['company_logo'] = format_html(
'<img height="50" src="data:;base64,{}">',
response['company_logo']
)
return response
def get_setting(self, request, key):
response = yuyu_client.get(request, f"settings/{key}").json()
return response
def set_setting(self, request, key, value):
return yuyu_client.patch(request, f"settings/{key}/", {
"value": value
}).json()
def get_setting_admin(self, request, transform_logo=True):
keys_to_exclude = ['billing_enabled']
response = self.get_settings(request, transform_logo=transform_logo)
return [x for x in response.items() if x[0] not in keys_to_exclude]
def has_missing_setting(self, request):
missing = [None, '']
response = self.get_settings(request)
context = {x[0]: True for x in response.items() if x[1] in missing}
if context:
context['has_missing'] = True
return context
context['has_missing'] = False
return context