Includes: API (Express/TypeScript), Astro site, Python workers, document generators, FCC compliance tools, Canada CRTC formation, Ansible infrastructure, and deployment scripts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
app_name = "performancewest_erpnext"
|
|
app_title = "Performance West ERPNext"
|
|
app_publisher = "Performance West Inc."
|
|
app_description = "Custom payment gateways, surcharge hooks, and identity verification for Performance West"
|
|
app_email = "support@performancewest.net"
|
|
app_license = "MIT"
|
|
|
|
# Fixtures to import on bench migrate
|
|
fixtures = [
|
|
{"dt": "Custom Field", "filters": [["dt", "in", ["Sales Order", "Sales Invoice", "Payment Request"]]]},
|
|
{"dt": "Notification", "filters": [["name", "like", "CRTC%"]]},
|
|
{"dt": "Notification", "filters": [["name", "like", "Admin %"]]},
|
|
{"dt": "Email Account", "filters": [["email_account_name", "=", "Performance West Outgoing"]]},
|
|
# Subscription plans for recurring renewals (RA, annual report, CRTC maintenance,
|
|
# formation maintenance bundles). Pricing updated per go-live-todo.md:37, 261.
|
|
{"dt": "Subscription Plan"},
|
|
# Service Items referenced by renewal_worker._compliance_type_to_item —
|
|
# CRTC-MAINT-ANNUAL, MAILBOX-RENEWAL, BC-ANNUAL-REPORT, DOMAIN-RENEWAL-CA,
|
|
# and the COMPLIANCE-OTHER catch-all.
|
|
{"dt": "Item", "filters": [["item_code", "in", [
|
|
"CRTC-MAINT-ANNUAL", "MAILBOX-RENEWAL", "BC-ANNUAL-REPORT",
|
|
"DOMAIN-RENEWAL-CA", "COMPLIANCE-OTHER",
|
|
]]]},
|
|
]
|
|
|
|
# Portal menu items — adds "My Orders" to the ERPNext portal sidebar
|
|
portal_menu_items = [
|
|
{"title": "My Orders", "route": "/orders", "reference_doctype": "Sales Order", "role": "Customer"},
|
|
]
|
|
|
|
# Document event hooks
|
|
doc_events = {
|
|
"Payment Request": {
|
|
"before_insert": "performancewest_erpnext.payments.surcharge.inject_surcharge",
|
|
},
|
|
"Sales Order": {
|
|
"before_submit": "performancewest_erpnext.payments.identity_gate.check_identity",
|
|
},
|
|
}
|
|
|
|
# pw_stripe_checkout is served from www/pw_stripe_checkout.py automatically
|
|
|
|
# Exempt Stripe webhook from CSRF — Stripe uses signature verification instead
|
|
csrf_ignore_methods = [
|
|
"performancewest_erpnext.api.stripe_webhook",
|
|
]
|