feat: Initialize App

This commit is contained in:
jingrow 2025-11-15 19:30:55 +08:00
commit 6739d4cf62
13 changed files with 287 additions and 0 deletions

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
.DS_Store
*.pyc
*.egg-info
*.swp
tags
node_modules
__pycache__

7
README.md Normal file
View File

@ -0,0 +1,7 @@
## Jcapital
Jcapital
#### License
mit

1
jcapital/__init__.py Normal file
View File

@ -0,0 +1 @@
__version__ = "0.0.1"

View File

244
jcapital/hooks.py Normal file
View File

@ -0,0 +1,244 @@
app_name = "jcapital"
app_title = "Jcapital"
app_publisher = "Jingrow"
app_description = "Jcapital"
app_email = "support@jingrow.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": "jcapital",
# "logo": "/assets/jcapital/logo.png",
# "title": "Jcapital",
# "route": "/jcapital",
# "has_permission": "jcapital.api.permission.has_app_permission"
# }
# ]
# Includes in <head>
# ------------------
# include js, css files in header of desk.html
# app_include_css = "/assets/jcapital/css/jcapital.css"
# app_include_js = "/assets/jcapital/js/jcapital.js"
# include js, css files in header of web template
# web_include_css = "/assets/jcapital/css/jcapital.css"
# web_include_js = "/assets/jcapital/js/jcapital.js"
# include custom scss in every website theme (without file extension ".scss")
# website_theme_scss = "jcapital/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"}
# Svg Icons
# ------------------
# include app icons in desk
# app_include_icons = "jcapital/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 pagetype
# website_generators = ["Web Page"]
# Jinja
# ----------
# add methods and filters to jinja environment
# jinja = {
# "methods": "jcapital.utils.jinja_methods",
# "filters": "jcapital.utils.jinja_filters"
# }
# Installation
# ------------
# before_install = "jcapital.install.before_install"
# after_install = "jcapital.install.after_install"
# Uninstallation
# ------------
# before_uninstall = "jcapital.uninstall.before_uninstall"
# after_uninstall = "jcapital.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 = "jcapital.utils.before_app_install"
# after_app_install = "jcapital.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 = "jcapital.utils.before_app_uninstall"
# after_app_uninstall = "jcapital.utils.after_app_uninstall"
# Desk Notifications
# ------------------
# See jingrow.core.notifications.get_notification_config
# notification_config = "jcapital.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 = {
# "ToDo": "custom_app.overrides.CustomToDo"
# }
# Page Events
# ---------------
# Hook on document methods and events
# pg_events = {
# "*": {
# "on_update": "method",
# "on_cancel": "method",
# "on_trash": "method"
# }
# }
# Scheduled Tasks
# ---------------
# scheduler_events = {
# "all": [
# "jcapital.tasks.all"
# ],
# "daily": [
# "jcapital.tasks.daily"
# ],
# "hourly": [
# "jcapital.tasks.hourly"
# ],
# "weekly": [
# "jcapital.tasks.weekly"
# ],
# "monthly": [
# "jcapital.tasks.monthly"
# ],
# }
# Testing
# -------
# before_tests = "jcapital.install.before_tests"
# Overriding Methods
# ------------------------------
#
# override_whitelisted_methods = {
# "jingrow.desk.pagetype.event.event.get_events": "jcapital.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": "jcapital.task.get_dashboard_data"
# }
# exempt linked pagetypes from being automatically cancelled
#
# auto_cancel_exempted_pagetypes = ["Auto Repeat"]
# Ignore links to specified PageTypes when deleting documents
# -----------------------------------------------------------
# ignore_links_on_delete = ["Communication", "ToDo"]
# Request Events
# ----------------
# before_request = ["jcapital.utils.before_request"]
# after_request = ["jcapital.utils.after_request"]
# Job Events
# ----------
# before_job = ["jcapital.utils.before_job"]
# after_job = ["jcapital.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 = [
# "jcapital.auth.validate"
# ]
# Automatically update python controller files with type annotations for this app.
# export_python_type_annotations = True
# default_log_clearing_pagetypes = {
# "Logging PageType Name": 30 # days to retain logs
# }

View File

1
jcapital/modules.txt Normal file
View File

@ -0,0 +1 @@
Jcapital

6
jcapital/patches.txt Normal file
View File

@ -0,0 +1,6 @@
[pre_model_sync]
# Patches added in this section will be executed before pagetypes are migrated
# Read docs to understand patches: https://framework.jingrow.com/docs/v14/user/en/database-migrations
[post_model_sync]
# Patches added in this section will be executed after pagetypes are migrated

0
jcapital/public/.gitkeep Normal file
View File

View File

View File

1
license.txt Normal file
View File

@ -0,0 +1 @@
mit

20
pyproject.toml Normal file
View File

@ -0,0 +1,20 @@
[project]
name = "jcapital"
authors = [
{ name = "Jingrow", email = "support@jingrow.com"}
]
description = "Jcapital"
requires-python = ">=3.10"
readme = "README.md"
dynamic = ["version"]
dependencies = [
# "jingrow~=15.0.0" # Installed and managed by bench.
]
[build-system]
requires = ["flit_core >=3.4,<4"]
build-backend = "flit_core.buildapi"
# These dependencies are only installed when developer mode is enabled
[tool.bench.dev-dependencies]
# package_name = "~=1.1.0"