Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 

158 řádky
4.8 KiB

  1. from __future__ import unicode_literals
  2. app_name = "frappe"
  3. app_title = "Frappe Framework"
  4. app_publisher = "Frappe Technologies Pvt. Ltd."
  5. app_description = """## Frappe Framework
  6. Frappe is a full stack web application framework written in Python,
  7. Javascript, HTML/CSS with MySQL as the backend. It was built for ERPNext
  8. but is pretty generic and can be used to build database driven apps.
  9. The key differece in Frappe compared to other frameworks is that Frappe
  10. is that meta-data is also treated as data and is used to build front-ends
  11. very easily. Frappe comes with a full blown admin UI called the **Desk**
  12. that handles forms, navigation, lists, menus, permissions, file attachment
  13. and much more out of the box.
  14. Frappe also has a plug-in architecture that can be used to build plugins
  15. to ERPNext.
  16. ### Links:
  17. - Project Home: [https://frappe.io](https://frappe.io)
  18. - Tutorial: [https://frappe.io/tutorial](https://frappe.io/tutorial)
  19. - GitHub: [https://github.com/frappe/frappe](https://github.com/frappe/frappe)
  20. - Forum: [https://discuss.erpnext.com](https://discuss.erpnext.com)
  21. """
  22. app_icon = "octicon octicon-circuit-board"
  23. app_version = "5.4.1"
  24. app_color = "orange"
  25. github_link = "https://github.com/frappe/frappe"
  26. app_email = "info@frappe.io"
  27. before_install = "frappe.utils.install.before_install"
  28. after_install = "frappe.utils.install.after_install"
  29. # website
  30. app_include_js = [
  31. "assets/js/desk.min.js",
  32. "assets/js/editor.min.js",
  33. "assets/js/list.min.js",
  34. "assets/js/form.min.js",
  35. "assets/js/report.min.js",
  36. "assets/js/module.min.js"
  37. ]
  38. app_include_css = [
  39. "assets/css/desk.min.css",
  40. "assets/css/list.min.css",
  41. "assets/css/form.min.css",
  42. "assets/css/report.min.css",
  43. "assets/css/module.min.css"
  44. ]
  45. web_include_js = [
  46. "website_script.js"
  47. ]
  48. bootstrap = "assets/frappe/css/bootstrap.css"
  49. web_include_css = [
  50. "assets/css/frappe-web.css"
  51. ]
  52. website_route_rules = [
  53. {"from_route": "/blog", "to_route": "Blog Post"},
  54. {"from_route": "/blog/<category>", "to_route": "Blog Post"}
  55. ]
  56. website_context = {
  57. "hero": {
  58. "blog": "templates/includes/blog/hero.html"
  59. }
  60. }
  61. write_file_keys = ["file_url", "file_name"]
  62. notification_config = "frappe.core.notifications.get_notification_config"
  63. before_tests = "frappe.utils.install.before_tests"
  64. website_generators = ["Web Page", "Blog Post", "Blog Category", "Web Form"]
  65. email_append_to = ["Event", "ToDo", "Communication"]
  66. calendars = ["Event"]
  67. # login
  68. on_session_creation = [
  69. "frappe.desk.doctype.feed.feed.login_feed",
  70. "frappe.core.doctype.user.user.notifify_admin_access_to_system_manager"
  71. ]
  72. # permissions
  73. permission_query_conditions = {
  74. "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions",
  75. "ToDo": "frappe.desk.doctype.todo.todo.get_permission_query_conditions",
  76. "User": "frappe.core.doctype.user.user.get_permission_query_conditions",
  77. "Feed": "frappe.desk.doctype.feed.feed.get_permission_query_conditions",
  78. "Note": "frappe.desk.doctype.note.note.get_permission_query_conditions"
  79. }
  80. has_permission = {
  81. "Event": "frappe.desk.doctype.event.event.has_permission",
  82. "ToDo": "frappe.desk.doctype.todo.todo.has_permission",
  83. "User": "frappe.core.doctype.user.user.has_permission",
  84. "Feed": "frappe.desk.doctype.feed.feed.has_permission",
  85. "Note": "frappe.desk.doctype.note.note.has_permission"
  86. }
  87. standard_queries = {
  88. "User": "frappe.core.doctype.user.user.user_query"
  89. }
  90. doc_events = {
  91. "*": {
  92. "after_insert": "frappe.email.doctype.email_alert.email_alert.trigger_email_alerts",
  93. "validate": "frappe.email.doctype.email_alert.email_alert.trigger_email_alerts",
  94. "on_update": [
  95. "frappe.desk.notifications.clear_doctype_notifications",
  96. "frappe.email.doctype.email_alert.email_alert.trigger_email_alerts",
  97. "frappe.desk.doctype.feed.feed.update_feed"
  98. ],
  99. "after_rename": "frappe.desk.notifications.clear_doctype_notifications",
  100. "on_submit": [
  101. "frappe.email.doctype.email_alert.email_alert.trigger_email_alerts",
  102. "frappe.desk.doctype.feed.feed.update_feed"
  103. ],
  104. "on_cancel": [
  105. "frappe.desk.notifications.clear_doctype_notifications",
  106. "frappe.email.doctype.email_alert.email_alert.trigger_email_alerts"
  107. ],
  108. "on_trash": "frappe.desk.notifications.clear_doctype_notifications"
  109. }
  110. }
  111. scheduler_events = {
  112. "all": [
  113. "frappe.email.bulk.flush",
  114. "frappe.email.doctype.email_account.email_account.pull",
  115. "frappe.email.doctype.email_account.email_account.notify_unreplied",
  116. ],
  117. "daily": [
  118. "frappe.email.bulk.clear_outbox",
  119. "frappe.desk.notifications.clear_notifications",
  120. "frappe.core.doctype.scheduler_log.scheduler_log.set_old_logs_as_seen",
  121. "frappe.desk.doctype.event.event.send_event_digest",
  122. "frappe.sessions.clear_expired_sessions",
  123. "frappe.email.doctype.email_alert.email_alert.trigger_daily_alerts",
  124. ]
  125. }
  126. default_background = "/assets/frappe/images/ui/into-the-dawn.jpg"
  127. get_translated_dict = {
  128. ("doctype", "System Settings"): "frappe.geo.country_info.get_translated_dict"
  129. }