Files
tripwithbonus/GeneralApp/funcs_options.py
2024-06-29 16:34:36 +03:00

45 lines
1.4 KiB
Python

from .models import *
def get_options_by_opt_types(opt_types, only_vals=False):
if type(opt_types) == str:
kwargs = {'opt_type': opt_types}
elif type(opt_types) == dict:
kwargs = opt_types
else:
kwargs = {'opt_type__in': opt_types}
opts = Option.objects.filter(**kwargs)
if opts and only_vals:
res = {}
opts = opts.values('opt_type', 'value', 'prefix')
for item in opts:
# if item['opt_type'] == 'domain':
#
# try:
# from django.contrib.sites.models import Site
# current_site = Site.objects.get_current()
# res.update({item['opt_type']: current_site.domain})
# # continue
# except Exception as e:
# print(str(e))
if item['prefix']:
res.update({item['opt_type']: f"{item['prefix']}{item['value']}"})
else:
res.update({item['opt_type']: f"{item['value']}"})
return res
return opts
def get_first_option_value_by_opt_type(opt_type):
opts = get_options_by_opt_types(opt_type)
if opts:
return opts[0].value
else:
return None
def get_mail_send_options():
opt_types = ['mail_server_url', 'mail_server_smtp_port', 'sender_mail_login', 'sender_mail_password', 'sender_email', 'project_name']
return get_options_by_opt_types(opt_types, only_vals=True)