app_name = "crm" app_title = "Jingrow CRM" app_publisher = "JINGROW" app_description = "Kick-ass Open Source CRM" app_email = "shariq@jingrow.com" app_license = "AGPLv3" app_icon_url = "/assets/crm/images/logo.svg" app_icon_title = "CRM" app_icon_route = "/crm" # Apps # ------------------ # required_apps = [] add_to_apps_screen = [ { "name": "crm", "logo": "/assets/crm/images/logo.svg", "title": "CRM", "route": "/crm", "has_permission": "crm.api.check_app_permission", } ] # Includes in # ------------------ # include js, css files in header of desk.html # app_include_css = "/assets/crm/css/crm.css" # app_include_js = "/assets/crm/js/crm.js" # include js, css files in header of web template # web_include_css = "/assets/crm/css/crm.css" # web_include_js = "/assets/crm/js/crm.js" # include custom scss in every website theme (without file extension ".scss") # website_theme_scss = "crm/public/scss/website" # include js, css files in header of web form # webform_include_js = {"pagetype": "public/js/pagetype.js"} # webform_include_css = {"pagetype": "public/css/pagetype.css"} # include js in page # page_js = {"page" : "public/js/file.js"} # include js in pagetype views # pagetype_js = {"pagetype" : "public/js/pagetype.js"} # pagetype_list_js = {"pagetype" : "public/js/pagetype_list.js"} # pagetype_tree_js = {"pagetype" : "public/js/pagetype_tree.js"} # pagetype_calendar_js = {"pagetype" : "public/js/pagetype_calendar.js"} # Home Pages # ---------- # application home page (will override Website Settings) # home_page = "login" # website user home page (by Role) # role_home_page = { # "Role": "home_page" # } website_route_rules = [ {"from_route": "/crm/", "to_route": "crm"}, ] # Generators # ---------- # automatically create page for each record of this pagetype # website_generators = ["Web Page"] # Jinja # ---------- # add methods and filters to jinja environment # jinja = { # "methods": "crm.utils.jinja_methods", # "filters": "crm.utils.jinja_filters" # } # Installation # ------------ before_install = "crm.install.before_install" after_install = "crm.install.after_install" # Uninstallation # ------------ before_uninstall = "crm.uninstall.before_uninstall" # after_uninstall = "crm.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 = "crm.utils.before_app_install" # after_app_install = "crm.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 = "crm.utils.before_app_uninstall" # after_app_uninstall = "crm.utils.after_app_uninstall" # Desk Notifications # ------------------ # See jingrow.core.notifications.get_notification_config # notification_config = "crm.notifications.get_notification_config" # Permissions # ----------- # Permissions evaluated in scripted ways # permission_query_conditions = { # "Event": "jingrow.desk.pagetype.event.event.get_permission_query_conditions", # } # # has_permission = { # "Event": "jingrow.desk.pagetype.event.event.has_permission", # } # PageType Class # --------------- # Override standard pagetype classes override_pagetype_class = { "Contact": "crm.overrides.contact.CustomContact", "Email Template": "crm.overrides.email_template.CustomEmailTemplate", } # Document Events # --------------- # Hook on document methods and events pg_events = { "Contact": { "validate": ["crm.api.contact.validate"], }, "ToDo": { "after_insert": ["crm.api.todo.after_insert"], "on_update": ["crm.api.todo.on_update"], }, "Comment": { "on_update": ["crm.api.comment.on_update"], }, "WhatsApp Message": { "validate": ["crm.api.whatsapp.validate"], "on_update": ["crm.api.whatsapp.on_update"], }, "CRM Deal": { "on_update": [ "crm.fcrm.pagetype.erpnext_crm_settings.erpnext_crm_settings.create_customer_in_erpnext" ], }, "User": { "before_validate": ["crm.api.demo.validate_user"], "validate_reset_password": ["crm.api.demo.validate_reset_password"], }, } # Scheduled Tasks # --------------- # scheduler_events = { # "all": [ # "crm.tasks.all" # ], # "daily": [ # "crm.tasks.daily" # ], # "hourly": [ # "crm.tasks.hourly" # ], # "weekly": [ # "crm.tasks.weekly" # ], # "monthly": [ # "crm.tasks.monthly" # ], # } # Testing # ------- # before_tests = "crm.install.before_tests" # Overriding Methods # ------------------------------ # # override_whitelisted_methods = { # "jingrow.desk.pagetype.event.event.get_events": "crm.event.get_events" # } # # each overriding function accepts a `data` argument; # generated from the base implementation of the pagetype dashboard, # along with any modifications made in other Jingrow apps # override_pagetype_dashboards = { # "Task": "crm.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 = ["crm.utils.before_request"] # after_request = ["crm.utils.after_request"] # Job Events # ---------- # before_job = ["crm.utils.before_job"] # after_job = ["crm.utils.after_job"] # User Data Protection # -------------------- # user_data_fields = [ # { # "pagetype": "{pagetype_1}", # "filter_by": "{filter_by}", # "redact_fields": ["{field_1}", "{field_2}"], # "partial": 1, # }, # { # "pagetype": "{pagetype_2}", # "filter_by": "{filter_by}", # "partial": 1, # }, # { # "pagetype": "{pagetype_3}", # "strict": False, # }, # { # "pagetype": "{pagetype_4}" # } # ] # Authentication and authorization # -------------------------------- # auth_hooks = [ # "crm.auth.validate" # ] after_migrate = ["crm.fcrm.pagetype.fcrm_settings.fcrm_settings.after_migrate"] standard_dropdown_items = [ { "name1": "app_selector", "label": "Apps", "type": "Route", "route": "#", "is_standard": 1, }, { "name1": "toggle_theme", "label": "Toggle theme", "type": "Route", "icon": "moon", "route": "#", "is_standard": 1, }, { "name1": "settings", "label": "Settings", "type": "Route", "icon": "settings", "route": "#", "is_standard": 1, }, { "name1": "login_to_fc", "label": "Login to Jingrow Cloud", "type": "Route", "route": "#", "is_standard": 1, }, { "name1": "about", "label": "About", "type": "Route", "icon": "info", "route": "#", "is_standard": 1, }, { "name1": "separator", "label": "", "type": "Separator", "is_standard": 1, }, { "name1": "logout", "label": "Log out", "type": "Route", "icon": "log-out", "route": "#", "is_standard": 1, }, ]