66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
# Copyright (c) 2022, JINGROW and Contributors
|
|
# GNU GPLv3 License. See license.txt
|
|
import os
|
|
import subprocess
|
|
|
|
import jingrow
|
|
from jingrow import safe_decode
|
|
from jingrow.integrations.jingrow_providers.jingrowcloud_billing import is_fc_site
|
|
from jingrow.utils import cint, get_system_timezone
|
|
from jingrow.utils.telemetry import capture
|
|
|
|
no_cache = 1
|
|
|
|
|
|
def get_context():
|
|
jingrow.db.commit()
|
|
context = jingrow._dict()
|
|
context.boot = get_boot()
|
|
if jingrow.session.user != "Guest":
|
|
capture("active_site", "crm")
|
|
return context
|
|
|
|
|
|
@jingrow.whitelist(methods=["POST"], allow_guest=True)
|
|
def get_context_for_dev():
|
|
if not jingrow.conf.developer_mode:
|
|
jingrow.throw("This method is only meant for developer mode")
|
|
return get_boot()
|
|
|
|
|
|
def get_boot():
|
|
return jingrow._dict(
|
|
{
|
|
"jingrow_version": jingrow.__version__,
|
|
"default_route": get_default_route(),
|
|
"site_name": jingrow.local.site,
|
|
"read_only_mode": jingrow.flags.read_only,
|
|
"csrf_token": jingrow.sessions.get_csrf_token(),
|
|
"setup_complete": cint(jingrow.get_system_settings("setup_complete")),
|
|
"sysdefaults": jingrow.defaults.get_defaults(),
|
|
"is_demo_site": jingrow.conf.get("is_demo_site"),
|
|
"is_fc_site": is_fc_site(),
|
|
"timezone": {
|
|
"system": get_system_timezone(),
|
|
"user": jingrow.db.get_value("User", jingrow.session.user, "time_zone")
|
|
or get_system_timezone(),
|
|
},
|
|
}
|
|
)
|
|
|
|
|
|
def get_default_route():
|
|
return "/crm"
|
|
|
|
|
|
def run_git_command(command):
|
|
try:
|
|
with open(os.devnull, "wb") as null_stream:
|
|
result = subprocess.check_output(command, shell=True, stdin=null_stream, stderr=null_stream)
|
|
return safe_decode(result).strip()
|
|
except Exception:
|
|
jingrow.log_error(
|
|
title="Git Command Error",
|
|
)
|
|
return ""
|