2026-10-09 12:16:48 +05:30

287 lines
8.1 KiB
Python

app_name = "sidrah_business"
app_title = "Sidrah Business"
app_publisher = "abdul"
app_description = "Sidrah Business Management System"
app_email = "abdult8@gmail.com"
app_license = "mit"
# Apps
# ------------------
# required_apps = []
# Each item in the list will be shown as an app in the apps page
# add_to_apps_screen = [
# {
# "name": "sidrah_business",
# "logo": "/assets/sidrah_business/logo.png",
# "title": "Sidrah Business",
# "route": "/sidrah_business",
# "has_permission": "sidrah_business.api.permission.has_app_permission"
# }
# ]
# Includes in <head>
# ------------------
# include js, css files in header of desk.html
# app_include_css = "/assets/sidrah_business/css/sidrah_business.css"
app_include_js = "/assets/sidrah_business/js/sidrah_soft_delete_desk.js"
# include js, css files in header of web template
# web_include_css = "/assets/sidrah_business/css/sidrah_business.css"
# web_include_js = "/assets/sidrah_business/js/sidrah_business.js"
# include custom scss in every website theme (without file extension ".scss")
# website_theme_scss = "sidrah_business/public/scss/website"
# include js, css files in header of web form
# webform_include_js = {"doctype": "public/js/doctype.js"}
# webform_include_css = {"doctype": "public/css/doctype.css"}
# include js in page
# page_js = {"page" : "public/js/file.js"}
# include js in doctype views
# doctype_js = {"doctype" : "public/js/doctype.js"}
# doctype_list_js = {"doctype" : "public/js/doctype_list.js"}
# doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"}
# doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"}
# Svg Icons
# ------------------
# include app icons in desk
# app_include_icons = "sidrah_business/public/icons.svg"
# Home Pages
# ----------
# application home page (will override Website Settings)
# home_page = "login"
# website user home page (by Role)
# role_home_page = {
# "Role": "home_page"
# }
# Generators
# ----------
# automatically create page for each record of this doctype
# website_generators = ["Web Page"]
# Jinja
# ----------
# add methods and filters to jinja environment
# jinja = {
# "methods": "sidrah_business.utils.jinja_methods",
# "filters": "sidrah_business.utils.jinja_filters"
# }
# Installation
# ------------
# before_install = "sidrah_business.install.before_install"
# after_install = "sidrah_business.install.after_install"
# Uninstallation
# ------------
# before_uninstall = "sidrah_business.uninstall.before_uninstall"
# after_uninstall = "sidrah_business.uninstall.after_uninstall"
# Integration Setup
# ------------------
# To set up dependencies/integrations with other apps
# Name of the app being installed is passed as an argument
# before_app_install = "sidrah_business.utils.before_app_install"
# after_app_install = "sidrah_business.utils.after_app_install"
# Integration Cleanup
# -------------------
# To clean up dependencies/integrations with other apps
# Name of the app being uninstalled is passed as an argument
# before_app_uninstall = "sidrah_business.utils.before_app_uninstall"
# after_app_uninstall = "sidrah_business.utils.after_app_uninstall"
# Desk Notifications
# ------------------
# See frappe.core.notifications.get_notification_config
# notification_config = "sidrah_business.notifications.get_notification_config"
# Permissions
# -----------
# Permissions evaluated in scripted ways
permission_query_conditions = {
"SB Incident": "sidrah_business.soft_delete.sb_incident_condition",
"SB Idea": "sidrah_business.soft_delete.sb_idea_condition",
"SB Order": "sidrah_business.soft_delete.sb_order_condition",
"SB Process": "sidrah_business.soft_delete.sb_process_condition",
"SB Organization": "sidrah_business.soft_delete.sb_organization_condition",
"SB Cycle": "sidrah_business.soft_delete.sb_cycle_condition",
"SB KPI Input": "sidrah_business.soft_delete.sb_kpi_input_condition",
"Managements": "sidrah_business.soft_delete.managements_condition",
"Department": "sidrah_business.soft_delete.department_condition",
"Branch": "sidrah_business.soft_delete.branch_condition",
"SB Delegation": "sidrah_business.soft_delete.sb_delegation_condition",
"SB Group Company": "sidrah_business.soft_delete.sb_group_company_condition",
}
after_migrate = [
"sidrah_business.soft_delete.setup_soft_delete_custom_fields",
"sidrah_business.setup_multitenancy.setup_multitenancy_schema",
]
# Document Events
# ---------------
# Hook on document methods and events
# Escalation must always reflect the stored cycle logs — rows can be added or
# edited straight on the form (not only via the workflow API / nightly engine),
# so every save re-derives escalation_level from the logs.
doc_events = {
"*": {
"before_insert": "sidrah_business.soft_delete.auto_sync_status_from_workflow",
"before_delete": "sidrah_business.soft_delete.prevent_delete",
"before_save": "sidrah_business.soft_delete.auto_sync_status_from_workflow",
},
"SB Process": {
"before_save": "sidrah_business.tasks.recompute_process_escalation",
},
"SB Order": {
"before_save": "sidrah_business.tasks.recompute_order_escalation",
},
"User": {
"validate": "sidrah_business.api.validate_user_creation_permissions",
"on_update": "sidrah_business.setup_multitenancy.sync_user_group_company_permission",
},
}
# Scheduled Tasks
# ---------------
scheduler_events = {
"daily": [
"sidrah_business.tasks.check_overdue_incidents",
"sidrah_business.tasks.run_cycle_engine",
],
}
fixtures = [
"Workflow",
"Workflow State",
"Workflow Action Master",
"Custom DocPerm",
{"doctype": "Custom Field", "filters": [
[
"module", "=", "Sidrah Business"
]
]},
{
"doctype": "Role",
"filters": [
["creation", ">", "2024-06-12"]
]
},
{"doctype": "Workspace", "filters": [
[
"module", "=", "Sidrah Business"
]
]},
{"doctype": "Server Script", "filters": [["module","=","Sidrah Business"]]},
{"doctype": "Notification", "filters": [["module","=","Sidrah Business"]]},
{"doctype": "Report", "filters": [["module","=","Sidrah Business"]]},
]
# Testing
# -------
# before_tests = "sidrah_business.install.before_tests"
# Overriding Methods
# ------------------------------
#
# override_whitelisted_methods = {
# "frappe.desk.doctype.event.event.get_events": "sidrah_business.event.get_events"
# }
#
# each overriding function accepts a `data` argument;
# generated from the base implementation of the doctype dashboard,
# along with any modifications made in other Frappe apps
# override_doctype_dashboards = {
# "Task": "sidrah_business.task.get_dashboard_data"
# }
# exempt linked doctypes from being automatically cancelled
#
# auto_cancel_exempted_doctypes = ["Auto Repeat"]
# Ignore links to specified DocTypes when deleting documents
# -----------------------------------------------------------
# ignore_links_on_delete = ["Communication", "ToDo"]
# Request Events
# ----------------
# before_request = ["sidrah_business.utils.before_request"]
# after_request = ["sidrah_business.utils.after_request"]
# Job Events
# ----------
# before_job = ["sidrah_business.utils.before_job"]
# after_job = ["sidrah_business.utils.after_job"]
# User Data Protection
# --------------------
# user_data_fields = [
# {
# "doctype": "{doctype_1}",
# "filter_by": "{filter_by}",
# "redact_fields": ["{field_1}", "{field_2}"],
# "partial": 1,
# },
# {
# "doctype": "{doctype_2}",
# "filter_by": "{filter_by}",
# "partial": 1,
# },
# {
# "doctype": "{doctype_3}",
# "strict": False,
# },
# {
# "doctype": "{doctype_4}"
# }
# ]
# Authentication and authorization
# --------------------------------
# auth_hooks = [
# "sidrah_business.auth.validate"
# ]
# Automatically update python controller files with type annotations for this app.
# export_python_type_annotations = True
# default_log_clearing_doctypes = {
# "Logging DocType Name": 30 # days to retain logs
# }
# Translation
# ------------
# List of apps whose translatable strings should be excluded from this app's translations.
# ignore_translatable_strings_from = []