1
0
forked from test/crm
jcrm/crm/www/crm.py

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 ""