mirror of
https://github.com/meichthys/church.git
synced 2026-02-20 08:19:14 +00:00
commit
b278c7f52a
58
README.md
58
README.md
@ -22,12 +22,15 @@ The following features have been implemented in this app (see the [🗺️ Roadm
|
||||
- `Church Prayer Request` tracking
|
||||
- Authenticated or Anonymous web-form submissions
|
||||
- Authenticated users can manage their own prayer requests
|
||||
- `Church Missionary` & `Church Missionary Agency` tracking
|
||||
- Church module desk workspace with guided setup steps
|
||||
- Event tracking
|
||||
- Event types, details, basic attendance tracking & reporting
|
||||
- Collection/donation tracking
|
||||
- Donation entry with collection totals & split check support
|
||||
- Bank reconciliation report
|
||||
- Fund balance tracking
|
||||
- Collections automatically update funds when saved
|
||||
- Church Belief tracking
|
||||
- Basic Church Website
|
||||
- About Page
|
||||
@ -35,40 +38,59 @@ The following features have been implemented in this app (see the [🗺️ Roadm
|
||||
|
||||
## 📥 Installing Frappe
|
||||
|
||||
To use this app, you must have a working Frappe environment. There are a variety of ways to install a Frappe instance. The recommended ways for this project are:
|
||||
To use the 'Church' app, you must have a working Frappe environment first. There are a variety of ways to install a Frappe instance. The recommended ways for this project are:
|
||||
|
||||
### ☁️ In the Cloud
|
||||
The easiest (but not free) way to get a working Frappe environment is to use [Frappe Cloud](https://frappe.io/cloud). For a few dollars per month you can run an instance in the cloud. You get your choice of support options and shouldn't need to worry about data loss yourself.
|
||||
Note: Wit this option, the money you pay to FrappeCloud is not received by maintainers of this 'Church' app. - We offer the 'Church' software for free, but you pay for the cloud hosting through Frappe.
|
||||
|
||||
### 💪 Self-Host
|
||||
If you're the more technical or frugal type, you can self-host an instance on a home pc or server. [Frappe Manager](https://github.com/rtcamp/frappe-manager) can be used to quickly setup a local frappe instance. The general steps are:
|
||||
If you're the more technical and/or frugal type, you can self-host an instance on a home pc or server. [Frappe Manager](https://github.com/rtcamp/frappe-manager) can be used to quickly setup a local frappe instance. It's not as easy as a simple .exe file install, but we think you can do it (Please ask us for help if you can't)! The general steps are:
|
||||
|
||||
1. Find a machine onto which you can install Frappe (A dedicated linux-based machine is best. Windows is not recommended as it requires the use of [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).)
|
||||
1. Find a machine onto which you can install Frappe (A dedicated linux-based machine is best. Windows is possible, but is not recommended as it requires some extra steps and the use of [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).)
|
||||
2. Run the [frappe-manager install script](https://github.com/rtCamp/Frappe-Manager/tree/develop/scripts)
|
||||
3. Create a new site using frappe-manager: `fm create -e prod your_site.com`.
|
||||
3. Create a new site using frappe-manager: `fm create -e prod <church.your_site.com>`.
|
||||
4. Update DNS records to point to your new site. This is a bit outside the scope of this project, but basically you need to either update your hosts file to map your site url (used in the above command) to the ip address of the machine hosting the frappe instance. Alternatively, you can update your DNS server on your router to point to your new site. If you need help with this, you can file an issue and I'd be glad to schedule a call to try to help you set it up.
|
||||
|
||||
Making a local instance of frappe accessible from outside of your network is currently out of the scope of this project, but with some persistence and some technical expertise, it can be achieved. If you are uncomfortable with this, it may be best to use the Frappe Cloud option above.
|
||||
Making a local instance of frappe accessible from outside of your network is currently out of the scope of this project, but with some persistence and some technical expertise, it can be achieved. If you are completely lost or uncomfortable with this, it may be best to use the Frappe Cloud option above, or contact us for help. We'd be glad to help where we can.
|
||||
|
||||
## ⛪ Installing this Church app
|
||||
You can install this app using the [bench](https://github.com/frappe/bench) CLI:
|
||||
To install this app on your frappe instance:
|
||||
|
||||
If self-hosting, you can use bench by activating the bench environment with `fm shell`.
|
||||
- If hosting on Frappe Cloud, you should be able to log into your Frappe Cloud dashboard, select your site, and install the app from the list of apps.
|
||||
- If you are self-hosting, you can use bench by activating the [bench](https://github.com/frappe/bench) environment with `fm shell` and then running the following
|
||||
|
||||
To install Church:
|
||||
```bash
|
||||
# First we need to download the app:
|
||||
bench get-app https://github.com/meichthys/church
|
||||
## Or if you want to try the latest development version:
|
||||
bench get-app https://github.com/meichthys/church --branch develop
|
||||
```bash
|
||||
# Set the bench command to use your site (Replace `<church.your_site.com>` with your actual site name):
|
||||
bench use <church.your_site.com>
|
||||
|
||||
# Then we can install the app:
|
||||
bench install-app church
|
||||
```
|
||||
# Download the app:
|
||||
bench get-app https://github.com/meichthys/church
|
||||
## Or if you want to try the latest development version:
|
||||
bench get-app https://github.com/meichthys/church --branch develop
|
||||
|
||||
# Install the app:
|
||||
bench install-app church
|
||||
|
||||
# Migrate the app for good measure:
|
||||
bench migrate
|
||||
|
||||
# In the future, to update the app to the latest version, log into the host server and run:
|
||||
fm shell
|
||||
bench update
|
||||
bench migrate
|
||||
```
|
||||
|
||||
After the above installation you should be able to access the web interface using the URL you defined in the `bench create` command above. You should see the `Church` app installed when you view `Help > About`.
|
||||
|
||||
Before you start using the app, it is a good idea to setup a new `User` in the system with the `Church Admin` Role Profile and `Church Admin` Module Profile. This user will be able to manage all aspects of the church (the `Administrator` user should be reserved for system wide maintenance or troubleshooting). Additionally, if you want to delegate some responsibilities to other people, you can create additional `User`s with the `Church User` Role Profile and `Church User` Module Profiles. Thise types of users will be able to read and update most information, but not critical information. To see a list of permissions you can open the `Role Permissions Manager` and select the `Church Admin` or `Church User` roles to see what permissions these users roles have.
|
||||
Before you start using the app be sure to:
|
||||
|
||||
1. Change the `Administrator` users's password (the default is `admin`). This user should only be used by the site administrator - and should not be used on a daily basis.
|
||||
2. Setup a new user in the system by typing `New User` in the searchbar. Under the "Roles & Permissions" tab, Give this user the `Church Manager` Role Profile and `Church` Module Profile.
|
||||
This user will be able to manage all aspects of the church.
|
||||
3. If you want more than one user on the system, or if you want to delegate some responsibilities to other people, you can create additional users with the `Church User` Role Profile and `Church` Module Profiles.
|
||||
These types of users will be able to read and update most information, but not certain critical information.
|
||||
- To see a list of permissions you can open the `Role Permissions Manager` and select the `Church Manager` or `Church User` roles to see what permissions these users roles have.
|
||||
|
||||
## 🗺️ Feature Roadmap
|
||||
|
||||
@ -76,8 +98,6 @@ Hopefully this roadmap will help avoid too much scope creep and provide a sense
|
||||
|
||||
- Sermon Doctype
|
||||
- Ministry tracking
|
||||
- Fund Tracking
|
||||
- Update fund balance after collection submission
|
||||
- Add standard church website pages:
|
||||
- Home/Welcome
|
||||
- Missions
|
||||
|
||||
0
church/church_communications/doctype/__init__.py
Normal file
0
church/church_communications/doctype/__init__.py
Normal file
@ -0,0 +1,108 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"autoname": "format:{date} - {#####}",
|
||||
"creation": "2025-09-23 21:49:59.122163",
|
||||
"description": "A letter sent to the church.",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"date",
|
||||
"is_private",
|
||||
"column_break_zdbp",
|
||||
"share_with_church",
|
||||
"shared_date",
|
||||
"section_break_qmpt",
|
||||
"file",
|
||||
"content"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "date",
|
||||
"fieldtype": "Date",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Date Received",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"description": "Check this to prevent the letter from being displayed publicly (i.e. on the website).",
|
||||
"fieldname": "is_private",
|
||||
"fieldtype": "Check",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Is Private?"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_zdbp",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"default": "0",
|
||||
"description": "If this letter should be shared with the church.",
|
||||
"fieldname": "share_with_church",
|
||||
"fieldtype": "Check",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Share With Church?"
|
||||
},
|
||||
{
|
||||
"description": "The date the letter was shared to the church.",
|
||||
"fieldname": "shared_date",
|
||||
"fieldtype": "Date",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Shared Date"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_qmpt",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "file",
|
||||
"fieldtype": "Attach",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "File"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"description": "Content of letter (if not sent as a file)",
|
||||
"fieldname": "content",
|
||||
"fieldtype": "Text Editor",
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"label": "Content"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2025-10-03 23:08:55.266412",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Communications",
|
||||
"name": "Church Letter",
|
||||
"naming_rule": "Expression",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchLetter(Document):
|
||||
pass
|
||||
0
church/church_communications/report/__init__.py
Normal file
0
church/church_communications/report/__init__.py
Normal file
@ -3,36 +3,37 @@
|
||||
"add_translate_data": 0,
|
||||
"columns": [
|
||||
{
|
||||
"fieldname": "parent",
|
||||
"fieldname": "parenttype",
|
||||
"fieldtype": "Link",
|
||||
"label": "Type",
|
||||
"options": "Doctype",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "parent",
|
||||
"fieldtype": "Dynamic Link",
|
||||
"label": "From",
|
||||
"options": "Church Person",
|
||||
"options": "parenttype",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Date",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "read_to_church",
|
||||
"fieldtype": "Check",
|
||||
"label": "Read to Church?",
|
||||
"label": "Received",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "is_private",
|
||||
"fieldtype": "Check",
|
||||
"label": "Is Private?",
|
||||
"label": "Private?",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "file",
|
||||
"fieldtype": "Link",
|
||||
"fieldtype": "Data",
|
||||
"label": "File",
|
||||
"options": "File",
|
||||
"width": 0
|
||||
"options": "URL",
|
||||
"width": 200
|
||||
},
|
||||
{
|
||||
"fieldname": "content",
|
||||
@ -41,33 +42,23 @@
|
||||
"width": 0
|
||||
}
|
||||
],
|
||||
"creation": "2025-09-23 22:52:51.796888",
|
||||
"creation": "2025-10-03 23:57:52.706273",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Report",
|
||||
"filters": [
|
||||
{
|
||||
"default": "Church Person",
|
||||
"fieldname": "person",
|
||||
"fieldtype": "Link",
|
||||
"label": "Church Person",
|
||||
"mandatory": 1,
|
||||
"options": "Church Person",
|
||||
"wildcard_filter": 0
|
||||
}
|
||||
],
|
||||
"filters": [],
|
||||
"idx": 0,
|
||||
"is_standard": "Yes",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-23 23:56:51.124106",
|
||||
"modified": "2025-10-04 00:57:20.117288",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "Church Letters",
|
||||
"module": "Church Communications",
|
||||
"name": "Church Letters To Be Shared",
|
||||
"owner": "Administrator",
|
||||
"prepared_report": 0,
|
||||
"query": "SELECT parent, date, read_to_church, is_private, file, content\nFROM `tabChurch Letter`\nWHERE parent = %(person)s\nORDER BY parent",
|
||||
"query": "SELECT parenttype, parent, date, is_private, COALESCE(file, \" \"), content, name \nFROM `tabChurch Letter` \nWHERE share_with_church = True\n AND shared_date IS NULL;",
|
||||
"ref_doctype": "Church Person",
|
||||
"report_name": "Church Letters",
|
||||
"report_name": "Church Letters To Be Shared",
|
||||
"report_type": "Query Report",
|
||||
"roles": [
|
||||
{
|
||||
@ -0,0 +1,69 @@
|
||||
{
|
||||
"charts": [],
|
||||
"content": "[{\"id\":\"nnvMTG5Sl5\",\"type\":\"paragraph\",\"data\":{\"text\":\"<i>\\\"Let no unwholesome talk come out of your mouths, but only what is helpful for building up the one in need and bringing grace to those who listen.\\\"/</i>\",\"col\":12}},{\"id\":\"ybuIQ-BIW-\",\"type\":\"card\",\"data\":{\"card_name\":\"Communication Reports\",\"col\":5}}]",
|
||||
"creation": "2025-10-03 23:10:33.370229",
|
||||
"custom_blocks": [],
|
||||
"docstatus": 0,
|
||||
"doctype": "Workspace",
|
||||
"for_user": "",
|
||||
"hide_custom": 0,
|
||||
"icon": "mail",
|
||||
"idx": 0,
|
||||
"indicator_color": "green",
|
||||
"is_hidden": 0,
|
||||
"label": "Communications",
|
||||
"links": [
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Communication Reports",
|
||||
"link_count": 3,
|
||||
"link_type": "DocType",
|
||||
"onboard": 0,
|
||||
"type": "Card Break"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "Missionary Letters",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Missionary Letters",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "Person Letters",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Person Letters",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "Letters Not Yet Shared With Curch",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Letters To Be Shared",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-10-04 01:01:26.799817",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Communications",
|
||||
"name": "Communications",
|
||||
"number_cards": [],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 2.0,
|
||||
"shortcuts": [],
|
||||
"title": "Communications"
|
||||
}
|
||||
0
church/church_customizations/__init__.py
Normal file
0
church/church_customizations/__init__.py
Normal file
92
church/church_finances/custom/church_fund.json
Normal file
92
church/church_finances/custom/church_fund.json
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"custom_fields": [],
|
||||
"custom_perms": [
|
||||
{
|
||||
"_assign": null,
|
||||
"_comments": null,
|
||||
"_liked_by": null,
|
||||
"_user_tags": null,
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 1,
|
||||
"creation": "2025-09-30 21:47:23.826602",
|
||||
"delete": 1,
|
||||
"docstatus": 0,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"idx": 0,
|
||||
"if_owner": 0,
|
||||
"import": 1,
|
||||
"modified": "2025-09-30 21:47:23.826602",
|
||||
"modified_by": "Administrator",
|
||||
"name": "kdm4rn17ce",
|
||||
"owner": "Administrator",
|
||||
"parent": "Church Fund",
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Church Manager",
|
||||
"select": 1,
|
||||
"share": 1,
|
||||
"submit": 0,
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"_assign": null,
|
||||
"_comments": null,
|
||||
"_liked_by": null,
|
||||
"_user_tags": null,
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 0,
|
||||
"creation": "2025-09-26 23:06:43.941404",
|
||||
"delete": 0,
|
||||
"docstatus": 0,
|
||||
"email": 0,
|
||||
"export": 0,
|
||||
"idx": 0,
|
||||
"if_owner": 0,
|
||||
"import": 0,
|
||||
"modified": "2025-09-19 00:08:46.427725",
|
||||
"modified_by": "Administrator",
|
||||
"name": "q8iho1g2s6",
|
||||
"owner": "Administrator",
|
||||
"parent": "Church Fund",
|
||||
"permlevel": 0,
|
||||
"print": 0,
|
||||
"read": 0,
|
||||
"report": 0,
|
||||
"role": "Church User",
|
||||
"select": 0,
|
||||
"share": 0,
|
||||
"submit": 0,
|
||||
"write": 0
|
||||
}
|
||||
],
|
||||
"doctype": "Church Fund",
|
||||
"links": [
|
||||
{
|
||||
"creation": "2025-09-02 01:11:30.383380",
|
||||
"custom": 0,
|
||||
"docstatus": 0,
|
||||
"group": null,
|
||||
"hidden": 0,
|
||||
"idx": 1,
|
||||
"is_child_table": 0,
|
||||
"link_doctype": "Church Collection",
|
||||
"link_fieldname": "fund",
|
||||
"modified": "2025-09-26 23:06:33.331651",
|
||||
"modified_by": "Administrator",
|
||||
"name": "jptl8mpt67",
|
||||
"owner": "Administrator",
|
||||
"parent": "Church Fund",
|
||||
"parent_doctype": null,
|
||||
"parentfield": "links",
|
||||
"parenttype": "DocType",
|
||||
"table_fieldname": "donations"
|
||||
}
|
||||
],
|
||||
"property_setters": [],
|
||||
"sync_on_migrate": 1
|
||||
}
|
||||
@ -11,18 +11,22 @@
|
||||
"dynamic_filters_json": "[]",
|
||||
"filters_json": "[]",
|
||||
"group_by_type": "Count",
|
||||
"idx": 2,
|
||||
"idx": 3,
|
||||
"is_public": 0,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": "2025-09-21 22:10:31.079736",
|
||||
"modified": "2025-09-21 22:40:42.003149",
|
||||
"last_synced_on": "2025-10-03 22:59:38.179280",
|
||||
"modified": "2025-10-03 23:00:21.417449",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Collections Sum",
|
||||
"number_of_groups": 0,
|
||||
"owner": "Administrator",
|
||||
"parent_document_type": "Church Collection",
|
||||
"roles": [],
|
||||
"roles": [
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"show_values_over_chart": 1,
|
||||
"source": "",
|
||||
"time_interval": "Weekly",
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
{
|
||||
"chart_name": "Church Fund Balances",
|
||||
"chart_type": "Report",
|
||||
"creation": "2025-10-02 01:25:37.459929",
|
||||
"currency": "USD",
|
||||
"custom_options": "{\"x_field\": \"fund\", \"chart_type\": \"Bar\", \"y_axis_fields\": [{\"idx\": 1, \"__islocal\": true, \"y_field\": \"balance\", \"color\": \"#29CD42\", \"name\": \"row 1\"}], \"y_fields\": [\"balance\"], \"colors\": [\"#29CD42\"]}",
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"filters_json": "{}",
|
||||
"group_by_type": "Count",
|
||||
"idx": 0,
|
||||
"is_public": 0,
|
||||
"is_standard": 1,
|
||||
"modified": "2025-10-02 01:26:04.007658",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Fund Balances",
|
||||
"number_of_groups": 0,
|
||||
"owner": "Administrator",
|
||||
"report_name": "Church Fund Balances",
|
||||
"roles": [],
|
||||
"show_values_over_chart": 1,
|
||||
"time_interval": "Yearly",
|
||||
"timeseries": 0,
|
||||
"timespan": "Last Year",
|
||||
"type": "Bar",
|
||||
"use_report_chart": 0,
|
||||
"x_field": "fund",
|
||||
"y_axis": [
|
||||
{
|
||||
"color": "#29CD42",
|
||||
"y_field": "balance"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -19,20 +19,57 @@ frappe.ui.form.on("Church Collection", {
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Keep Collection `total_amount` up to date when amounts are changed/added
|
||||
frappe.ui.form.on("Church Donation", "amount", update_collection_total);
|
||||
frappe.ui.form.on("Church Donation", "amount", function(frm, cdt, cdn) {
|
||||
update_collection_total(frm);
|
||||
update_fund_totals(frm);
|
||||
});
|
||||
|
||||
// Keep Collection `total_amount` up to date when rows are removed from grid
|
||||
frappe.ui.form.on("Church Donation", {
|
||||
donations_remove: update_collection_total
|
||||
donations_remove: function(frm) {
|
||||
update_collection_total(frm);
|
||||
update_fund_totals(frm);
|
||||
}
|
||||
});
|
||||
|
||||
// Also update when fund field changes
|
||||
frappe.ui.form.on("Church Donation", "fund", function(frm, cdt, cdn) {
|
||||
update_fund_totals(frm);
|
||||
});
|
||||
|
||||
// Update Collection `total_amount` with sum of donation amounts
|
||||
function update_collection_total(frm) {
|
||||
var total = 0;
|
||||
frm.doc.donations.forEach(function (donation) {
|
||||
total += donation.amount || 0;
|
||||
});
|
||||
frm.set_value("total_amount", total);
|
||||
var total = 0;
|
||||
frm.doc.donations.forEach(function (donation) {
|
||||
total += donation.amount || 0;
|
||||
});
|
||||
frm.set_value("total_amount", total);
|
||||
}
|
||||
|
||||
// Update fund_totals table based on donations
|
||||
function update_fund_totals(frm) {
|
||||
// Clear existing fund_totals before each update
|
||||
frm.clear_table("fund_totals");
|
||||
|
||||
// Calculate totals by fund
|
||||
var fund_totals = {};
|
||||
frm.doc.donations.forEach(function(donation) {
|
||||
if (donation.fund && donation.amount) {
|
||||
if (!fund_totals[donation.fund]) {
|
||||
fund_totals[donation.fund] = 0;
|
||||
}
|
||||
fund_totals[donation.fund] += donation.amount;
|
||||
}
|
||||
});
|
||||
|
||||
// Add rows to fund_totals table
|
||||
Object.keys(fund_totals).forEach(function(fund) {
|
||||
var row = frm.add_child("fund_totals");
|
||||
row.fund = fund;
|
||||
row.total = fund_totals[fund];
|
||||
});
|
||||
|
||||
// Refresh the fund_totals field to show updated data
|
||||
frm.refresh_field("fund_totals");
|
||||
}
|
||||
@ -11,6 +11,7 @@
|
||||
"event",
|
||||
"column_break_ijpy",
|
||||
"total_amount",
|
||||
"fund_totals",
|
||||
"section_break_izta",
|
||||
"donations"
|
||||
],
|
||||
@ -53,14 +54,22 @@
|
||||
"fieldname": "total_amount",
|
||||
"fieldtype": "Currency",
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"label": "Total Amount",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "fund_totals",
|
||||
"fieldtype": "Table",
|
||||
"label": "Fund Totals",
|
||||
"options": "Church Collection Fund Total",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-09-04 23:45:50.511534",
|
||||
"modified": "2025-10-01 22:52:37.422727",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Collection",
|
||||
@ -85,4 +94,4 @@
|
||||
"sort_order": "DESC",
|
||||
"states": [],
|
||||
"track_changes": 1
|
||||
}
|
||||
}
|
||||
@ -1,9 +1,35 @@
|
||||
# Copyright (c) 2025, meichthys and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchCollection(Document):
|
||||
pass
|
||||
def after_insert(self):
|
||||
self.update_church_funds()
|
||||
|
||||
def update_church_funds(self):
|
||||
# Group donations by fund
|
||||
fund_data = {}
|
||||
for donation in self.donations:
|
||||
if donation.fund and donation.amount:
|
||||
if donation.fund not in fund_data:
|
||||
fund_data[donation.fund] = 0
|
||||
fund_data[donation.fund] += donation.amount
|
||||
|
||||
# Update each Church Fund
|
||||
for fund_name, fund_total in fund_data.items():
|
||||
fund_doc = frappe.get_doc("Church Fund", fund_name)
|
||||
|
||||
# Add financial transaction
|
||||
transaction = fund_doc.append(
|
||||
"transactions",
|
||||
{"amount": fund_total, "source_type": "Church Collection", "source": self.name},
|
||||
)
|
||||
transaction.creation = frappe.utils.now()
|
||||
# Update balance (assuming you want to add to existing balance)
|
||||
current_balance = fund_doc.get("balance") or 0
|
||||
fund_doc.balance = current_balance + fund_total
|
||||
|
||||
fund_doc.save()
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"creation": "2025-10-01 22:18:39.386224",
|
||||
"description": "Total donations for specific `Church Fund`s",
|
||||
"doctype": "DocType",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"fund",
|
||||
"total"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "fund",
|
||||
"fieldtype": "Link",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Fund",
|
||||
"options": "Church Fund",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "total",
|
||||
"fieldtype": "Currency",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Total",
|
||||
"reqd": 1
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2025-10-02 00:41:27.821263",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Collection Fund Total",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchCollectionFundTotal(Document):
|
||||
pass
|
||||
@ -0,0 +1,70 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"creation": "2025-10-01 23:06:24.774047",
|
||||
"description": "A financial transaction from a source (i.e. Person, Business, etc)",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"amount",
|
||||
"source_type",
|
||||
"source",
|
||||
"notes"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "amount",
|
||||
"fieldtype": "Currency",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Amount",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "notes",
|
||||
"fieldtype": "Small Text",
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"label": "Notes"
|
||||
},
|
||||
{
|
||||
"fieldname": "source_type",
|
||||
"fieldtype": "Link",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Source Type",
|
||||
"options": "DocType",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "source",
|
||||
"fieldtype": "Dynamic Link",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Source",
|
||||
"options": "source_type",
|
||||
"reqd": 1
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2025-10-02 00:50:27.009030",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Financial Transaction",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchFinancialTransaction(Document):
|
||||
pass
|
||||
@ -11,7 +11,10 @@
|
||||
"description",
|
||||
"column_break_ojjy",
|
||||
"start_date",
|
||||
"end_date"
|
||||
"end_date",
|
||||
"balance",
|
||||
"section_break_xcgh",
|
||||
"transactions"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
@ -42,6 +45,21 @@
|
||||
"fieldname": "end_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "End Date"
|
||||
},
|
||||
{
|
||||
"fieldname": "balance",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Balance"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_xcgh",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "transactions",
|
||||
"fieldtype": "Table",
|
||||
"label": "Transactions",
|
||||
"options": "Church Financial Transaction"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
@ -53,7 +71,7 @@
|
||||
"table_fieldname": "donations"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-08 23:10:00.488734",
|
||||
"modified": "2025-10-01 23:11:07.400554",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Fund",
|
||||
@ -79,4 +97,4 @@
|
||||
"sort_order": "DESC",
|
||||
"states": [],
|
||||
"track_changes": 1
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,18 @@ from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchFund(Document):
|
||||
pass
|
||||
def before_save(self):
|
||||
# Ensure balance is always current before saving
|
||||
self.recalculate_balance()
|
||||
|
||||
def on_update(self):
|
||||
self.recalculate_balance()
|
||||
|
||||
def recalculate_balance(self):
|
||||
# Calculate balance from all financial transactions
|
||||
total_balance = 0
|
||||
for transaction in self.transactions:
|
||||
total_balance += transaction.amount or 0
|
||||
|
||||
# Update the balance field
|
||||
self.balance = total_balance
|
||||
|
||||
@ -17,10 +17,10 @@
|
||||
"wildcard_filter": 0
|
||||
}
|
||||
],
|
||||
"idx": 2,
|
||||
"idx": 3,
|
||||
"is_standard": "Yes",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:37.094571",
|
||||
"modified": "2025-10-02 01:07:53.346443",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Collection Bank Reconciliation",
|
||||
@ -33,6 +33,9 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"filters\":[],\"fields\":[[\"name\",\"Church Collection\"],[\"event\",\"Church Collection\"],[\"fund\",\"Church Donation\"],[\"person\",\"Church Donation\"],[\"payment_type\",\"Church Donation\"],[\"check_number\",\"Church Donation\"],[\"amount\",\"Church Donation\"]],\"order_by\":\"`tabChurch Collection`.`modified` desc\",\"page_length\":20,\"column_widths\":{\"name\":120,\"event\":120,\"Church Donation:fund\":120,\"Church Donation:person\":120,\"Church Donation:payment_type\":120,\"Church Donation:check_number\":120,\"Church Donation:amount\":120},\"group_by\":null}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:37.149849",
|
||||
"modified": "2025-10-02 01:10:11.876159",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Donations",
|
||||
@ -23,6 +23,9 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"filters\":[[\"Church Collection\",\"date\",\"Timespan\",\"this year\",false]],\"fields\":[[\"person\",\"Church Donation\"],[\"_aggregate_column\",\"Church Donation\"]],\"order_by\":\"`tabChurch Collection`.`modified` desc\",\"add_totals_row\":true,\"page_length\":20,\"column_widths\":{\"Church Donation:person\":120,\"_aggregate_column\":200},\"group_by\":{\"group_by\":\"`tabChurch Donation`.`person`\",\"aggregate_function\":\"sum\",\"aggregate_on\":\"`tabChurch Donation`.`amount`\"}}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:37.187395",
|
||||
"modified": "2025-10-02 01:09:55.346449",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Donations by Person",
|
||||
@ -23,6 +23,9 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
{
|
||||
"add_total_row": 1,
|
||||
"add_translate_data": 0,
|
||||
"columns": [
|
||||
{
|
||||
"fieldname": "fund",
|
||||
"fieldtype": "Link",
|
||||
"label": "Fund",
|
||||
"options": "Church Fund",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "balance",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Balance",
|
||||
"width": 0
|
||||
}
|
||||
],
|
||||
"creation": "2025-10-01 23:58:31.335720",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Report",
|
||||
"filters": [],
|
||||
"idx": 0,
|
||||
"is_standard": "Yes",
|
||||
"letterhead": null,
|
||||
"modified": "2025-10-02 00:14:58.822835",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Fund Balances",
|
||||
"owner": "Administrator",
|
||||
"prepared_report": 0,
|
||||
"query": "SELECT fund, balance\nFROM `tabChurch Fund`;",
|
||||
"ref_doctype": "Church Fund",
|
||||
"report_name": "Church Fund Balances",
|
||||
"report_type": "Query Report",
|
||||
"roles": [
|
||||
{
|
||||
"role": "Church User"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
{
|
||||
"add_total_row": 1,
|
||||
"add_translate_data": 0,
|
||||
"columns": [
|
||||
{
|
||||
"fieldname": "fund",
|
||||
"fieldtype": "Link",
|
||||
"label": "Fund",
|
||||
"options": "Church Fund",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Amount",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "notes",
|
||||
"fieldtype": "Data",
|
||||
"label": "Notes",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "creation",
|
||||
"fieldtype": "Datetime",
|
||||
"label": "Date",
|
||||
"width": 0
|
||||
}
|
||||
],
|
||||
"creation": "2025-10-02 00:08:03.097873",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Report",
|
||||
"filters": [
|
||||
{
|
||||
"default": "",
|
||||
"fieldname": "from_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "From Date",
|
||||
"mandatory": 1,
|
||||
"options": "",
|
||||
"wildcard_filter": 0
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"fieldname": "to_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "To Date",
|
||||
"mandatory": 1,
|
||||
"wildcard_filter": 0
|
||||
}
|
||||
],
|
||||
"idx": 0,
|
||||
"is_standard": "Yes",
|
||||
"letterhead": null,
|
||||
"modified": "2025-10-02 00:37:51.943094",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Fund Transactions",
|
||||
"owner": "Administrator",
|
||||
"prepared_report": 0,
|
||||
"query": "SELECT \n cf.fund, \n ft.amount, \n ft.notes, \n ft.creation\nFROM \n `tabChurch Fund` cf \nINNER JOIN \n `tabChurch Financial Transaction` ft ON ft.parent = cf.name \nWHERE \n ft.parenttype = 'Church Fund'\n AND (%(from_date)s IS NULL OR DATE(ft.creation) >= %(from_date)s) \n AND (%(to_date)s IS NULL OR DATE(ft.creation) <= %(to_date)s) \nORDER BY\n cf.fund, ft.creation DESC",
|
||||
"ref_doctype": "Church Fund",
|
||||
"report_name": "Church Fund Transactions",
|
||||
"report_type": "Query Report",
|
||||
"roles": [
|
||||
{
|
||||
"role": "Church User"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
{
|
||||
"add_total_row": 1,
|
||||
"add_translate_data": 0,
|
||||
"columns": [
|
||||
{
|
||||
"fieldname": "fund",
|
||||
"fieldtype": "Link",
|
||||
"label": "Fund",
|
||||
"options": "Church Fund",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Amount",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "notes",
|
||||
"fieldtype": "Data",
|
||||
"label": "Notes",
|
||||
"width": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "creation",
|
||||
"fieldtype": "Datetime",
|
||||
"label": "Date",
|
||||
"width": 0
|
||||
}
|
||||
],
|
||||
"creation": "2025-10-02 00:47:04.809206",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Report",
|
||||
"filters": [
|
||||
{
|
||||
"default": "",
|
||||
"fieldname": "from_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "From Date",
|
||||
"mandatory": 1,
|
||||
"options": "",
|
||||
"wildcard_filter": 0
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"fieldname": "to_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "To Date",
|
||||
"mandatory": 1,
|
||||
"wildcard_filter": 0
|
||||
}
|
||||
],
|
||||
"idx": 0,
|
||||
"is_standard": "Yes",
|
||||
"letterhead": null,
|
||||
"modified": "2025-10-02 00:47:04.809206",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Fund Transactions By Date",
|
||||
"owner": "Administrator",
|
||||
"prepared_report": 0,
|
||||
"query": "SELECT \n cf.fund, \n ft.amount, \n ft.notes, \n ft.creation\nFROM \n `tabChurch Fund` cf \nINNER JOIN \n `tabChurch Financial Transaction` ft ON ft.parent = cf.name \nWHERE \n ft.parenttype = 'Church Fund'\n AND (%(from_date)s IS NULL OR DATE(ft.creation) >= %(from_date)s) \n AND (%(to_date)s IS NULL OR DATE(ft.creation) <= %(to_date)s) \nORDER BY\n cf.fund, ft.creation DESC",
|
||||
"ref_doctype": "Church Fund",
|
||||
"report_name": "Church Fund Transactions By Date",
|
||||
"report_type": "Query Report",
|
||||
"roles": [
|
||||
{
|
||||
"role": "Church User"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
}
|
||||
@ -1,11 +1,15 @@
|
||||
{
|
||||
"charts": [
|
||||
{
|
||||
"chart_name": "Church Fund Balances",
|
||||
"label": "Church Fund Balances"
|
||||
},
|
||||
{
|
||||
"chart_name": "Church Collections Sum",
|
||||
"label": "Collections"
|
||||
}
|
||||
],
|
||||
"content": "[{\"id\":\"mncYXd3Fp_\",\"type\":\"paragraph\",\"data\":{\"text\":\"<i>\\\"Which of you, wishing to build a tower, does not first sit down and \\ncount the cost to see if he has the resources to complete it?\\\"</i>\",\"col\":12}},{\"id\":\"MmG7zVkZbr\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Collections\",\"col\":12}},{\"id\":\"nN5R0rrK8W\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"Xwvf2HyJiA\",\"type\":\"card\",\"data\":{\"card_name\":\"Collection Documents\",\"col\":4}},{\"id\":\"m34hRRgTkK\",\"type\":\"card\",\"data\":{\"card_name\":\"Collection Reports\",\"col\":4}},{\"id\":\"l_H4g7YzJQ\",\"type\":\"spacer\",\"data\":{\"col\":12}}]",
|
||||
"content": "[{\"id\":\"mncYXd3Fp_\",\"type\":\"paragraph\",\"data\":{\"text\":\"<i>\\\"Which of you, wishing to build a tower, does not first sit down and \\ncount the cost to see if he has the resources to complete it?\\\"</i>\",\"col\":12}},{\"id\":\"MmG7zVkZbr\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Collections\",\"col\":6}},{\"id\":\"K7pkEdUhpZ\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Church Fund Balances\",\"col\":6}},{\"id\":\"nN5R0rrK8W\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"Xwvf2HyJiA\",\"type\":\"card\",\"data\":{\"card_name\":\"Collection Documents\",\"col\":4}},{\"id\":\"m34hRRgTkK\",\"type\":\"card\",\"data\":{\"card_name\":\"Collection Reports\",\"col\":4}},{\"id\":\"lFJ3k1PnBW\",\"type\":\"card\",\"data\":{\"card_name\":\"Fund Reports\",\"col\":4}},{\"id\":\"l_H4g7YzJQ\",\"type\":\"spacer\",\"data\":{\"col\":12}}]",
|
||||
"creation": "2025-09-14 22:29:59.428671",
|
||||
"custom_blocks": [],
|
||||
"docstatus": 0,
|
||||
@ -18,47 +22,6 @@
|
||||
"is_hidden": 0,
|
||||
"label": "Finances",
|
||||
"links": [
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Collection Reports",
|
||||
"link_count": 3,
|
||||
"link_type": "DocType",
|
||||
"onboard": 0,
|
||||
"type": "Card Break"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Donations",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Donations",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"report_ref_doctype": "Church Collection",
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "Collection Bank Reconciliation",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Collection Bank Reconciliation",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Donations by Person (This Year)",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Donations by Person",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"report_ref_doctype": "Church Collection",
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
@ -97,19 +60,79 @@
|
||||
"link_type": "DocType",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Fund Reports",
|
||||
"link_count": 1,
|
||||
"link_type": "DocType",
|
||||
"onboard": 0,
|
||||
"type": "Card Break"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "Church Fund Balances",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Fund Balances",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Collection Reports",
|
||||
"link_count": 3,
|
||||
"link_type": "DocType",
|
||||
"onboard": 0,
|
||||
"type": "Card Break"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Donations",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Donations",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"report_ref_doctype": "Church Collection",
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 1,
|
||||
"label": "Collection Bank Reconciliation",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Collection Bank Reconciliation",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"hidden": 0,
|
||||
"is_query_report": 0,
|
||||
"label": "Donations Totals by Person (This Year)",
|
||||
"link_count": 0,
|
||||
"link_to": "Church Donations by Person",
|
||||
"link_type": "Report",
|
||||
"onboard": 0,
|
||||
"report_ref_doctype": "Church Collection",
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-25 23:12:50.561032",
|
||||
"modified": "2025-10-04 01:05:15.885894",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Finances",
|
||||
"name": "Finances",
|
||||
"number_cards": [],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "Church",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 26.0,
|
||||
"sequence_id": 3.0,
|
||||
"shortcuts": [],
|
||||
"title": "Finances"
|
||||
}
|
||||
@ -2,20 +2,29 @@
|
||||
"allow_roles": [
|
||||
{
|
||||
"role": "Administrator"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"creation": "2025-09-07 00:14:45.033193",
|
||||
"creation": "2025-09-26 23:06:43.733904",
|
||||
"docstatus": 0,
|
||||
"doctype": "Module Onboarding",
|
||||
"documentation_url": "https://github.com/meichthys/church",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"modified": "2025-09-21 22:43:07.160106",
|
||||
"modified": "2025-09-30 21:21:52.088048",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Foundations",
|
||||
"name": "Church",
|
||||
"owner": "Administrator",
|
||||
"steps": [
|
||||
{
|
||||
"step": "Church Manager"
|
||||
},
|
||||
{
|
||||
"step": "Church Information"
|
||||
},
|
||||
@ -32,7 +41,7 @@
|
||||
"step": "Church Prayer Request"
|
||||
}
|
||||
],
|
||||
"subtitle": "People, Families, Events, Ministries, and more...",
|
||||
"subtitle": "People, Families, Events, Ministries, Collections, and more...",
|
||||
"success_message": "Your Church is setup! \ud83c\udf89 May God grow your ministry \ud83d\ude4f",
|
||||
"title": "\u26ea Let's Set Up Your Church."
|
||||
}
|
||||
@ -5,7 +5,7 @@
|
||||
"description": "Events can be used to track `Church Person` attendance and to link to `Church Collection`s",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"idx": 1,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
|
||||
@ -1,15 +1,16 @@
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add Church Information",
|
||||
"creation": "2025-09-18 00:37:00.347151",
|
||||
"description": "Church information is used across the application to populate parts of the church website, letterheads, reports, etc.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"form_tour": "Church Information",
|
||||
"idx": 0,
|
||||
"idx": 1,
|
||||
"is_complete": 0,
|
||||
"is_single": 1,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-18 00:47:42.796050",
|
||||
"modified": "2025-09-28 22:44:13.743291",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Church Information",
|
||||
"owner": "Administrator",
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Create Church Manager User",
|
||||
"creation": "2025-09-30 20:52:59.340570",
|
||||
"description": "Before you get started, you should create a new user. The 'Administrator' user should not be used on a daily basis and should be reserved for troubleshooting and system configuration. At least one separate user should be created with the 'Church Manager' RoleProfile and the 'Church' ModuleProfile permissions. These users will have full access to the Church app.\n\nAdditional users can also be created with the 'Church User' RoleProfile and 'Church' ModuleProfile permissions. These users will have access to most of the Church app, but will be restricted from modifying, or even seeing sensitive portions of the app. To see the exact permissions that these users have, you can (with the 'Administrator' account) use the seach bar at the top to search for 'Role Permissions Manager' and select the 'Church User' role to see what is accessible by those types of users.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-30 20:53:20.314286",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Church Manager",
|
||||
"owner": "Administrator",
|
||||
"reference_document": "User",
|
||||
"show_form_tour": 0,
|
||||
"show_full_form": 0,
|
||||
"title": "Church Manager",
|
||||
"validate_action": 1
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add Church Person",
|
||||
"creation": "2025-09-07 00:14:45.050314",
|
||||
"creation": "2025-09-26 23:06:43.748709",
|
||||
"description": "Adding `Church Person`s allows you to track the person's roles, attendance, donations, etc.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
@ -10,7 +10,7 @@
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-18 00:37:50.242082",
|
||||
"modified": "2025-09-07 00:57:18.263385",
|
||||
"modified_by": "Administrator",
|
||||
"name": "Church Person",
|
||||
"owner": "Administrator",
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"creation": "2025-09-13 01:20:43.693886",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"idx": 0,
|
||||
"idx": 1,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
{
|
||||
"charts": [
|
||||
{
|
||||
"chart_name": "Church Persons Count",
|
||||
"label": "Church Persons"
|
||||
},
|
||||
{
|
||||
"chart_name": "Church Members Count (New by Month)",
|
||||
"label": "New Church Members"
|
||||
},
|
||||
{
|
||||
"chart_name": "Church Collections Sum",
|
||||
"label": "Church Collections"
|
||||
}
|
||||
],
|
||||
"content": "[{\"id\":\"NSqchc_eQ4\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Church\",\"col\":12}},{\"id\":\"qv6aLVY432\",\"type\":\"header\",\"data\":{\"text\":\"<span class=\\\"h4\\\"><b>Welcome</b></span>\",\"col\":12}},{\"id\":\"QKi-Jsh-R6\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is your Church workspace. Workspaces can be customized by administrators to add shortcuts, graphs, number cards, and more. Some summary information is shown below, but feel free to customize the dashboard with your most commonly used shortcuts and information.\",\"col\":12}},{\"id\":\"72BkdyGGxD\",\"type\":\"paragraph\",\"data\":{\"text\":\"\ud83d\udc48 Separate workspaces for different Church information can be found under this workspace in the left-hand sidebar.\",\"col\":12}},{\"id\":\"3LXNl1IbpH\",\"type\":\"paragraph\",\"data\":{\"text\":\"\ud83d\udcc4 You can create your own custom reports by going to a specific `[Document] Report`, filtering the report, then choosing `save as` (custom) in the `...` report menu.\",\"col\":12}},{\"id\":\"sY8dboCPsj\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Church Persons\",\"col\":4}},{\"id\":\"a_cA8V4z-J\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Church Members\",\"col\":4}},{\"id\":\"36M5XhzNCx\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Church Families\",\"col\":4}},{\"id\":\"bof2v_IrxC\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Church Persons\",\"col\":6}},{\"id\":\"mQTGGrJNyq\",\"type\":\"chart\",\"data\":{\"chart_name\":\"New Church Members\",\"col\":6}},{\"id\":\"c3L6Nwh7-H\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Church Collections\",\"col\":12}}]",
|
||||
"creation": "2025-08-22 00:39:02.127277",
|
||||
"custom_blocks": [],
|
||||
"docstatus": 0,
|
||||
"doctype": "Workspace",
|
||||
"for_user": "",
|
||||
"hide_custom": 0,
|
||||
"icon": "church",
|
||||
"idx": 0,
|
||||
"indicator_color": "",
|
||||
"is_hidden": 0,
|
||||
"label": "Church",
|
||||
"links": [],
|
||||
"modified": "2025-09-21 22:52:16.053681",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Foundations",
|
||||
"name": "Church",
|
||||
"number_cards": [
|
||||
{
|
||||
"label": "Church Persons",
|
||||
"number_card_name": "Church Persons"
|
||||
},
|
||||
{
|
||||
"label": "Church Members",
|
||||
"number_card_name": "Church Members"
|
||||
},
|
||||
{
|
||||
"label": "Church Families",
|
||||
"number_card_name": "Church Families"
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 22.0,
|
||||
"shortcuts": [],
|
||||
"title": "Church"
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
{
|
||||
"charts": [],
|
||||
"content": "[{\"id\":\"qv6aLVY432\",\"type\":\"header\",\"data\":{\"text\":\"\u2139\ufe0f<span class=\\\"h4\\\"><b>About</b></span>\",\"col\":12}},{\"id\":\"3y9XjWNIDH\",\"type\":\"paragraph\",\"data\":{\"text\":\"`Church` is a completely free and open-source church management application. <i>\\\"Freely you have received; freely give. ~Jesus\\\"</i>\",\"col\":12}},{\"id\":\"LypZM8WJbL\",\"type\":\"header\",\"data\":{\"text\":\"\ud83c\udf1f<span class=\\\"h4\\\"><b>Overview</b></span>\",\"col\":12}},{\"id\":\"72BkdyGGxD\",\"type\":\"paragraph\",\"data\":{\"text\":\"<span class=\\\"h4\\\"></span><span class=\\\"h5\\\">Workspaces: </span>Each menu item to the left is called a 'Workspace'.<br>Custom workspaces can be created by clicking the `+New` button on the bottom right. Shortcuts, cards, graphs, notes, and other pieces of information can be added to your custom workspace. Keep in mind that custom workspaces are only visible to your user.\",\"col\":12}},{\"id\":\"nACFTYcDpg\",\"type\":\"paragraph\",\"data\":{\"text\":\"<span class=\\\"h5\\\">Navigation:</span> To navigate the system you can use the following:<br> \u2b05\ufe0f The sidebar items on the left will take you to a workspace for the given module<br> \u2196\ufe0f Clicking on the icon on the top left will take you back to this workspace page.<br> \u2197\ufe0f Using the search bar, you can search for different system items (i.e. Church Person, Church Collection, Church Information, etc)<br> You can also enter the following patterns in the search:<br> `New Church <Document>` - To Create a new document of the specified type (i.e. New Church Person)<br> `Church <Document> List` - To show a list of existing documents of the specified type (i.e. Church Person List)\",\"col\":12}},{\"id\":\"NSqchc_eQ4\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Church\",\"col\":12}},{\"id\":\"CHRf80k2is\",\"type\":\"header\",\"data\":{\"text\":\"\u2753<span class=\\\"h4\\\"><b>FAQ</b></span>\",\"col\":12}},{\"id\":\"rUk2y7CBCh\",\"type\":\"paragraph\",\"data\":{\"text\":\"<b>Why is this free? Is there a catch?: </b><span class=\\\"h5\\\"><span style=\\\"font-weight: normal;\\\">There's no catch. The application is free in its entirety. The original developer was saddened to see businesses profiting off of a need for churches to be organized. The global church body should be able to support itself in all areas via the talents and generosity of it's members.</span></span><span class=\\\"h5\\\" style=\\\"font-weight: normal;\\\"><br><br><b>Can I customize the default options?</b>: Yes, most drop-down lists should give you an option to 'Create New <Document>'. Clicking this option will allow you to add an additional option to the drop-down list for future use. In fact, the system is entirely customizable to the Administrator account, to the point where you can create new 'DocTypes', Reports, Workflows, Webpages, etc. If you have ideas for improvements that other churches could use, you can report them to our github </span>repository<span class=\\\"h5\\\" style=\\\"font-weight: normal;\\\">.</span>\",\"col\":12}},{\"id\":\"42bOdD9xyC\",\"type\":\"header\",\"data\":{\"text\":\"\ud83c\udd98<span class=\\\"h4\\\"><b>Support</b></span>\",\"col\":12}},{\"id\":\"pJyhpxlSjA\",\"type\":\"paragraph\",\"data\":{\"text\":\"If you have issues or suggestions, please report them to the 'Church' Github <a href=\\\"https://github.com/meichthys/church/issues\\\" draggable=\\\"false\\\">repository</a>.\",\"col\":12}},{\"id\":\"8fQ8usz33T\",\"type\":\"header\",\"data\":{\"text\":\"\ud83e\udd1d<span class=\\\"h4\\\"><b>Contribute</b></span>\",\"col\":12}},{\"id\":\"dBcYsyF07e\",\"type\":\"paragraph\",\"data\":{\"text\":\"If you have technical expertise and would like to contribute to the development of this project, please join us on <a href=\\\"https://github.com/meichthys/church\\\">github</a>.<br>If you would like to support the project financially, don't. Instead, pray for the developers and for the churches using the software.\",\"col\":12}},{\"id\":\"JQvQ237QXM\",\"type\":\"header\",\"data\":{\"text\":\"\ud83d\udce2<span class=\\\"h4\\\"><b>Credits</b></span>\",\"col\":12}},{\"id\":\"Fbdz2raOGi\",\"type\":\"paragraph\",\"data\":{\"text\":\"- All the <a href=\\\"https://github.com/meichthys/church/graphs/contributors\\\">contributors</a> of this project. Thank You!<br>- <a href=\\\"https://frappe.io/\\\">Frappe</a> Framework - This application is built on top of this great open source software.<br>- Your IT Administrator - They set this application up for you!\",\"col\":12}}]",
|
||||
"creation": "2025-08-22 00:39:02.127277",
|
||||
"custom_blocks": [],
|
||||
"docstatus": 0,
|
||||
"doctype": "Workspace",
|
||||
"for_user": "",
|
||||
"hide_custom": 0,
|
||||
"icon": "church",
|
||||
"idx": 0,
|
||||
"indicator_color": "",
|
||||
"is_hidden": 0,
|
||||
"label": "Getting Started",
|
||||
"links": [],
|
||||
"modified": "2025-10-03 23:11:34.746888",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Foundations",
|
||||
"name": "Getting Started",
|
||||
"number_cards": [],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 1.0,
|
||||
"shortcuts": [],
|
||||
"title": "Getting Started"
|
||||
}
|
||||
@ -8,6 +8,7 @@
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"event_name",
|
||||
"type",
|
||||
"all_day",
|
||||
"start_date",
|
||||
"start_time",
|
||||
@ -15,7 +16,6 @@
|
||||
"end_time",
|
||||
"column_break_bkje",
|
||||
"attendance_total",
|
||||
"type",
|
||||
"address",
|
||||
"description",
|
||||
"section_break_dlpa",
|
||||
@ -116,7 +116,7 @@
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-09-08 22:57:12.707907",
|
||||
"modified": "2025-09-29 23:46:26.798142",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Ministries",
|
||||
"name": "Church Event",
|
||||
@ -143,4 +143,4 @@
|
||||
"states": [],
|
||||
"track_changes": 1,
|
||||
"track_views": 1
|
||||
}
|
||||
}
|
||||
@ -11,7 +11,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"filters\":[[\"Church Event Attendance\",\"person\",\"is\",\"set\",false],[\"Church Event Attendance\",\"attendance_type\",\"in\",[\"Confirmed\",\"Assumed\"],false]],\"fields\":[[\"person\",\"Church Event Attendance\"],[\"event_name\",\"Church Event\"],[\"type\",\"Church Event\"],[\"attendance_type\",\"Church Event Attendance\"],[\"name\",\"Church Event\"]],\"order_by\":\"`tabChurch Event`.`modified` desc\",\"page_length\":20,\"column_widths\":{\"Church Event Attendance:person\":120,\"event_name\":120,\"type\":182,\"Church Event Attendance:attendance_type\":120,\"name\":361},\"group_by\":null}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:13.526081",
|
||||
"modified": "2025-10-02 01:12:41.676774",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Ministries",
|
||||
"name": "Church Attendance",
|
||||
@ -23,6 +23,12 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
"idx": 1,
|
||||
"is_standard": "Yes",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:13.616166",
|
||||
"modified": "2025-10-02 01:11:23.917088",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Ministries",
|
||||
"name": "Church Event Attendance",
|
||||
@ -23,6 +23,12 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"columns\":[{\"label\":\"Type\",\"fieldname\":\"type\",\"id\":\"type\",\"name\":\"Type\",\"width\":null,\"editable\":false,\"compareValue\":null},{\"label\":\"Count\",\"fieldname\":\"count\",\"id\":\"count\",\"name\":\"Count\",\"width\":null,\"editable\":false,\"compareValue\":null}],\"filters\":{\"start\":\"2025-06-01\",\"end\":\"2025-09-04\"}}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:13.683013",
|
||||
"modified": "2025-10-02 01:11:36.534790",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Ministries",
|
||||
"name": "Church Event Count by Type",
|
||||
@ -42,6 +42,12 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -93,17 +93,17 @@
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-25 23:11:31.704033",
|
||||
"modified": "2025-10-03 23:11:34.945302",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Ministries",
|
||||
"name": "Ministries",
|
||||
"number_cards": [],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "Church",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 25.0,
|
||||
"sequence_id": 4.0,
|
||||
"shortcuts": [],
|
||||
"title": "Ministries"
|
||||
}
|
||||
@ -12,6 +12,8 @@
|
||||
"photo",
|
||||
"data_btqw",
|
||||
"website",
|
||||
"support_amount",
|
||||
"support_frequency",
|
||||
"column_break_vedu",
|
||||
"country",
|
||||
"mailing_address",
|
||||
@ -24,12 +26,13 @@
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "agency",
|
||||
"fieldtype": "Data",
|
||||
"fieldtype": "Link",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Agency"
|
||||
"label": "Agency",
|
||||
"options": "Church Missionary Agency"
|
||||
},
|
||||
{
|
||||
"fieldname": "country",
|
||||
@ -106,13 +109,26 @@
|
||||
"fieldtype": "Table",
|
||||
"label": "Letters to the Church",
|
||||
"options": "Church Letter"
|
||||
},
|
||||
{
|
||||
"fieldname": "support_amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Support Amount",
|
||||
"non_negative": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "support_frequency",
|
||||
"fieldtype": "Link",
|
||||
"label": "Support Frequency",
|
||||
"mandatory_depends_on": "eval: doc.support_amount>0;",
|
||||
"options": "Church Missionary Support Frequency"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"image_field": "photo",
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-09-23 22:20:41.577985",
|
||||
"modified": "2025-10-02 22:27:52.752228",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Missions",
|
||||
"name": "Church Missionary",
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2025, meichthys and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
// frappe.ui.form.on("Church Missionary Agency", {
|
||||
// refresh(frm) {
|
||||
|
||||
// },
|
||||
// });
|
||||
@ -0,0 +1,106 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"autoname": "format:{agency_name}",
|
||||
"creation": "2025-10-02 22:14:45.520951",
|
||||
"description": "Missionary support entities that aid in the sending of missionaries",
|
||||
"doctype": "DocType",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"name1",
|
||||
"image_hhbv",
|
||||
"notes",
|
||||
"column_break_qofu",
|
||||
"phone",
|
||||
"email",
|
||||
"mailing_address",
|
||||
"website"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "name1",
|
||||
"fieldtype": "Data",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Agency Name",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "mailing_address",
|
||||
"fieldtype": "Link",
|
||||
"label": "Mailing Address",
|
||||
"options": "Address"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "phone",
|
||||
"fieldtype": "Phone",
|
||||
"in_list_view": 1,
|
||||
"label": "Phone"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "email",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Email",
|
||||
"options": "Email"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_qofu",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "website",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Website",
|
||||
"options": "URL"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "notes",
|
||||
"fieldtype": "Small Text",
|
||||
"label": "Notes"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "image_hhbv",
|
||||
"fieldtype": "Attach Image",
|
||||
"label": "Logo"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-10-02 22:28:28.306082",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Missions",
|
||||
"name": "Church Missionary Agency",
|
||||
"naming_rule": "Expression",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"quick_entry": 1,
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchMissionaryAgency(Document):
|
||||
pass
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and Contributors
|
||||
# See license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
|
||||
|
||||
class TestChurchMissionaryAgency(FrappeTestCase):
|
||||
pass
|
||||
@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2025, meichthys and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
// frappe.ui.form.on("Church Missionary Support Frequency", {
|
||||
// refresh(frm) {
|
||||
|
||||
// },
|
||||
// });
|
||||
@ -0,0 +1,62 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"autoname": "format:{frequency}",
|
||||
"creation": "2025-10-02 21:51:33.814292",
|
||||
"description": "How often `Church Missionary` support is given",
|
||||
"doctype": "DocType",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"frequency",
|
||||
"description"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "frequency",
|
||||
"fieldtype": "Data",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Frequency",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"label": "Description"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-10-02 21:53:49.348848",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Missions",
|
||||
"name": "Church Missionary Support Frequency",
|
||||
"naming_rule": "Expression",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class ChurchMissionarySupportFrequency(Document):
|
||||
pass
|
||||
@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, meichthys and Contributors
|
||||
# See license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
|
||||
|
||||
class TestChurchMissionarySupportFrequency(FrappeTestCase):
|
||||
pass
|
||||
@ -52,17 +52,17 @@
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-25 23:04:07.592076",
|
||||
"modified": "2025-10-03 23:11:35.018155",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Missions",
|
||||
"name": "Missions",
|
||||
"number_cards": [],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "Church",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 24.1,
|
||||
"sequence_id": 5.0,
|
||||
"shortcuts": [],
|
||||
"title": "Missions"
|
||||
}
|
||||
@ -7,6 +7,7 @@
|
||||
"doctype": "DocType",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"section_break_acrr",
|
||||
"family_name",
|
||||
"head_of_household",
|
||||
"column_break_pmch",
|
||||
@ -31,8 +32,7 @@
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Name",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
@ -47,6 +47,10 @@
|
||||
"fieldname": "photo",
|
||||
"fieldtype": "Attach Image",
|
||||
"label": "Photo"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_acrr",
|
||||
"fieldtype": "Section Break"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
@ -58,7 +62,7 @@
|
||||
"link_fieldname": "family"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-04 23:59:50.816837",
|
||||
"modified": "2025-09-30 00:40:03.233398",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "Church Family",
|
||||
@ -86,4 +90,4 @@
|
||||
"states": [],
|
||||
"title_field": "family_name",
|
||||
"track_changes": 1
|
||||
}
|
||||
}
|
||||
@ -9,9 +9,10 @@
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"date",
|
||||
"column_break_zdbp",
|
||||
"is_private",
|
||||
"read_to_church",
|
||||
"column_break_zdbp",
|
||||
"share_with_church",
|
||||
"shared_date",
|
||||
"section_break_qmpt",
|
||||
"file",
|
||||
"content"
|
||||
@ -29,7 +30,7 @@
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Date",
|
||||
"label": "Date Received",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
@ -55,17 +56,6 @@
|
||||
"in_preview": 1,
|
||||
"label": "Content"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"default": "0",
|
||||
"fieldname": "read_to_church",
|
||||
"fieldtype": "Check",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Read to Church?"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"description": "Check this to prevent the letter from being displayed publicly (i.e. on the website).",
|
||||
@ -76,13 +66,31 @@
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Is Private?"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
"default": "0",
|
||||
"description": "If this letter should be shared with the church.",
|
||||
"fieldname": "share_with_church",
|
||||
"fieldtype": "Check",
|
||||
"in_filter": 1,
|
||||
"in_list_view": 1,
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Share With Church?"
|
||||
},
|
||||
{
|
||||
"description": "The date the letter was shared to the church.",
|
||||
"fieldname": "shared_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Shared Date"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2025-09-23 22:41:59.658717",
|
||||
"modified": "2025-09-29 23:55:37.070600",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "Church Letter",
|
||||
|
||||
@ -11,11 +11,13 @@ class ChurchPerson(Document):
|
||||
def before_save(self):
|
||||
# We set this here since virtual fields do not work with
|
||||
# View Settings -> Title Field as of 2025-08-26
|
||||
self.full_name = f"{self.first_name}" + (
|
||||
(" " + self.last_name) if self.last_name else ""
|
||||
)
|
||||
self.full_name = f"{self.first_name}" + ((" " + self.last_name) if self.last_name else "")
|
||||
|
||||
def validate(self):
|
||||
# Remove head of household status when family is removed
|
||||
if not self.family and self.is_head_of_household:
|
||||
self.set("is_head_of_household", False)
|
||||
# Remove old head of household when new one is assigned - Also rename family
|
||||
if self.is_head_of_household:
|
||||
old_heads_of_household = frappe.db.get_all(
|
||||
doctype="Church Person",
|
||||
@ -26,6 +28,7 @@ class ChurchPerson(Document):
|
||||
],
|
||||
)
|
||||
if old_heads_of_household:
|
||||
# There should only be one head of household, but just in case we loop through all of them.
|
||||
for head in old_heads_of_household:
|
||||
head_doc = frappe.get_doc("Church Person", head["name"])
|
||||
frappe.msgprint(
|
||||
@ -33,35 +36,45 @@ class ChurchPerson(Document):
|
||||
)
|
||||
head_doc.is_head_of_household = False
|
||||
head_doc.save()
|
||||
# Rename family with new head of household
|
||||
family_doc = frappe.get_doc("Church Family", self.family)
|
||||
dashes = family_doc.family_name.rfind("-")
|
||||
if dashes == -1: # If no dashes found, add one
|
||||
family_doc.family_name = f"{self.family} - {self.first_name}"
|
||||
else:
|
||||
family_doc.family_name = f"{family_doc.family_name[: dashes + 1]} {self.first_name}"
|
||||
family_doc.save()
|
||||
|
||||
# Sync spouses
|
||||
if self.spouse:
|
||||
if self.spouse and self.is_married:
|
||||
# Sync spouses
|
||||
spouse = frappe.get_doc("Church Person", self.spouse)
|
||||
if spouse.spouse != self.name:
|
||||
# Unlink spouse's old spouse if there was one
|
||||
frappe.db.set_value("Church Person", spouse.spouse, "spouse", None)
|
||||
frappe.db.set_value("Church Person", spouse.spouse, "anniversary", None)
|
||||
frappe.db.set_value("Church Person", spouse.spouse, "is_married", False)
|
||||
# Link spouses
|
||||
frappe.db.set_value("Church Person", spouse.name, "spouse", self.name)
|
||||
frappe.db.set_value("Church Person", spouse.name, "is_married", True)
|
||||
frappe.msgprint(
|
||||
f"Spouses have been linked:<br>"
|
||||
f"{self.full_name} 👩❤️👨 {spouse.full_name}"
|
||||
)
|
||||
frappe.msgprint(f"Spouses have been linked:<br>{self.full_name} 👩❤️👨 {spouse.full_name}")
|
||||
else:
|
||||
if self._doc_before_save and self._doc_before_save.spouse:
|
||||
if self._doc_before_save and self._doc_before_save.is_married and self._doc_before_save.spouse:
|
||||
spouse = frappe.get_doc("Church Person", self._doc_before_save.spouse)
|
||||
frappe.db.set_value("Church Person", spouse.name, "is_married", False)
|
||||
frappe.db.set_value("Church Person", spouse.name, "spouse", None)
|
||||
frappe.db.set_value("Church Person", spouse.name, "is_married", False)
|
||||
self.spouse = None
|
||||
self.anniversary = None
|
||||
self.is_married = False
|
||||
frappe.msgprint(
|
||||
f"Spouses have been unlinked:<br>"
|
||||
f"{self.full_name} 💔 {spouse.full_name}"
|
||||
)
|
||||
frappe.msgprint(f"Spouses have been unlinked:<br>{self.full_name} 💔 {spouse.full_name}")
|
||||
|
||||
@frappe.whitelist()
|
||||
def new_family_from_person(self):
|
||||
doc = frappe.new_doc("Church Family")
|
||||
doc.family_name = self.last_name
|
||||
doc.family_name = f"{self.last_name} - {self.first_name}"
|
||||
doc.save()
|
||||
self.set("family", doc)
|
||||
self.set("is_head_of_household", True)
|
||||
self.save()
|
||||
self.reload()
|
||||
frappe.msgprint(f"New family created: {doc.family_name}")
|
||||
@ -73,10 +86,7 @@ class ChurchPerson(Document):
|
||||
frappe.utils.get_datetime(role.start_date)
|
||||
< datetime.now()
|
||||
< frappe.utils.get_datetime(role.end_date)
|
||||
) or (
|
||||
not role.end_date
|
||||
and frappe.utils.get_datetime(role.start_date) < datetime.now()
|
||||
):
|
||||
) or (not role.end_date and frappe.utils.get_datetime(role.start_date) < datetime.now()):
|
||||
role.is_current_role = 1
|
||||
else:
|
||||
role.is_current_role = 0
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"filters\":[[\"Church Person\",\"birthday\",\"Timespan\",\"this week\",false]],\"fields\":[[\"name\",\"Church Person\"],[\"birthday\",\"Church Person\"]],\"order_by\":\"`tabChurch Person`.`modified` desc\",\"add_totals_row\":0,\"page_length\":20,\"column_widths\":{\"name\":120,\"birthday\":120},\"group_by\":null}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:58.498524",
|
||||
"modified": "2025-10-02 01:14:54.138648",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "Church Person Birthdays (This Week)",
|
||||
@ -23,6 +23,12 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"filters\":[[\"Church Role\",\"end_date\",\"Timespan\",\"this month\",false]],\"fields\":[[\"name\",\"Church Person\"],[\"role\",\"Church Role\"],[\"start_date\",\"Church Role\"],[\"end_date\",\"Church Role\"],[\"notes\",\"Church Role\"]],\"order_by\":\"`tabChurch Person`.`modified` desc\",\"add_totals_row\":0,\"page_length\":20,\"column_widths\":{\"name\":120,\"Church Role:role\":120,\"Church Role:start_date\":120,\"Church Role:end_date\":120,\"Church Role:notes\":120},\"group_by\":null}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:58.412154",
|
||||
"modified": "2025-10-02 01:15:17.185570",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "Church Person Roles Ending This Month",
|
||||
@ -23,6 +23,12 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"is_standard": "Yes",
|
||||
"json": "{\"filters\":[[\"Church Role\",\"role\",\"is\",\"set\",false],[\"Church Role\",\"is_current_role\",\"=\",1,false]],\"fields\":[[\"name\",\"Church Person\"],[\"role\",\"Church Role\"],[\"start_date\",\"Church Role\"],[\"end_date\",\"Church Role\"],[\"notes\",\"Church Role\"]],\"order_by\":\"`tabChurch Person`.`modified` desc\",\"add_totals_row\":0,\"page_length\":20,\"column_widths\":{\"name\":120,\"Church Role:role\":120,\"Church Role:start_date\":120,\"Church Role:end_date\":120,\"Church Role:notes\":120},\"group_by\":null}",
|
||||
"letterhead": null,
|
||||
"modified": "2025-09-21 22:47:58.561958",
|
||||
"modified": "2025-10-02 01:14:28.304991",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "Current Church Person Roles",
|
||||
@ -23,6 +23,12 @@
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"timeout": 0
|
||||
|
||||
@ -136,7 +136,7 @@
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-25 23:03:45.168893",
|
||||
"modified": "2025-10-03 23:11:35.091797",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church People",
|
||||
"name": "People",
|
||||
@ -155,11 +155,11 @@
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "Church",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 23.0,
|
||||
"sequence_id": 6.0,
|
||||
"shortcuts": [],
|
||||
"title": "People"
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_import": 1,
|
||||
"autoname": "autoincrement",
|
||||
"creation": "2025-09-13 00:16:52.698863",
|
||||
"description": "A request for prayer from (or for) a `Church Person`.",
|
||||
@ -42,7 +43,8 @@
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Related Person",
|
||||
"options": "Church Person"
|
||||
"options": "Church Person",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_usaz",
|
||||
@ -57,7 +59,7 @@
|
||||
"in_preview": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Request",
|
||||
"reqd": 1
|
||||
"mandatory_depends_on": "eval: doc.type!=\"Unspoken\";"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
@ -81,9 +83,8 @@
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-09-25 22:47:04.584440",
|
||||
"modified": "2025-09-29 23:50:36.602523",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Prayers",
|
||||
"name": "Church Prayer Request",
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
{% extends "templates/web.html" %}
|
||||
|
||||
{% block page_content %}
|
||||
<h1>{{ title }}</h1>
|
||||
{% endblock %}
|
||||
|
||||
<!-- this is a sample default web page template -->
|
||||
@ -0,0 +1,4 @@
|
||||
<div>
|
||||
<a href="{{ doc.route }}">{{ doc.title or doc.name }}</a>
|
||||
</div>
|
||||
<!-- this is a sample default list template -->
|
||||
@ -6,7 +6,7 @@
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"apply_document_permissions": 0,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[[\"Church Prayer Request\",\"status\",\"!=\",\"Answered\",false],[\"Church Prayer Request\",\"owner\",\"in\",[\"User\",null],false]]",
|
||||
"creation": "2025-09-13 22:28:01.939717",
|
||||
@ -56,7 +56,7 @@
|
||||
"list_title": "Your Prayer Requests",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-09-21 22:49:35.504853",
|
||||
"modified": "2025-10-03 22:41:24.052519",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Prayers",
|
||||
"name": "prayer-request",
|
||||
@ -69,7 +69,7 @@
|
||||
"title": "Prayer Request ",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"allow_read_on_all_link_options": 1,
|
||||
"default": "Requested",
|
||||
"fieldname": "status",
|
||||
"fieldtype": "Link",
|
||||
@ -84,7 +84,7 @@
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"allow_read_on_all_link_options": 1,
|
||||
"default": "",
|
||||
"fieldname": "type",
|
||||
"fieldtype": "Link",
|
||||
@ -112,7 +112,7 @@
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"allow_read_on_all_link_options": 1,
|
||||
"default": "",
|
||||
"depends_on": "eval:frappe.session.user!='Guest';",
|
||||
"description": "If this request is for a specific person and the person is in this list, please select the person.",
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
],
|
||||
"login_required": 0,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-09-21 22:49:35.688669",
|
||||
"modified": "2025-10-03 22:44:08.779481",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Prayers",
|
||||
"name": "prayer-request-anonymous",
|
||||
@ -90,23 +90,6 @@
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"default": "",
|
||||
"depends_on": "eval:frappe.session.user!='Guest';",
|
||||
"description": "If this request is for a specific person and the person is in this list, please select the person.",
|
||||
"fieldname": "related_person",
|
||||
"fieldtype": "Link",
|
||||
"hidden": 0,
|
||||
"label": "Related Person",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Church Person",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "section_break_usaz",
|
||||
@ -126,6 +109,7 @@
|
||||
"fieldtype": "Small Text",
|
||||
"hidden": 0,
|
||||
"label": "Request",
|
||||
"mandatory_depends_on": "eval: doc.type!=\"Unspoken\"",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-25 23:02:54.667929",
|
||||
"modified": "2025-10-03 23:11:35.193488",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Prayers",
|
||||
"name": "Prayers",
|
||||
@ -106,11 +106,11 @@
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "Church",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 24.0,
|
||||
"sequence_id": 7.0,
|
||||
"shortcuts": [],
|
||||
"title": "Prayers"
|
||||
}
|
||||
@ -43,17 +43,17 @@
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2025-09-25 23:13:00.638300",
|
||||
"modified": "2025-10-03 23:11:35.273885",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Church Study",
|
||||
"name": "Study",
|
||||
"number_cards": [],
|
||||
"owner": "Administrator",
|
||||
"parent_page": "Church",
|
||||
"parent_page": "",
|
||||
"public": 1,
|
||||
"quick_lists": [],
|
||||
"roles": [],
|
||||
"sequence_id": 27.0,
|
||||
"sequence_id": 8.0,
|
||||
"shortcuts": [],
|
||||
"title": "Study"
|
||||
}
|
||||
@ -1,32 +1,38 @@
|
||||
[
|
||||
{
|
||||
"balance": 0,
|
||||
"description": "Funds for the building & maintenance of the church.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Fund",
|
||||
"end_date": null,
|
||||
"fund": "Building",
|
||||
"modified": "2025-09-02 01:31:36.308372",
|
||||
"modified": "2025-10-02 00:56:20.007430",
|
||||
"name": "Building",
|
||||
"start_date": null
|
||||
"start_date": null,
|
||||
"transactions": []
|
||||
},
|
||||
{
|
||||
"balance": 0,
|
||||
"description": "Financial support for missionaries",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Fund",
|
||||
"end_date": null,
|
||||
"fund": "Missions",
|
||||
"modified": "2025-09-02 01:32:34.460965",
|
||||
"modified": "2025-10-02 01:02:06.137140",
|
||||
"name": "Missions",
|
||||
"start_date": null
|
||||
"start_date": null,
|
||||
"transactions": []
|
||||
},
|
||||
{
|
||||
"balance": 0,
|
||||
"description": "Church general fund.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Fund",
|
||||
"end_date": null,
|
||||
"fund": "General",
|
||||
"modified": "2025-09-02 01:30:04.152061",
|
||||
"modified": "2025-10-02 01:03:14.200750",
|
||||
"name": "General",
|
||||
"start_date": null
|
||||
"start_date": null,
|
||||
"transactions": []
|
||||
}
|
||||
]
|
||||
50
church/fixtures/church_missionary_support_frequency.json
Normal file
50
church/fixtures/church_missionary_support_frequency.json
Normal file
@ -0,0 +1,50 @@
|
||||
[
|
||||
{
|
||||
"description": "Support is sent once per year",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Missionary Support Frequency",
|
||||
"frequency": "Yearly",
|
||||
"modified": "2025-10-02 22:01:07.476782",
|
||||
"name": "Yearly"
|
||||
},
|
||||
{
|
||||
"description": "Support is sent 4 times per year",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Missionary Support Frequency",
|
||||
"frequency": "Quarterly",
|
||||
"modified": "2025-10-02 22:01:31.042863",
|
||||
"name": "Quarterly"
|
||||
},
|
||||
{
|
||||
"description": "Support is sent every two months",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Missionary Support Frequency",
|
||||
"frequency": "Bi-Monthly",
|
||||
"modified": "2025-10-02 22:01:48.560028",
|
||||
"name": "Bi-Monthly"
|
||||
},
|
||||
{
|
||||
"description": "Support is sent once per month",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Missionary Support Frequency",
|
||||
"frequency": "Monthly",
|
||||
"modified": "2025-10-02 22:02:02.944446",
|
||||
"name": "Monthly"
|
||||
},
|
||||
{
|
||||
"description": "Support is sent every two weeks",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Missionary Support Frequency",
|
||||
"frequency": "Bi-Weekly",
|
||||
"modified": "2025-10-02 22:02:38.770235",
|
||||
"name": "Bi-Weekly"
|
||||
},
|
||||
{
|
||||
"description": "Support is sent every week",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Missionary Support Frequency",
|
||||
"frequency": "Weekly",
|
||||
"modified": "2025-10-02 22:02:49.588365",
|
||||
"name": "Weekly"
|
||||
}
|
||||
]
|
||||
@ -1,12 +1,4 @@
|
||||
[
|
||||
{
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Payment Type",
|
||||
"modified": "2025-09-02 01:45:57.381589",
|
||||
"name": "Cash",
|
||||
"type": "Cash"
|
||||
},
|
||||
{
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
@ -14,5 +6,13 @@
|
||||
"modified": "2025-09-02 01:46:05.861238",
|
||||
"name": "Check",
|
||||
"type": "Check"
|
||||
},
|
||||
{
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Payment Type",
|
||||
"modified": "2025-09-02 01:45:57.381589",
|
||||
"name": "Cash",
|
||||
"type": "Cash"
|
||||
}
|
||||
]
|
||||
@ -167,14 +167,6 @@
|
||||
"name": "Sister",
|
||||
"relation_type": "Sister"
|
||||
},
|
||||
{
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Person Relation Type",
|
||||
"modified": "2025-08-26 01:30:00.557230",
|
||||
"name": "Brother",
|
||||
"relation_type": "Brother"
|
||||
},
|
||||
{
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
@ -190,5 +182,13 @@
|
||||
"modified": "2025-08-26 01:24:08.691750",
|
||||
"name": "Husband",
|
||||
"relation_type": "Husband"
|
||||
},
|
||||
{
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Person Relation Type",
|
||||
"modified": "2025-08-26 01:30:00.557230",
|
||||
"name": "Brother",
|
||||
"relation_type": "Brother"
|
||||
}
|
||||
]
|
||||
@ -7,6 +7,14 @@
|
||||
"name": "Requested",
|
||||
"status": "Requested"
|
||||
},
|
||||
{
|
||||
"description": "The prayer request is being prayed for",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Prayer Request Status",
|
||||
"modified": "2025-09-30 01:13:47.596811",
|
||||
"name": "Being Prayed For",
|
||||
"status": "Being Prayed For"
|
||||
},
|
||||
{
|
||||
"description": "The prayer request has been answered",
|
||||
"docstatus": 0,
|
||||
@ -14,13 +22,5 @@
|
||||
"modified": "2025-09-13 00:49:57.973400",
|
||||
"name": "Answered",
|
||||
"status": "Answered"
|
||||
},
|
||||
{
|
||||
"description": "The prayer request is being prayed for",
|
||||
"docstatus": 0,
|
||||
"doctype": "Church Prayer Request Status",
|
||||
"modified": "2025-09-13 00:51:54.820822",
|
||||
"name": "Intercession",
|
||||
"status": "Intercession"
|
||||
}
|
||||
]
|
||||
@ -886,5 +886,125 @@
|
||||
"share": 1,
|
||||
"submit": 0,
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"docstatus": 0,
|
||||
"doctype": "Custom DocPerm",
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"if_owner": 0,
|
||||
"import": 1,
|
||||
"modified": "2025-09-30 21:47:23.826602",
|
||||
"name": "kdm4rn17ce",
|
||||
"parent": "Church Fund",
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Church Manager",
|
||||
"select": 1,
|
||||
"share": 1,
|
||||
"submit": 0,
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"docstatus": 0,
|
||||
"doctype": "Custom DocPerm",
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"if_owner": 0,
|
||||
"import": 1,
|
||||
"modified": "2025-10-02 21:54:50.582156",
|
||||
"name": "g99k3mce0t",
|
||||
"parent": "Church Missionary Support Frequency",
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Church Manager",
|
||||
"select": 1,
|
||||
"share": 1,
|
||||
"submit": 0,
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 0,
|
||||
"delete": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Custom DocPerm",
|
||||
"email": 0,
|
||||
"export": 1,
|
||||
"if_owner": 0,
|
||||
"import": 0,
|
||||
"modified": "2025-10-02 21:58:43.087571",
|
||||
"name": "ihvofd4l63",
|
||||
"parent": "Church Missionary Support Frequency",
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Church User",
|
||||
"select": 0,
|
||||
"share": 0,
|
||||
"submit": 0,
|
||||
"write": 0
|
||||
},
|
||||
{
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"docstatus": 0,
|
||||
"doctype": "Custom DocPerm",
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"if_owner": 0,
|
||||
"import": 1,
|
||||
"modified": "2025-10-02 22:30:18.146738",
|
||||
"name": "525p9aqdk1",
|
||||
"parent": "Church Missionary Agency",
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Church Manager",
|
||||
"select": 1,
|
||||
"share": 1,
|
||||
"submit": 0,
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"amend": 0,
|
||||
"cancel": 0,
|
||||
"create": 0,
|
||||
"delete": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Custom DocPerm",
|
||||
"email": 0,
|
||||
"export": 1,
|
||||
"if_owner": 0,
|
||||
"import": 0,
|
||||
"modified": "2025-10-02 22:30:30.295778",
|
||||
"name": "55vaglqh4a",
|
||||
"parent": "Church Missionary Agency",
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Church User",
|
||||
"select": 0,
|
||||
"share": 0,
|
||||
"submit": 0,
|
||||
"write": 0
|
||||
}
|
||||
]
|
||||
@ -1 +1,244 @@
|
||||
[]
|
||||
[
|
||||
{
|
||||
"aggregate_function_based_on": null,
|
||||
"based_on": "creation",
|
||||
"chart_name": "Church Persons Count",
|
||||
"chart_type": "Count",
|
||||
"color": null,
|
||||
"currency": "USD",
|
||||
"custom_options": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"document_type": "Church Person",
|
||||
"dynamic_filters_json": "[]",
|
||||
"filters_json": "[]",
|
||||
"from_date": null,
|
||||
"group_by_based_on": null,
|
||||
"group_by_type": "Count",
|
||||
"heatmap_year": null,
|
||||
"is_public": 0,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": "2025-10-02 01:15:21.344371",
|
||||
"modified": "2025-09-21 22:40:56.438477",
|
||||
"module": "Church People",
|
||||
"name": "Church Persons Count",
|
||||
"number_of_groups": 0,
|
||||
"parent_document_type": "",
|
||||
"report_name": null,
|
||||
"roles": [],
|
||||
"show_values_over_chart": 1,
|
||||
"source": "",
|
||||
"time_interval": "Monthly",
|
||||
"timeseries": 1,
|
||||
"timespan": "Last Year",
|
||||
"to_date": null,
|
||||
"type": "Line",
|
||||
"use_report_chart": 0,
|
||||
"value_based_on": "",
|
||||
"x_field": null,
|
||||
"y_axis": []
|
||||
},
|
||||
{
|
||||
"aggregate_function_based_on": null,
|
||||
"based_on": "membership_date",
|
||||
"chart_name": "Church Members Count (New by Month)",
|
||||
"chart_type": "Count",
|
||||
"color": "#29CD42",
|
||||
"currency": "",
|
||||
"custom_options": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"document_type": "Church Person",
|
||||
"dynamic_filters_json": "[]",
|
||||
"filters_json": "[[\"Church Person\",\"is_member\",\"=\",1,false]]",
|
||||
"from_date": null,
|
||||
"group_by_based_on": null,
|
||||
"group_by_type": "Count",
|
||||
"heatmap_year": null,
|
||||
"is_public": 1,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": "2025-10-02 01:15:21.395905",
|
||||
"modified": "2025-09-21 22:40:56.515222",
|
||||
"module": "Church People",
|
||||
"name": "Church Members Count (New by Month)",
|
||||
"number_of_groups": 0,
|
||||
"parent_document_type": "",
|
||||
"report_name": null,
|
||||
"roles": [],
|
||||
"show_values_over_chart": 0,
|
||||
"source": "",
|
||||
"time_interval": "Monthly",
|
||||
"timeseries": 1,
|
||||
"timespan": "Last Year",
|
||||
"to_date": null,
|
||||
"type": "Bar",
|
||||
"use_report_chart": 0,
|
||||
"value_based_on": "",
|
||||
"x_field": null,
|
||||
"y_axis": []
|
||||
},
|
||||
{
|
||||
"aggregate_function_based_on": null,
|
||||
"based_on": "creation",
|
||||
"chart_name": "Church Prayer Request Count (Active)",
|
||||
"chart_type": "Count",
|
||||
"color": "#ECAD4B",
|
||||
"currency": "USD",
|
||||
"custom_options": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"document_type": "Church Prayer Request",
|
||||
"dynamic_filters_json": "[]",
|
||||
"filters_json": "[[\"Church Prayer Request\",\"status\",\"in\",[\"Requested\",\"Intercession\"],false]]",
|
||||
"from_date": null,
|
||||
"group_by_based_on": null,
|
||||
"group_by_type": "Count",
|
||||
"heatmap_year": null,
|
||||
"is_public": 1,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": "2025-10-02 01:13:19.540401",
|
||||
"modified": "2025-09-21 22:40:23.012857",
|
||||
"module": "Church Prayers",
|
||||
"name": "Church Prayer Request Count (Active)",
|
||||
"number_of_groups": 0,
|
||||
"parent_document_type": "",
|
||||
"report_name": null,
|
||||
"roles": [],
|
||||
"show_values_over_chart": 1,
|
||||
"source": "",
|
||||
"time_interval": "Daily",
|
||||
"timeseries": 1,
|
||||
"timespan": "Last Year",
|
||||
"to_date": null,
|
||||
"type": "Line",
|
||||
"use_report_chart": 0,
|
||||
"value_based_on": "",
|
||||
"x_field": null,
|
||||
"y_axis": []
|
||||
},
|
||||
{
|
||||
"aggregate_function_based_on": null,
|
||||
"based_on": null,
|
||||
"chart_name": "Church Fund Balances",
|
||||
"chart_type": "Report",
|
||||
"color": null,
|
||||
"currency": "USD",
|
||||
"custom_options": "{\"x_field\": \"fund\", \"chart_type\": \"Bar\", \"y_axis_fields\": [{\"idx\": 1, \"__islocal\": true, \"y_field\": \"balance\", \"color\": \"#29CD42\", \"name\": \"row 1\"}], \"y_fields\": [\"balance\"], \"colors\": [\"#29CD42\"]}",
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"document_type": null,
|
||||
"dynamic_filters_json": null,
|
||||
"filters_json": "{}",
|
||||
"from_date": null,
|
||||
"group_by_based_on": null,
|
||||
"group_by_type": "Count",
|
||||
"heatmap_year": null,
|
||||
"is_public": 0,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": null,
|
||||
"modified": "2025-10-02 01:26:04.007658",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Fund Balances",
|
||||
"number_of_groups": 0,
|
||||
"parent_document_type": null,
|
||||
"report_name": "Church Fund Balances",
|
||||
"roles": [],
|
||||
"show_values_over_chart": 1,
|
||||
"source": null,
|
||||
"time_interval": "Yearly",
|
||||
"timeseries": 0,
|
||||
"timespan": "Last Year",
|
||||
"to_date": null,
|
||||
"type": "Bar",
|
||||
"use_report_chart": 0,
|
||||
"value_based_on": null,
|
||||
"x_field": "fund",
|
||||
"y_axis": [
|
||||
{
|
||||
"color": "#29CD42",
|
||||
"parent": "Church Fund Balances",
|
||||
"parentfield": "y_axis",
|
||||
"parenttype": "Dashboard Chart",
|
||||
"y_field": "balance"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aggregate_function_based_on": null,
|
||||
"based_on": "creation",
|
||||
"chart_name": "Church Collections Sum",
|
||||
"chart_type": "Sum",
|
||||
"color": "#138a25",
|
||||
"currency": "USD",
|
||||
"custom_options": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"document_type": "Church Donation",
|
||||
"dynamic_filters_json": "[]",
|
||||
"filters_json": "[]",
|
||||
"from_date": null,
|
||||
"group_by_based_on": null,
|
||||
"group_by_type": "Count",
|
||||
"heatmap_year": null,
|
||||
"is_public": 0,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": "2025-10-02 01:27:30.015664",
|
||||
"modified": "2025-09-21 22:40:42.003149",
|
||||
"module": "Church Finances",
|
||||
"name": "Church Collections Sum",
|
||||
"number_of_groups": 0,
|
||||
"parent_document_type": "Church Collection",
|
||||
"report_name": null,
|
||||
"roles": [],
|
||||
"show_values_over_chart": 1,
|
||||
"source": "",
|
||||
"time_interval": "Weekly",
|
||||
"timeseries": 1,
|
||||
"timespan": "Last Year",
|
||||
"to_date": null,
|
||||
"type": "Bar",
|
||||
"use_report_chart": 0,
|
||||
"value_based_on": "amount",
|
||||
"x_field": null,
|
||||
"y_axis": []
|
||||
},
|
||||
{
|
||||
"aggregate_function_based_on": null,
|
||||
"based_on": "modified",
|
||||
"chart_name": "Church Prayer Requests (Answered)",
|
||||
"chart_type": "Count",
|
||||
"color": "#29CD42",
|
||||
"currency": "USD",
|
||||
"custom_options": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Dashboard Chart",
|
||||
"document_type": "Church Prayer Request",
|
||||
"dynamic_filters_json": "[]",
|
||||
"filters_json": "[[\"Church Prayer Request\",\"status\",\"=\",\"Answered\",false]]",
|
||||
"from_date": null,
|
||||
"group_by_based_on": null,
|
||||
"group_by_type": "Count",
|
||||
"heatmap_year": null,
|
||||
"is_public": 1,
|
||||
"is_standard": 1,
|
||||
"last_synced_on": "2025-10-02 01:13:19.727118",
|
||||
"modified": "2025-09-21 22:40:23.088650",
|
||||
"module": "Church Prayers",
|
||||
"name": "Church Prayer Requests (Answered)",
|
||||
"number_of_groups": 0,
|
||||
"parent_document_type": "",
|
||||
"report_name": null,
|
||||
"roles": [],
|
||||
"show_values_over_chart": 1,
|
||||
"source": "",
|
||||
"time_interval": "Daily",
|
||||
"timeseries": 1,
|
||||
"timespan": "Last Year",
|
||||
"to_date": null,
|
||||
"type": "Line",
|
||||
"use_report_chart": 0,
|
||||
"value_based_on": "",
|
||||
"x_field": null,
|
||||
"y_axis": []
|
||||
}
|
||||
]
|
||||
@ -7,7 +7,7 @@
|
||||
"include_name_field": 0,
|
||||
"is_standard": 1,
|
||||
"list_name": "List",
|
||||
"modified": "2025-09-06 02:00:55.841681",
|
||||
"modified": "2025-09-30 21:54:12.850006",
|
||||
"module": "Desk",
|
||||
"name": "Church Person",
|
||||
"new_document_form": 0,
|
||||
@ -181,7 +181,7 @@
|
||||
},
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "You can define `Church Role`s that this person had been or is currently assigned.\nGo ahead and assign this person a 'Secretary' role starting today.",
|
||||
"description": "You can define `Church Role`s that this person had been or is currently assigned.\nGo ahead and assign this person a 'Secretary' role starting today by clicking on the `Add Row` button below.",
|
||||
"element_selector": null,
|
||||
"fieldname": "church_roles",
|
||||
"fieldtype": "Table",
|
||||
@ -239,5 +239,217 @@
|
||||
"ui_tour": 0,
|
||||
"view_name": "Workspaces",
|
||||
"workspace_name": null
|
||||
},
|
||||
{
|
||||
"dashboard_name": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Form Tour",
|
||||
"first_document": 0,
|
||||
"include_name_field": 0,
|
||||
"is_standard": 1,
|
||||
"list_name": "List",
|
||||
"modified": "2025-09-30 21:21:09.575152",
|
||||
"module": "Desk",
|
||||
"name": "Church Manager",
|
||||
"new_document_form": 0,
|
||||
"page_name": null,
|
||||
"page_route": null,
|
||||
"reference_doctype": "User",
|
||||
"report_name": "",
|
||||
"save_on_complete": 1,
|
||||
"steps": [
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "Enter the email of the user. This may be used for resetting passwords, sending notifications, etc.\nFor email notifications to work, the Administrator must configure a default outgoing email server using the `New Email Account` action.",
|
||||
"element_selector": null,
|
||||
"fieldname": "email",
|
||||
"fieldtype": "Data",
|
||||
"has_next_condition": 1,
|
||||
"hide_buttons": 0,
|
||||
"is_table_field": 0,
|
||||
"label": "Email",
|
||||
"modal_trigger": 0,
|
||||
"next_form_tour": null,
|
||||
"next_on_click": 0,
|
||||
"next_step_condition": "eval: doc.email.includes(\"@\");",
|
||||
"offset_x": 0,
|
||||
"offset_y": 0,
|
||||
"ondemand_description": null,
|
||||
"parent": "Church Manager",
|
||||
"parent_element_selector": null,
|
||||
"parent_fieldname": null,
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Form Tour",
|
||||
"popover_element": 0,
|
||||
"position": "Bottom",
|
||||
"title": "Email",
|
||||
"ui_tour": 0
|
||||
},
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "A first name is required. You can use something generic like \"Manager\" or \"ChurchManager\".",
|
||||
"element_selector": null,
|
||||
"fieldname": "first_name",
|
||||
"fieldtype": "Data",
|
||||
"has_next_condition": 1,
|
||||
"hide_buttons": 0,
|
||||
"is_table_field": 0,
|
||||
"label": "First Name",
|
||||
"modal_trigger": 0,
|
||||
"next_form_tour": null,
|
||||
"next_on_click": 0,
|
||||
"next_step_condition": "eval: doc.first_name !== null;",
|
||||
"offset_x": 0,
|
||||
"offset_y": 0,
|
||||
"ondemand_description": null,
|
||||
"parent": "Church Manager",
|
||||
"parent_element_selector": null,
|
||||
"parent_fieldname": null,
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Form Tour",
|
||||
"popover_element": 0,
|
||||
"position": "Bottom",
|
||||
"title": "First Name",
|
||||
"ui_tour": 0
|
||||
},
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "You may want to update the timezone if it doesn't match what you would expect.",
|
||||
"element_selector": null,
|
||||
"fieldname": "time_zone",
|
||||
"fieldtype": "Autocomplete",
|
||||
"has_next_condition": 0,
|
||||
"hide_buttons": 0,
|
||||
"is_table_field": 0,
|
||||
"label": "Time Zone",
|
||||
"modal_trigger": 0,
|
||||
"next_form_tour": null,
|
||||
"next_on_click": 0,
|
||||
"next_step_condition": null,
|
||||
"offset_x": 0,
|
||||
"offset_y": 0,
|
||||
"ondemand_description": null,
|
||||
"parent": "Church Manager",
|
||||
"parent_element_selector": null,
|
||||
"parent_fieldname": null,
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Form Tour",
|
||||
"popover_element": 0,
|
||||
"position": "Top",
|
||||
"title": "Timezone",
|
||||
"ui_tour": 0
|
||||
},
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "Select \"Church\" as the Module Profile.\nThis gives the user access to all the 'Church' app modules.\n\n⚠️ After saving this user, come back to this page and assign the \"Church Manager\" (or \"Church User\") 'RoleProfile' to this user (Not just the \"Church Manager\" permission). This will give the user permission to actually make changes to the Church records.",
|
||||
"element_selector": null,
|
||||
"fieldname": "module_profile",
|
||||
"fieldtype": "Link",
|
||||
"has_next_condition": 1,
|
||||
"hide_buttons": 0,
|
||||
"is_table_field": 0,
|
||||
"label": "Module Profile",
|
||||
"modal_trigger": 0,
|
||||
"next_form_tour": null,
|
||||
"next_on_click": 0,
|
||||
"next_step_condition": "eval: doc.module_profile == \"Church\";",
|
||||
"offset_x": 0,
|
||||
"offset_y": 0,
|
||||
"ondemand_description": null,
|
||||
"parent": "Church Manager",
|
||||
"parent_element_selector": null,
|
||||
"parent_fieldname": null,
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Form Tour",
|
||||
"popover_element": 0,
|
||||
"position": "Right Center",
|
||||
"title": "Module Profile",
|
||||
"ui_tour": 0
|
||||
},
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "After saving the user, you can come back to this settings tab to set (reset) the user's password.",
|
||||
"element_selector": "#user-settings_tab-tab",
|
||||
"fieldname": "mute_sounds",
|
||||
"fieldtype": "Check",
|
||||
"has_next_condition": 0,
|
||||
"hide_buttons": 0,
|
||||
"is_table_field": 0,
|
||||
"label": "Mute Sounds",
|
||||
"modal_trigger": 0,
|
||||
"next_form_tour": null,
|
||||
"next_on_click": 0,
|
||||
"next_step_condition": null,
|
||||
"offset_x": 0,
|
||||
"offset_y": 0,
|
||||
"ondemand_description": null,
|
||||
"parent": "Church Manager",
|
||||
"parent_element_selector": null,
|
||||
"parent_fieldname": null,
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Form Tour",
|
||||
"popover_element": 0,
|
||||
"position": "Top",
|
||||
"title": "Settings",
|
||||
"ui_tour": 0
|
||||
}
|
||||
],
|
||||
"title": "Church Manager",
|
||||
"track_steps": 0,
|
||||
"ui_tour": 0,
|
||||
"view_name": "Workspaces",
|
||||
"workspace_name": null
|
||||
},
|
||||
{
|
||||
"dashboard_name": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Form Tour",
|
||||
"first_document": 0,
|
||||
"include_name_field": 0,
|
||||
"is_standard": 1,
|
||||
"list_name": "List",
|
||||
"modified": "2025-09-28 22:47:37.075931",
|
||||
"module": "Desk",
|
||||
"name": "Church Information",
|
||||
"new_document_form": 0,
|
||||
"page_name": null,
|
||||
"page_route": null,
|
||||
"reference_doctype": "Church Information",
|
||||
"report_name": "",
|
||||
"save_on_complete": 0,
|
||||
"steps": [
|
||||
{
|
||||
"child_doctype": null,
|
||||
"description": "All of the information entered on this page may be used on the public-facing website. (i.e. in the footer or 'about-us' page.).\nWhen you are finished entering the information, click the 'save' button at the top right.",
|
||||
"element_selector": "div.form-dashboard",
|
||||
"fieldname": "legal_name",
|
||||
"fieldtype": "Data",
|
||||
"has_next_condition": 0,
|
||||
"hide_buttons": 0,
|
||||
"is_table_field": 0,
|
||||
"label": "Legal Name",
|
||||
"modal_trigger": 0,
|
||||
"next_form_tour": null,
|
||||
"next_on_click": 0,
|
||||
"next_step_condition": null,
|
||||
"offset_x": 0,
|
||||
"offset_y": 0,
|
||||
"ondemand_description": null,
|
||||
"parent": "Church Information",
|
||||
"parent_element_selector": null,
|
||||
"parent_fieldname": null,
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Form Tour",
|
||||
"popover_element": 0,
|
||||
"position": "Bottom",
|
||||
"title": "Legal Name",
|
||||
"ui_tour": 0
|
||||
}
|
||||
],
|
||||
"title": "Church Information",
|
||||
"track_steps": 0,
|
||||
"ui_tour": 0,
|
||||
"view_name": "Workspaces",
|
||||
"workspace_name": null
|
||||
}
|
||||
]
|
||||
]
|
||||
@ -6,16 +6,34 @@
|
||||
"parentfield": "allow_roles",
|
||||
"parenttype": "Module Onboarding",
|
||||
"role": "Administrator"
|
||||
},
|
||||
{
|
||||
"parent": "Church",
|
||||
"parentfield": "allow_roles",
|
||||
"parenttype": "Module Onboarding",
|
||||
"role": "Church Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church",
|
||||
"parentfield": "allow_roles",
|
||||
"parenttype": "Module Onboarding",
|
||||
"role": "Church User"
|
||||
}
|
||||
],
|
||||
"docstatus": 0,
|
||||
"doctype": "Module Onboarding",
|
||||
"documentation_url": "https://github.com/meichthys/church",
|
||||
"is_complete": 0,
|
||||
"modified": "2025-09-18 00:48:20.337101",
|
||||
"module": "Church",
|
||||
"modified": "2025-09-30 21:21:52.088048",
|
||||
"module": "Church Foundations",
|
||||
"name": "Church",
|
||||
"steps": [
|
||||
{
|
||||
"parent": "Church",
|
||||
"parentfield": "steps",
|
||||
"parenttype": "Module Onboarding",
|
||||
"step": "Church Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church",
|
||||
"parentfield": "steps",
|
||||
@ -47,7 +65,7 @@
|
||||
"step": "Church Prayer Request"
|
||||
}
|
||||
],
|
||||
"subtitle": "People, Families, Events, Ministries, and more...",
|
||||
"subtitle": "People, Families, Events, Ministries, Collections, and more...",
|
||||
"success_message": "Your Church is setup! 🎉 May God grow your ministry 🙏",
|
||||
"title": "⛪ Let's Set Up Your Church."
|
||||
}
|
||||
|
||||
@ -162,11 +162,41 @@
|
||||
"parent": "Church",
|
||||
"parentfield": "block_modules",
|
||||
"parenttype": "Module Profile"
|
||||
},
|
||||
{
|
||||
"module": "Communication",
|
||||
"parent": "Church",
|
||||
"parentfield": "block_modules",
|
||||
"parenttype": "Module Profile"
|
||||
},
|
||||
{
|
||||
"module": "Printing",
|
||||
"parent": "Church",
|
||||
"parentfield": "block_modules",
|
||||
"parenttype": "Module Profile"
|
||||
},
|
||||
{
|
||||
"module": "Portal",
|
||||
"parent": "Church",
|
||||
"parentfield": "block_modules",
|
||||
"parenttype": "Module Profile"
|
||||
},
|
||||
{
|
||||
"module": "Desk",
|
||||
"parent": "Church",
|
||||
"parentfield": "block_modules",
|
||||
"parenttype": "Module Profile"
|
||||
},
|
||||
{
|
||||
"module": "Core",
|
||||
"parent": "Church",
|
||||
"parentfield": "block_modules",
|
||||
"parenttype": "Module Profile"
|
||||
}
|
||||
],
|
||||
"docstatus": 0,
|
||||
"doctype": "Module Profile",
|
||||
"modified": "2025-09-18 23:50:02.346485",
|
||||
"modified": "2025-09-29 23:11:31.779249",
|
||||
"module_profile_name": "Church",
|
||||
"name": "Church"
|
||||
}
|
||||
|
||||
@ -1,4 +1,33 @@
|
||||
[
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add a Church Family",
|
||||
"callback_message": null,
|
||||
"callback_title": null,
|
||||
"description": "Adding a `Church Family` allows you to track which `Church Person`s belong to specific families.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"field": null,
|
||||
"form_tour": "Church Family",
|
||||
"intro_video_url": null,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-18 00:37:57.629356",
|
||||
"name": "Church Family",
|
||||
"path": null,
|
||||
"reference_document": "Church Family",
|
||||
"reference_report": null,
|
||||
"report_description": null,
|
||||
"report_reference_doctype": null,
|
||||
"report_type": null,
|
||||
"show_form_tour": 1,
|
||||
"show_full_form": 0,
|
||||
"title": "Add families that are represented in your church.",
|
||||
"validate_action": 1,
|
||||
"value_to_validate": null,
|
||||
"video_url": null
|
||||
},
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add Church Person",
|
||||
@ -10,10 +39,10 @@
|
||||
"field": null,
|
||||
"form_tour": "Church Person",
|
||||
"intro_video_url": null,
|
||||
"is_complete": 0,
|
||||
"is_complete": 1,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-07 00:57:18.263385",
|
||||
"modified": "2025-09-30 21:56:12.070093",
|
||||
"name": "Church Person",
|
||||
"path": null,
|
||||
"reference_document": "Church Person",
|
||||
@ -27,5 +56,121 @@
|
||||
"validate_action": 1,
|
||||
"value_to_validate": null,
|
||||
"video_url": null
|
||||
},
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Create Church Manager User",
|
||||
"callback_message": null,
|
||||
"callback_title": null,
|
||||
"description": "Before you get started, you should create a new user. The `Administrator` user should not be used on a daily basis and should be reserved for setting up new users, troubleshooting and system configuration. At least one separate user should be created with the `Church Manager` RoleProfile and the `Church` ModuleProfile permissions. These users will have full access to the Church app.\n\nAdditional users can also be created with the `Church User` RoleProfile and `Church` ModuleProfile permissions. These users will have access to most of the Church app, but will be restricted from modifying, or even seeing sensitive portions of the app. To see the exact permissions that these users have, you can (with the `Administrator` account) use the seach bar at the top to search for `Role Permissions Manager` and select the `Church User` role to see what is accessible by those types of users.\n\n⚠️ Only the `Administrator` user has permission to create new users.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"field": null,
|
||||
"form_tour": "Church Manager",
|
||||
"intro_video_url": null,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-30 21:39:03.912218",
|
||||
"name": "Church Manager",
|
||||
"path": null,
|
||||
"reference_document": "User",
|
||||
"reference_report": null,
|
||||
"report_description": null,
|
||||
"report_reference_doctype": null,
|
||||
"report_type": null,
|
||||
"show_form_tour": 1,
|
||||
"show_full_form": 1,
|
||||
"title": "Church Manager",
|
||||
"validate_action": 1,
|
||||
"value_to_validate": null,
|
||||
"video_url": null
|
||||
},
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add a Church Event",
|
||||
"callback_message": null,
|
||||
"callback_title": null,
|
||||
"description": "Events can be used to track `Church Person` attendance and to link to `Church Collection`s",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"field": null,
|
||||
"form_tour": null,
|
||||
"intro_video_url": null,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-16 22:05:27.860375",
|
||||
"name": "Church Event",
|
||||
"path": null,
|
||||
"reference_document": "Church Event",
|
||||
"reference_report": null,
|
||||
"report_description": null,
|
||||
"report_reference_doctype": null,
|
||||
"report_type": null,
|
||||
"show_form_tour": 0,
|
||||
"show_full_form": 0,
|
||||
"title": "Add upcoming church events.",
|
||||
"validate_action": 1,
|
||||
"value_to_validate": null,
|
||||
"video_url": null
|
||||
},
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add Prayer Request",
|
||||
"callback_message": null,
|
||||
"callback_title": null,
|
||||
"description": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"field": null,
|
||||
"form_tour": null,
|
||||
"intro_video_url": null,
|
||||
"is_complete": 0,
|
||||
"is_single": 0,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-13 01:21:56.200304",
|
||||
"name": "Church Prayer Request",
|
||||
"path": null,
|
||||
"reference_document": "Church Prayer Request",
|
||||
"reference_report": null,
|
||||
"report_description": null,
|
||||
"report_reference_doctype": null,
|
||||
"report_type": null,
|
||||
"show_form_tour": 0,
|
||||
"show_full_form": 1,
|
||||
"title": "Add prayer requests.",
|
||||
"validate_action": 1,
|
||||
"value_to_validate": null,
|
||||
"video_url": null
|
||||
},
|
||||
{
|
||||
"action": "Create Entry",
|
||||
"action_label": "Add Church Information",
|
||||
"callback_message": null,
|
||||
"callback_title": null,
|
||||
"description": "Church information is used across the application to populate parts of the church website, letterheads, reports, etc.\n\n⚠️ Only `Church Manager`s can edit `Church Information`.",
|
||||
"docstatus": 0,
|
||||
"doctype": "Onboarding Step",
|
||||
"field": null,
|
||||
"form_tour": "Church Information",
|
||||
"intro_video_url": null,
|
||||
"is_complete": 0,
|
||||
"is_single": 1,
|
||||
"is_skipped": 0,
|
||||
"modified": "2025-09-30 21:28:41.144848",
|
||||
"name": "Church Information",
|
||||
"path": null,
|
||||
"reference_document": "Church Information",
|
||||
"reference_report": null,
|
||||
"report_description": null,
|
||||
"report_reference_doctype": null,
|
||||
"report_type": null,
|
||||
"show_form_tour": 1,
|
||||
"show_full_form": 1,
|
||||
"title": "Add your church information",
|
||||
"validate_action": 1,
|
||||
"value_to_validate": null,
|
||||
"video_url": null
|
||||
}
|
||||
]
|
||||
]
|
||||
@ -2,58 +2,10 @@
|
||||
{
|
||||
"docstatus": 0,
|
||||
"doctype": "Role Profile",
|
||||
"modified": "2025-09-13 23:44:46.912938",
|
||||
"modified": "2025-10-02 01:06:32.950462",
|
||||
"name": "Church Manager",
|
||||
"role_profile": "Church Manager",
|
||||
"roles": [
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Academics User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Accounts Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Accounts User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Agriculture Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Agriculture User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Analytics"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Auditor"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Blogger"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
@ -66,233 +18,11 @@
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Church User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Customer"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Dashboard Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Delivery Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Delivery User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Employee"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Fleet Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Fulfillment User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "HR Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "HR User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Inbox User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Item Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Knowledge Base Contributor"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Knowledge Base Editor"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Maintenance Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Maintenance User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Manufacturing Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Manufacturing User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Newsletter Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Prepared Report User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Projects Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Projects User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Purchase Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Purchase Master Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Purchase User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Quality Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Report Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Sales Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Sales Master Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Sales User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Script Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Stock Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Stock User"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Supplier"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Support Team"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Translator"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Website Manager"
|
||||
},
|
||||
{
|
||||
"parent": "Church Manager",
|
||||
"parentfield": "roles",
|
||||
"parenttype": "Role Profile",
|
||||
"role": "Workspace Manager"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
102
church/hooks.py
102
church/hooks.py
@ -14,7 +14,18 @@ fixtures = [
|
||||
},
|
||||
{
|
||||
"dt": "Church Event Attendance Type",
|
||||
"filters": [["type", "in", ("Absent", "Assumed", "Confirmed", "Unknown")]],
|
||||
"filters": [
|
||||
[
|
||||
"type",
|
||||
"in",
|
||||
(
|
||||
"Absent",
|
||||
"Assumed",
|
||||
"Confirmed",
|
||||
"Unknown",
|
||||
),
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
"dt": "Church Event Type",
|
||||
@ -33,16 +44,20 @@ fixtures = [
|
||||
]
|
||||
],
|
||||
},
|
||||
# `Church Fund` fixtures are manually created since we don't want to export test data
|
||||
{
|
||||
"dt": "Church Fund",
|
||||
"dt": "Church Missionary Support Frequency",
|
||||
"filters": [
|
||||
[
|
||||
"fund",
|
||||
"frequency",
|
||||
"in",
|
||||
(
|
||||
"Building",
|
||||
"General",
|
||||
"Missions",
|
||||
"Weekly",
|
||||
"Bi-Weekly",
|
||||
"Monthly",
|
||||
"Bi-Monthly",
|
||||
"Quarterly",
|
||||
"Yearly",
|
||||
),
|
||||
]
|
||||
],
|
||||
@ -97,20 +112,60 @@ fixtures = [
|
||||
},
|
||||
{
|
||||
"dt": "Church Member Status",
|
||||
"filters": [["status", "in", ("Inactive", "Active")]],
|
||||
"filters": [
|
||||
[
|
||||
"status",
|
||||
"in",
|
||||
(
|
||||
"Inactive",
|
||||
"Active",
|
||||
),
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
"dt": "Church Prayer Request Status",
|
||||
"filters": [["status", "in", ("Answered", "Intercession", "Requested")]],
|
||||
"filters": [
|
||||
[
|
||||
"status",
|
||||
"in",
|
||||
(
|
||||
"Answered",
|
||||
"Being Prayed For",
|
||||
"Requested",
|
||||
),
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
"dt": "Church Prayer Request Type",
|
||||
"filters": [["type", "in", ("Health", "Praise", "Salvation", "Unspoken")]],
|
||||
"filters": [
|
||||
[
|
||||
"type",
|
||||
"in",
|
||||
(
|
||||
"Health",
|
||||
"Praise",
|
||||
"Salvation",
|
||||
"Unspoken",
|
||||
),
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
"dt": "Church Role Type",
|
||||
"filters": [
|
||||
["role", "in", ("Deacon", "Elder", "Pastor", "Secretary", "Treasurer")]
|
||||
[
|
||||
"role",
|
||||
"in",
|
||||
(
|
||||
"Deacon",
|
||||
"Elder",
|
||||
"Pastor",
|
||||
"Secretary",
|
||||
"Treasurer",
|
||||
),
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -119,23 +174,23 @@ fixtures = [
|
||||
},
|
||||
{
|
||||
"dt": "Dashboard Chart",
|
||||
"filters": [["module", "like", "church"]],
|
||||
"filters": [["module", "like", "Church%"]],
|
||||
},
|
||||
{
|
||||
"dt": "Form Tour",
|
||||
"filters": [["Name", "in", ["Church Person"]]],
|
||||
"filters": [["Name", "like", "Church%"]],
|
||||
},
|
||||
{
|
||||
"dt": "Module Onboarding",
|
||||
"filters": [["Name", "like", "church"]],
|
||||
"filters": [["Name", "like", "Church%"]],
|
||||
},
|
||||
{
|
||||
"dt": "Module Profile",
|
||||
"filters": [["Name", "in", ("Church")]],
|
||||
"filters": [["Name", "like", "Church%"]],
|
||||
},
|
||||
{
|
||||
"dt": "Onboarding Step",
|
||||
"filters": [["Name", "in", ["Church Person"]]],
|
||||
"filters": [["Name", "like", "Church%"]],
|
||||
},
|
||||
{
|
||||
"dt": "Role",
|
||||
@ -143,11 +198,20 @@ fixtures = [
|
||||
},
|
||||
{
|
||||
"dt": "Role Profile",
|
||||
"filters": [["Name", "in", ["Church Manager", "Church User"]]],
|
||||
"filters": [["Name", "like", "Church%"]],
|
||||
},
|
||||
{
|
||||
"dt": "Web Page",
|
||||
"filters": [["Name", "in", ["About Us", "Our Beliefs"]]],
|
||||
"filters": [
|
||||
[
|
||||
"Name",
|
||||
"in",
|
||||
[
|
||||
"About Us",
|
||||
"Our Beliefs",
|
||||
],
|
||||
]
|
||||
],
|
||||
},
|
||||
]
|
||||
# Apps
|
||||
@ -227,8 +291,8 @@ app_include_icons = ["church/icons/custom_icons.svg"]
|
||||
# Installation
|
||||
# ------------
|
||||
|
||||
#before_install = "install.before_install"
|
||||
#after_install = "install.after_install"
|
||||
# before_install = "install.before_install"
|
||||
# after_install = "install.after_install"
|
||||
|
||||
# Uninstallation
|
||||
# ------------
|
||||
|
||||
@ -4,4 +4,6 @@ Church Ministries
|
||||
Church Missions
|
||||
Church Prayers
|
||||
Church Foundations
|
||||
Church Study
|
||||
Church Study
|
||||
Church Customizations
|
||||
Church Communications
|
||||
Loading…
x
Reference in New Issue
Block a user