SPlitting web forms
This commit is contained in:
@@ -45,7 +45,7 @@
|
||||
"modified": "2025-11-11 18:44:43.209834",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "Corporate Documents",
|
||||
"name": "Corporate Document",
|
||||
"naming_rule": "Expression",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
@@ -5,5 +5,5 @@
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class CorporateDocuments(Document):
|
||||
class CorporateDocument(Document):
|
||||
pass
|
||||
@@ -54,7 +54,7 @@
|
||||
"modified": "2025-11-09 11:48:36.156523",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "Member Agreements",
|
||||
"name": "Member Agreement",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"row_format": "Dynamic",
|
||||
@@ -5,5 +5,5 @@
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class MemberAgreements(Document):
|
||||
class MemberAgreement(Document):
|
||||
pass
|
||||
@@ -47,7 +47,7 @@
|
||||
"inspection_records_section",
|
||||
"table_yzvn",
|
||||
"menus_section",
|
||||
"tempattach",
|
||||
"menu",
|
||||
"associates_tab",
|
||||
"associates_section",
|
||||
"table_cdln",
|
||||
@@ -150,7 +150,7 @@
|
||||
{
|
||||
"fieldname": "table_cabr",
|
||||
"fieldtype": "Table",
|
||||
"options": "Member Agreements"
|
||||
"options": "Member Agreement"
|
||||
},
|
||||
{
|
||||
"fieldname": "corporate_documents_section",
|
||||
@@ -160,7 +160,7 @@
|
||||
{
|
||||
"fieldname": "table_rkkt",
|
||||
"fieldtype": "Table",
|
||||
"options": "Corporate Documents"
|
||||
"options": "Corporate Document"
|
||||
},
|
||||
{
|
||||
"fieldname": "food_manager_records_section",
|
||||
@@ -197,10 +197,6 @@
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Menus"
|
||||
},
|
||||
{
|
||||
"fieldname": "tempattach",
|
||||
"fieldtype": "Attach"
|
||||
},
|
||||
{
|
||||
"fieldname": "associates_tab",
|
||||
"fieldtype": "Tab Break",
|
||||
@@ -279,6 +275,12 @@
|
||||
"fieldtype": "Table",
|
||||
"label": "Schedule Access",
|
||||
"options": "Booked Member"
|
||||
},
|
||||
{
|
||||
"fieldname": "menu",
|
||||
"fieldtype": "Table",
|
||||
"label": "Menus",
|
||||
"options": "Menu"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
@@ -299,7 +301,7 @@
|
||||
"link_fieldname": "member_id"
|
||||
}
|
||||
],
|
||||
"modified": "2025-11-14 00:19:01.685822",
|
||||
"modified": "2025-11-14 16:36:17.759476",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "Member Profile",
|
||||
|
||||
54
member_management/member_management/doctype/menu/menu.json
Normal file
54
member_management/member_management/doctype/menu/menu.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_rename": 1,
|
||||
"autoname": "field:title",
|
||||
"creation": "2025-11-14 16:28:31.135453",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"title",
|
||||
"file",
|
||||
"current"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "title",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Title",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "file",
|
||||
"fieldtype": "Attach",
|
||||
"in_list_view": 1,
|
||||
"label": "File",
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"default": "1",
|
||||
"fieldname": "current",
|
||||
"fieldtype": "Check",
|
||||
"in_list_view": 1,
|
||||
"label": "Current"
|
||||
}
|
||||
],
|
||||
"grid_page_length": 50,
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2025-11-14 16:32:51.511787",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "Menu",
|
||||
"naming_rule": "By fieldname",
|
||||
"owner": "Administrator",
|
||||
"permissions": [],
|
||||
"row_format": "Dynamic",
|
||||
"rows_threshold_for_grid_search": 20,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
9
member_management/member_management/doctype/menu/menu.py
Normal file
9
member_management/member_management/doctype/menu/menu.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
# import frappe
|
||||
from frappe.model.document import Document
|
||||
|
||||
|
||||
class Menu(Document):
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:09:19.953363",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><p>Your member contracts will appear here when completed.<br></p></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 17:51:47.145410",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "agreements",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-agreement",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Agreements",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "agreements_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Agreements",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "table_cabr",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Member Agreement",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:12:49.189895",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><p>All employees or business associates who will be present in the facility must be individually identified.</p><p><br></p><ol><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Each <strong>person</strong> with access to the facility should have an individual record in this list. Each record may have multiple contact entries for email and phone as necessary.</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Every person <strong><em>must</em></strong> have an associated photo identification document. Acceptable documents include a Driver's License, Passport, or State-issued ID card.<br></li></ol></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 17:46:20.191842",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "associates",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-associate",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Associates",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "associates_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Associates",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "table_cdln",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Associate List",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:14:03.424015",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><h5>Corporate Identity Documents</h5><p class=\"ql-indent-1\">Upload one per required document type.</p><p><br></p><p class=\"ql-indent-1\"><em><u>Corporation (including LLC):</u></em></p><ol><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Certificate of Formation (<a href=\"/files/COF-example.webp\" rel=\"noopener noreferrer\">example</a>)</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>State Business Registration Certificate (<a href=\"/files/nj-reg-sample.jpg\" rel=\"noopener noreferrer\">example</a>)</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Certificate of Trade Name, if any (<a href=\"/files/Business trade name sample.pdf\" rel=\"noopener noreferrer\">example</a>)</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>IRS EIN Letter (<a href=\"/files/EIN-Sample.png\" rel=\"noopener noreferrer\">example</a>)</li></ol><p class=\"ql-indent-1\"><br></p><p class=\"ql-indent-1\"><em><u>Sole Proprietorship:</u></em></p><ol><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Certificate of Trade Name</li></ol><p class=\"ql-indent-1\"><br></p><p class=\"ql-indent-1\"><em><u>All Business Types:</u></em></p><ol><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>State Sales Tax Registration Certificate (<a href=\"/files/nj-sales-tax-sample.jpg\" rel=\"noopener noreferrer\">example</a>)<br></li></ol></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 17:33:25.426606",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "corporate-documents",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-corporate",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Corporate Documents",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"description": "",
|
||||
"fieldname": "corporate_documents_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Corporate Documents",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"description": "Description",
|
||||
"fieldname": "table_rkkt",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Corporate Document",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:16:01.324909",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><h5>Member Details</h5><ol><li data-list=\"bullet\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Confirm your legal business name</li><li data-list=\"bullet\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Your Member ID is pre-generated and cannot be changed</li><li data-list=\"bullet\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Risk class is determined by the Authorizing Jurisdiction. You may leave it blank if unsure.</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Type 1 is prepackaged commercial food (grocery items)</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Type 2 is limited preparation of pre-cooked food, bread, or other low-risk items</li><li data-list=\"bullet\" class=\"ql-indent-1\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Type 3 includes preparation of melons, dairy, raw meat or fish, or complex operations involving reheating or hot holding of food. <em>Most members are Type 3.</em></li><li data-list=\"bullet\"><span class=\"ql-ui\" contenteditable=\"false\"></span>Please provide your EIN if you are organized as an LLC, S or C corp.</li></ol><p><br></p></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 17:46:51.140689",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "demographics",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-demographic",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Demographics",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "member_data_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Member Data",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "column_break_vdps",
|
||||
"fieldtype": "Column Break",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"description": "Legal Business Name",
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 0,
|
||||
"label": "Name",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 1,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"description": "As determined by the authorizing jurisdiction",
|
||||
"fieldname": "risk_class",
|
||||
"fieldtype": "Select",
|
||||
"hidden": 0,
|
||||
"label": "Risk Class",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "1\n2\n3",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "column_break_jznx",
|
||||
"fieldtype": "Column Break",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"description": "Auto-generated. Cannot be changed.",
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 0,
|
||||
"label": "Member ID",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 1,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"description": "Federal Employer Identification (if Incorporated)",
|
||||
"fieldname": "member_ein",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 0,
|
||||
"label": "EIN",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:18:00.648370",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><h5>Food Protection Manager Certificate</h5><p class=\"ql-indent-1\">Risk Type 3 members must upload a valid unexpired food protection manager certificate from an acceptable issuer.</p><p><br></p></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 16:18:00.648370",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "food-manager-records",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-manager",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Food Manager Records",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "food_manager_records_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Food Manager Records",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "table_wsni",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Food Protection Manager Record",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:20:04.313860",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><h5>Inspection Records</h5><p class=\"ql-indent-1\">If you have a dedicated sales location or warehouse for finished goods, please upload inspection/approval related records here. Otherwise, this area will hold your completed inspection records when approved.</p><p><br></p></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 16:20:08.458609",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "inspection-records",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-inspection",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Inspection Records",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "inspection_records_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Inspection Records",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "table_yzvn",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Inspection Record",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 15:53:28.559060",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><p>Please upload your current unexpired insurance declaration page. (<a href=\"/files/Acord COI Example.pdf\" rel=\"noopener noreferrer\">EXAMPLE FORM</a>)</p><p><br></p><p class=\"ql-indent-1\">Under the <em>Certificate Holder</em> section there must be the following:<br></p><p class=\"ql-indent-2\"><strong>Haddon Kitchen Incubator LLC</strong></p><p class=\"ql-indent-2\"><strong>SJKJSN Enterprises LLC</strong></p><p class=\"ql-indent-2\"><strong>901 White Horse Pike</strong></p><p class=\"ql-indent-2\"><strong>Haddon Township, NJ 0107</strong><br></p><p><br></p><p>Contact your insurer to add us as a <em>\"Named Insured/Loss Payee\"</em> to obtain this form. You can usually obtain it on their self-service website.<br></p></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 16:10:31.673901",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "insurance",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-insurance",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Insurance",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "insurance_records_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Insurance Records",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "table_wmpy",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Insurance Record",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -42,7 +42,7 @@
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-09 22:28:13.460426",
|
||||
"modified": "2025-11-14 17:49:40.577567",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "member-profile",
|
||||
@@ -170,7 +170,7 @@
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Corporate Documents",
|
||||
"options": "Corporate Document",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
@@ -269,11 +269,13 @@
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "tempattach",
|
||||
"fieldtype": "Attach",
|
||||
"fieldname": "menu",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"label": "Menus",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Menu",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
@@ -325,7 +327,7 @@
|
||||
"hidden": 0,
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Member Agreements",
|
||||
"options": "Member Agreement",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
86
member_management/member_management/web_form/menu/menu.json
Normal file
86
member_management/member_management/web_form/menu/menu.json
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 1,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 16:21:38.135396",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"introduction_text": "<div class=\"ql-editor read-mode\"><h5>Menu</h5><p class=\"ql-indent-1\">A menu is required to be submitted to the authorizing jurisdiction to determine risk type. This will be submitted with any application paperwork.</p><p><br></p></div>",
|
||||
"is_standard": 1,
|
||||
"list_columns": [
|
||||
{
|
||||
"fieldname": "member_id",
|
||||
"fieldtype": "Int",
|
||||
"label": "Member ID"
|
||||
},
|
||||
{
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"fieldname": "membership_type",
|
||||
"fieldtype": "Select",
|
||||
"label": "Membership Type",
|
||||
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
|
||||
},
|
||||
{
|
||||
"fieldname": "join_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Joined"
|
||||
}
|
||||
],
|
||||
"list_title": "Member Profile",
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 16:38:22.424003",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "menu",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-menu",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Menu",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "menus_section",
|
||||
"fieldtype": "Section Break",
|
||||
"hidden": 0,
|
||||
"label": "Menus",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "menu",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"label": "Menus",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Menu",
|
||||
"precision": "",
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
@@ -0,0 +1,3 @@
|
||||
frappe.ready(function () {
|
||||
// bind events here
|
||||
});
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"allow_comments": 0,
|
||||
"allow_delete": 0,
|
||||
"allow_edit": 0,
|
||||
"allow_incomplete": 0,
|
||||
"allow_multiple": 0,
|
||||
"allow_print": 0,
|
||||
"anonymous": 0,
|
||||
"apply_document_permissions": 1,
|
||||
"button_label": "Save",
|
||||
"condition_json": "[]",
|
||||
"creation": "2025-11-14 18:04:49.430009",
|
||||
"doc_type": "Member Profile",
|
||||
"docstatus": 0,
|
||||
"doctype": "Web Form",
|
||||
"idx": 0,
|
||||
"is_standard": 1,
|
||||
"list_columns": [],
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2025-11-14 18:05:41.364810",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Member Management",
|
||||
"name": "provisioning-information",
|
||||
"owner": "Administrator",
|
||||
"published": 1,
|
||||
"route": "profile-provisioning",
|
||||
"show_attachments": 1,
|
||||
"show_list": 0,
|
||||
"show_sidebar": 1,
|
||||
"title": "Provisioning Information",
|
||||
"web_form_fields": [
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "access_card_count",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 0,
|
||||
"label": "Number of Access Cards Issued",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 1,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "wifi_codes_issued",
|
||||
"fieldtype": "Text",
|
||||
"hidden": 0,
|
||||
"label": "Wifi Codes Issued",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"precision": "",
|
||||
"read_only": 1,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "unifi_profile",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"label": "Facility Access",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "UniFi Access Profile",
|
||||
"precision": "",
|
||||
"read_only": 1,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "booked_member",
|
||||
"fieldtype": "Table",
|
||||
"hidden": 0,
|
||||
"label": "Schedule Access",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"options": "Booked Member",
|
||||
"precision": "",
|
||||
"read_only": 1,
|
||||
"reqd": 0,
|
||||
"show_in_filter": 0
|
||||
}
|
||||
],
|
||||
"website_sidebar": "Member Sidebar"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
# do your magic here
|
||||
pass
|
||||
113
member_management/templates/base.html
Normal file
113
member_management/templates/base.html
Normal file
@@ -0,0 +1,113 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Built on Frappe. https://frappeframework.com/ -->
|
||||
<html lang="{{boot.lang}}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="generator" content="frappe">
|
||||
|
||||
{% block meta_block %}
|
||||
{% include "templates/includes/meta_block.html" %}
|
||||
{% endblock %}
|
||||
|
||||
<title>{% block title %}{{ title | striptags }}{% endblock %}</title>
|
||||
|
||||
{% block favicon %}
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
href="{{ (favicon or "/assets/frappe/images/frappe-favicon.svg") | abs_url }}"
|
||||
type="image/x-icon"
|
||||
>
|
||||
{% endblock %}
|
||||
|
||||
{%- block head -%}
|
||||
{% include "templates/includes/head.html" %}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block head_include %}
|
||||
{{ head_include or "" }}
|
||||
{% endblock -%}
|
||||
|
||||
{%- block style %}
|
||||
{% if colocated_css -%}
|
||||
<style>{{ colocated_css }}</style>
|
||||
{%- endif %}
|
||||
{%- endblock -%}
|
||||
|
||||
{% if boot.lang == "eo" %}
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'frappe']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
window.frappe = {};
|
||||
frappe.ready_events = [];
|
||||
frappe.ready = function(fn) {
|
||||
frappe.ready_events.push(fn);
|
||||
}
|
||||
window.dev_server = {{ dev_server }};
|
||||
window.socketio_port = {{ (frappe.socketio_port or 9000) }};
|
||||
window.show_language_picker = {{ show_language_picker or 'false' }};
|
||||
</script>
|
||||
</head>
|
||||
<body frappe-session-status="{{ 'logged-in' if frappe.session.user != 'Guest' else 'logged-out'}}" data-path="{{ path | e }}" {%- if template and template.endswith('.md') %} frappe-content-type="markdown" {%- endif %} class="{{ body_class or ''}}">
|
||||
{% include "public/icons/timeless/icons.svg" %}
|
||||
{% include "public/icons/espresso/icons.svg" %}
|
||||
{%- block banner -%}
|
||||
{% include "templates/includes/banner_extension.html" ignore missing %}
|
||||
|
||||
{% if banner_html -%}
|
||||
{{ banner_html or "" }}
|
||||
{%- endif %}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block navbar -%}
|
||||
{{ web_block(
|
||||
navbar_template or 'Standard Navbar',
|
||||
values=_context_dict,
|
||||
add_container=0,
|
||||
add_top_padding=0,
|
||||
add_bottom_padding=0,
|
||||
) }}
|
||||
{%- endblock -%}
|
||||
|
||||
{% block content %}
|
||||
{{ content }}
|
||||
{% endblock %}
|
||||
|
||||
{%- block footer -%}
|
||||
{{ web_block(
|
||||
footer_template or 'Standard Footer',
|
||||
values=_context_dict,
|
||||
add_container=0,
|
||||
add_top_padding=0,
|
||||
add_bottom_padding=0
|
||||
) }}
|
||||
{%- endblock -%}
|
||||
|
||||
{% block base_scripts %}
|
||||
<!-- js should be loaded in body! -->
|
||||
<script>
|
||||
frappe.boot = {{ boot | json }}
|
||||
// for backward compatibility of some libs
|
||||
frappe.sys_defaults = frappe.boot.sysdefaults;
|
||||
</script>
|
||||
{{ include_script('frappe-web.bundle.js') }}
|
||||
{% endblock %}
|
||||
|
||||
{%- for link in web_include_js %}
|
||||
{{ include_script(link) }}
|
||||
{%- endfor -%}
|
||||
|
||||
{%- block script %}
|
||||
{% if colocated_js -%}
|
||||
<script>{{ colocated_js }}</script>
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
<!-- csrf_token -->
|
||||
{%- block body_include %}{{ body_include or "" }}{% endblock -%}
|
||||
</body>
|
||||
</html>
|
||||
116
member_management/templates/doc.html
Normal file
116
member_management/templates/doc.html
Normal file
@@ -0,0 +1,116 @@
|
||||
{% extends "templates/base.html" %}
|
||||
{%- from "templates/includes/navbar/navbar_items.html" import render_item -%}
|
||||
|
||||
{%- block head_include %}
|
||||
<link rel="stylesheet" href="/assets/frappe/css/hljs-night-owl.css">
|
||||
{% endblock -%}
|
||||
|
||||
{%- block navbar -%}
|
||||
<nav class="navbar navbar-light navbar-expand-lg doc-navbar fixed-top">
|
||||
<div class="container-fluid doc-container">
|
||||
<div class="row no-gutters w-100">
|
||||
<div class="col-12 col-lg-2">
|
||||
<a class="navbar-brand" href="{{ url_prefix }}{{ home_page or "/" }}">
|
||||
{%- if brand_html -%}
|
||||
{{ brand_html }}
|
||||
{%- elif banner_image -%}
|
||||
<img src='{{ banner_image }}'>
|
||||
{%- else -%}
|
||||
<span>{{ (frappe.get_hooks("brand_html") or [_("Home")])[0] }}</span>
|
||||
{%- endif -%}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-12 col-lg-8">
|
||||
<div class="doc-search-container">
|
||||
<div class="website-search doc-search" id="search-container">
|
||||
</div>
|
||||
<button class="navbar-toggler" type="button"
|
||||
data-toggle="collapse"
|
||||
data-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false"
|
||||
aria-label="Toggle navigation">
|
||||
<span>
|
||||
<svg class="icon icon-lg">
|
||||
<use href="#icon-menu"></use>
|
||||
</svg>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-2">
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav">
|
||||
{%- set items = docs_navbar_items or [] -%}
|
||||
{%- for item in items -%}
|
||||
{{ render_item(item, parent=True) }}
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{% include "templates/includes/web_sidebar.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{%- endblock -%}
|
||||
|
||||
{% block content %}
|
||||
|
||||
|
||||
{% macro container_attributes() -%}
|
||||
id="page-{{ name or route | e }}" data-path="{{ pathname | e }}"
|
||||
{%- if page_or_generator=="Generator" %}source-type="Generator" data-doctype="{{ doctype }}"{%- endif %}
|
||||
{%- if source_content_type %}source-content-type="{{ source_content_type }}"{%- endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
<div class="container-fluid doc-layout doc-container">
|
||||
<div class="row no-gutters" {{ container_attributes() }}>
|
||||
<div class="sidebar-column col-sm-2">
|
||||
<aside class="doc-sidebar">
|
||||
{% block page_sidebar %}
|
||||
{% include "templates/includes/web_sidebar.html" %}
|
||||
{% endblock %}
|
||||
</aside>
|
||||
</div>
|
||||
<div class="main-column doc-main col-12 col-lg-10 col-xl-8">
|
||||
<div class="page-content-wrapper">
|
||||
{% block page_container %}
|
||||
<main>
|
||||
<div class="page_content page-content doc-content">
|
||||
{%- if add_breadcrumbs -%}
|
||||
{% include "templates/includes/breadcrumbs.html" %}
|
||||
{%- endif -%}
|
||||
{%- block page_content -%}{%- endblock -%}
|
||||
</div>
|
||||
</main>
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{%- if page_toc_html -%}
|
||||
<div class="page-toc col-sm-2 d-none d-xl-block">
|
||||
{% block page_toc %}
|
||||
{% if page_toc_html %}
|
||||
<div>
|
||||
<h5>On this page</h5>
|
||||
{{ page_toc_html }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{%- block script -%}
|
||||
<script>
|
||||
frappe.ready(() => {
|
||||
frappe.setup_search('#search-container', '{{ docs_search_scope or "" }}');
|
||||
|
||||
$('.web-footer .container')
|
||||
.removeClass('container')
|
||||
.addClass('container-fluid doc-container');
|
||||
});
|
||||
</script>
|
||||
{%- endblock -%}
|
||||
113
member_management/templates/pages/base.html
Normal file
113
member_management/templates/pages/base.html
Normal file
@@ -0,0 +1,113 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Built on Frappe. https://frappeframework.com/ -->
|
||||
<html lang="{{boot.lang}}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="generator" content="frappe">
|
||||
|
||||
{% block meta_block %}
|
||||
{% include "templates/includes/meta_block.html" %}
|
||||
{% endblock %}
|
||||
|
||||
<title>{% block title %}{{ title | striptags }}{% endblock %}</title>
|
||||
|
||||
{% block favicon %}
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
href="{{ (favicon or "/assets/frappe/images/frappe-favicon.svg") | abs_url }}"
|
||||
type="image/x-icon"
|
||||
>
|
||||
{% endblock %}
|
||||
|
||||
{%- block head -%}
|
||||
{% include "templates/includes/head.html" %}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block head_include %}
|
||||
{{ head_include or "" }}
|
||||
{% endblock -%}
|
||||
|
||||
{%- block style %}
|
||||
{% if colocated_css -%}
|
||||
<style>{{ colocated_css }}</style>
|
||||
{%- endif %}
|
||||
{%- endblock -%}
|
||||
|
||||
{% if boot.lang == "eo" %}
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'frappe']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
window.frappe = {};
|
||||
frappe.ready_events = [];
|
||||
frappe.ready = function(fn) {
|
||||
frappe.ready_events.push(fn);
|
||||
}
|
||||
window.dev_server = {{ dev_server }};
|
||||
window.socketio_port = {{ (frappe.socketio_port or 9000) }};
|
||||
window.show_language_picker = {{ show_language_picker or 'false' }};
|
||||
</script>
|
||||
</head>
|
||||
<body frappe-session-status="{{ 'logged-in' if frappe.session.user != 'Guest' else 'logged-out'}}" data-path="{{ path | e }}" {%- if template and template.endswith('.md') %} frappe-content-type="markdown" {%- endif %} class="{{ body_class or ''}}">
|
||||
{% include "public/icons/timeless/icons.svg" %}
|
||||
{% include "public/icons/espresso/icons.svg" %}
|
||||
{%- block banner -%}
|
||||
{% include "templates/includes/banner_extension.html" ignore missing %}
|
||||
|
||||
{% if banner_html -%}
|
||||
{{ banner_html or "" }}
|
||||
{%- endif %}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block navbar -%}
|
||||
{{ web_block(
|
||||
navbar_template or 'Standard Navbar',
|
||||
values=_context_dict,
|
||||
add_container=0,
|
||||
add_top_padding=0,
|
||||
add_bottom_padding=0,
|
||||
) }}
|
||||
{%- endblock -%}
|
||||
|
||||
{% block content %}
|
||||
{{ content }}
|
||||
{% endblock %}
|
||||
|
||||
{%- block footer -%}
|
||||
{{ web_block(
|
||||
footer_template or 'Standard Footer',
|
||||
values=_context_dict,
|
||||
add_container=0,
|
||||
add_top_padding=0,
|
||||
add_bottom_padding=0
|
||||
) }}
|
||||
{%- endblock -%}
|
||||
|
||||
{% block base_scripts %}
|
||||
<!-- js should be loaded in body! -->
|
||||
<script>
|
||||
frappe.boot = {{ boot | json }}
|
||||
// for backward compatibility of some libs
|
||||
frappe.sys_defaults = frappe.boot.sysdefaults;
|
||||
</script>
|
||||
{{ include_script('frappe-web.bundle.js') }}
|
||||
{% endblock %}
|
||||
|
||||
{%- for link in web_include_js %}
|
||||
{{ include_script(link) }}
|
||||
{%- endfor -%}
|
||||
|
||||
{%- block script %}
|
||||
{% if colocated_js -%}
|
||||
<script>{{ colocated_js }}</script>
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
<!-- csrf_token -->
|
||||
{%- block body_include %}{{ body_include or "" }}{% endblock -%}
|
||||
</body>
|
||||
</html>
|
||||
92
member_management/templates/styles/card_style.css
Normal file
92
member_management/templates/styles/card_style.css
Normal file
@@ -0,0 +1,92 @@
|
||||
.hero-and-content {
|
||||
background-color: var(--bg-color);
|
||||
}
|
||||
|
||||
.page-card {
|
||||
max-width: 360px;
|
||||
padding: 15px;
|
||||
margin: 70px auto;
|
||||
border-radius: var(--border-radius-md);
|
||||
background-color: var(--fg-color);
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.for-reset-password {
|
||||
margin: 80px 0;
|
||||
}
|
||||
|
||||
.for-reset-password .page-card {
|
||||
border: 0;
|
||||
max-width: 450px;
|
||||
margin: auto;
|
||||
border-radius: var(--border-radius-md);
|
||||
padding: 40px 60px;
|
||||
}
|
||||
|
||||
@media (max-width: 425px) {
|
||||
.for-reset-password .page-card {
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.page-card .page-card-head {
|
||||
padding: 10px 15px;
|
||||
margin: -15px;
|
||||
margin-bottom: 15px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.for-reset-password .page-card .page-card-head {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.page-card-head h4 {
|
||||
font-size: var(--text-xl);
|
||||
font-weight: var(--weight-semibold);
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
#reset-password .form-group {
|
||||
margin-bottom: 10px;
|
||||
font-size: var(--font-size-sm);
|
||||
}
|
||||
|
||||
.page-card .page-card-head .indicator {
|
||||
color: #36414c;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.sign-up-message {
|
||||
margin-top: 20px;
|
||||
font-size: 13px;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.page-card .page-card-head .indicator::before {
|
||||
margin: 0 6px 0.5px 0px;
|
||||
}
|
||||
|
||||
button#update {
|
||||
font-size: var(--font-size-sm);
|
||||
}
|
||||
|
||||
.page-card .btn {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.page-card p:empty {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page-card p {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.ellipsis {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
293
member_management/templates/styles/discussion_style.css
Normal file
293
member_management/templates/styles/discussion_style.css
Normal file
@@ -0,0 +1,293 @@
|
||||
.modal .comment-footer div:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.discussions-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
.discussions-header {
|
||||
flex-direction: column;
|
||||
align-items: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.discussions-header .button {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.search-field {
|
||||
background-image: url(/assets/frappe/icons/timeless/search.svg);
|
||||
background-repeat: no-repeat;
|
||||
text-indent: 1.5rem;
|
||||
background-position: 1rem 0.45rem;
|
||||
font-size: var(--text-md);
|
||||
padding: 0.3rem 1rem;
|
||||
border: 1px solid var(--dark-border-color);
|
||||
border-radius: var(--border-radius-md);
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
.search-field {
|
||||
margin: 0.75rem 0;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar-topic {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.comment-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.reply-card {
|
||||
padding: 1.25rem 0;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.reply-card:last-of-type {
|
||||
border-bottom: none;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.reply-card .dropdown {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.discussion-topic-title {
|
||||
color: var(--text-color);
|
||||
font-size: var(--text-lg);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.discussion-on-page .topic-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.discussion-on-page {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.submit-discussion {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.reply-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: var(--text-sm);
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.reply-text h1 {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.reply-text h2 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.reply-text h3 {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.reply-text h4 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.reply-text p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.sidebar-info {
|
||||
margin-top: 0.5rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.discussions-section-title {
|
||||
font-size: var(--text-2xl);
|
||||
font-weight: var(--weight-semibold);
|
||||
letter-spacing: 0.01em;
|
||||
color: var(--text-color);
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.discussion-heading {
|
||||
font-weight: 600;
|
||||
font-size: var(--text-lg);
|
||||
line-height: 146%;
|
||||
letter-spacing: -0.0175em;
|
||||
color: var(--text-color);
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.card-style {
|
||||
display: flex;
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
.discussions-card {
|
||||
display: grid;
|
||||
grid-gap: 2rem;
|
||||
grid-template-columns: 2fr minmax(600px, 5fr);
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.discussions-card {
|
||||
grid-template-columns: 3fr minmax(400px, 5fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.discussions-card {
|
||||
grid-template-columns: 4fr minmax(400px, 5fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 550px) {
|
||||
.discussions-card {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.back-button {
|
||||
display: flex;
|
||||
margin-right: 1rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.reply-author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0px 8px;
|
||||
font-size: var(--text-sm);
|
||||
line-height: 135%;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.discussions-header .btn {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.empty-state {
|
||||
border: 1px solid var(--gray-300);
|
||||
border-radius: var(--border-radius-lg);
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.empty-state-text {
|
||||
flex: 1;
|
||||
margin-left: 1.25rem;
|
||||
}
|
||||
|
||||
.empty-state-heading {
|
||||
font-size: var(--text-xl);
|
||||
color: var(--text-color);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.sidebar-parent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 1.25rem 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
.sidebar-parent {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 400px) {
|
||||
.sidebar-parent {
|
||||
font-size: var(--text-sm);
|
||||
}
|
||||
}
|
||||
|
||||
.topic-author {
|
||||
color: var(--text-light);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.reply-section-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.reply-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.dismiss-reply {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.discussions-sidebar {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.card-divider {
|
||||
border-top: 1px solid var(--dark-border-color);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.reply-header .dropdown-menu {
|
||||
min-width: 7rem;
|
||||
}
|
||||
|
||||
.discussions-parent .ql-editor {
|
||||
border-radius: var(--border-radius-md);
|
||||
}
|
||||
|
||||
.mention {
|
||||
display: inline-block;
|
||||
height: auto;
|
||||
width: auto;
|
||||
border-radius: var(--border-radius-lg);
|
||||
border: 1px solid var(--border-color);
|
||||
padding: 2px 5px;
|
||||
font-size: var(--text-sm);
|
||||
background-color: var(--fg-color);
|
||||
}
|
||||
|
||||
.mention a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.ql-editor.read-mode .mention {
|
||||
background-color: var(--control-bg);
|
||||
}
|
||||
|
||||
.ql-editor.read-mode .mention a {
|
||||
color: inherit;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.discussion-form .form-group {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.discussions-parent .ql-editor.ql-blank::before {
|
||||
color: var(--gray-600);
|
||||
font-style: normal;
|
||||
}
|
||||
187
member_management/templates/styles/standard.css
Normal file
187
member_management/templates/styles/standard.css
Normal file
@@ -0,0 +1,187 @@
|
||||
@media screen {
|
||||
.print-format-gutter {
|
||||
background-color: #d1d8dd;
|
||||
padding: 30px 0px;
|
||||
}
|
||||
.print-format {
|
||||
background-color: white;
|
||||
border-radius: 8px;
|
||||
max-width: 8.3in;
|
||||
min-height: 11.69in;
|
||||
padding: 0.75in;
|
||||
margin: auto;
|
||||
color: var(--gray-900);
|
||||
}
|
||||
|
||||
.print-format.landscape {
|
||||
max-width: 11.69in;
|
||||
padding: 0.2in;
|
||||
}
|
||||
|
||||
.page-break {
|
||||
/* padding: 15px 0px; */
|
||||
border-bottom: 1px dashed #888;
|
||||
}
|
||||
|
||||
/* .page-break:first-child {
|
||||
padding-top: 0px;
|
||||
} */
|
||||
|
||||
.page-break:last-child {
|
||||
border-bottom: 0px;
|
||||
}
|
||||
|
||||
/* mozilla hack for images in table */
|
||||
body:last-child .print-format td img {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
@media(max-width: 767px) {
|
||||
.print-format {
|
||||
padding: 0.2in;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.print-format p {
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.disabled-check {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.data-field {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.data-field .value {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.important .value {
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.important label {
|
||||
line-height: 1.8;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.table {
|
||||
font-size: inherit;
|
||||
margin: 20px 0px;
|
||||
}
|
||||
|
||||
.checkbox-options {
|
||||
columns: var(--checkbox-options-columns);
|
||||
}
|
||||
|
||||
.square-image {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding: 50% 0;
|
||||
background-size: contain;
|
||||
/*background-size: cover;*/
|
||||
background-repeat: no-repeat !important;
|
||||
background-position: center center;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.print-item-image {
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.pdf-variables,
|
||||
.pdf-variable,
|
||||
.visible-pdf {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.print-format {
|
||||
font-size: {{ print_settings.font_size|flt or 9 }}pt;
|
||||
font-family: {{ font }};
|
||||
-webkit-print-color-adjust:exact;
|
||||
}
|
||||
|
||||
.page-break {
|
||||
page-break-after: always;
|
||||
}
|
||||
|
||||
.print-heading {
|
||||
border-bottom: 1px solid #aaa;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.print-heading h2 {
|
||||
margin: 0px;
|
||||
}
|
||||
.print-heading h4 {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
table.no-border, table.no-border td {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.print-format label {
|
||||
/* wkhtmltopdf breaks label into multiple lines when it is inline-block */
|
||||
display: block;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.print-format img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.print-format table td > .primary:first-child {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.print-format td, .print-format th {
|
||||
vertical-align: top !important;
|
||||
padding: 6px !important;
|
||||
}
|
||||
|
||||
.print-format p {
|
||||
margin: 3px 0px 3px;
|
||||
}
|
||||
|
||||
.print-format table td pre {
|
||||
white-space: normal;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
table td div {
|
||||
{% if not print_settings.allow_page_break_inside_tables %}
|
||||
/* needed to avoid partial cutting of text between page break in wkhtmltopdf */
|
||||
page-break-inside: avoid !important;
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
/* hack for webkit specific browser */
|
||||
@media (-webkit-min-device-pixel-ratio:0) {
|
||||
thead, tfoot {
|
||||
display: table-header-group;
|
||||
}
|
||||
}
|
||||
|
||||
[document-status] {
|
||||
margin-bottom: 5mm;
|
||||
}
|
||||
|
||||
.signature-img {
|
||||
background: #fff;
|
||||
border-radius: 3px;
|
||||
margin-top: 5px;
|
||||
max-height: 150px;
|
||||
}
|
||||
|
||||
.print-format-preview [data-fieldtype="Table"] {
|
||||
overflow: auto;
|
||||
}
|
||||
76
member_management/templates/web.html
Normal file
76
member_management/templates/web.html
Normal file
@@ -0,0 +1,76 @@
|
||||
{% extends base_template_path %}
|
||||
{% block hero %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% macro main_content() %}
|
||||
<div class="page-content-wrapper">
|
||||
<!-- breadcrumbs -->
|
||||
<div class="page-breadcrumbs">
|
||||
{% block breadcrumbs %}
|
||||
{% include 'templates/includes/breadcrumbs.html' %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
{% block page_container %}
|
||||
<main class="{% if not full_width %}container my-4{% endif %}">
|
||||
<div class="page-header-wrapper">
|
||||
<div class="page-header">
|
||||
{% block header %}{% endblock %}
|
||||
</div>
|
||||
|
||||
{% if self.header_actions() %}
|
||||
<div class="page-header-actions-block">
|
||||
{% block header_actions %}{% endblock %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="page_content">
|
||||
{%- block page_content -%}{%- endblock -%}
|
||||
</div>
|
||||
|
||||
<div class="page-footer">
|
||||
{%- block page_footer -%}{%- endblock -%}
|
||||
</div>
|
||||
</main>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro container_attributes() -%}
|
||||
id="page-{{ name or route | e }}" data-path="{{ pathname | e }}"
|
||||
{%- if page_or_generator=="Generator" %}source-type="Generator" data-doctype="{{ doctype }}"{%- endif %}
|
||||
{%- if source_content_type %}source-content-type="{{ source_content_type }}"{%- endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
{% macro sidebar() %}
|
||||
<div class="sidebar-column col-sm-{{ columns }}">
|
||||
{% block page_sidebar %}
|
||||
{% include "templates/includes/web_sidebar.html" %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% if show_sidebar %}
|
||||
<div class="container">
|
||||
<div class="row" {{ container_attributes() }}>
|
||||
{%- set columns = sidebar_columns or 2 -%}
|
||||
{%- if not sidebar_right -%}
|
||||
{{ sidebar() }}
|
||||
{%- endif -%}
|
||||
<div class="main-column col-sm-{{ 12 - columns }}">
|
||||
{{ main_content() }}
|
||||
</div>
|
||||
{%- if sidebar_right -%}
|
||||
{{ sidebar() }}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div {{ container_attributes() }}>
|
||||
{{ main_content() }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
6
member_management/www/profile-provisioning.html
Normal file
6
member_management/www/profile-provisioning.html
Normal file
@@ -0,0 +1,6 @@
|
||||
### List of Users
|
||||
|
||||
{% for user in users %}
|
||||
2. {{ user.first_name }} {{ user.get("last_name", "") }}
|
||||
|
||||
{% endfor %}
|
||||
5
member_management/www/profile-provisioning.py
Normal file
5
member_management/www/profile-provisioning.py
Normal file
@@ -0,0 +1,5 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_context(context):
|
||||
context.users = frappe.get_list("User", fields=["first_name", "last_name"])
|
||||
Reference in New Issue
Block a user