feat: Initialize App

This commit is contained in:
KabundiNjuki
2026-09-18 01:15:11 +03:00
parent 11aa5d0059
commit 9c0e1be973
12 changed files with 529 additions and 5 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
### Lukenya Marathon
Activity Management System
Activity Management Sytem
### Installation
+2 -2
View File
@@ -1,8 +1,8 @@
app_name = "lukenya_marathon"
app_title = "Lukenya Marathon"
app_publisher = "Digital Chances"
app_description = "Activity Management System"
app_email = "Josephnjuki@digitalchances.co.ke"
app_description = "Activity Management Sytem"
app_email = "josephnjuki@digitalchances.co.ke"
app_license = "mit"
# Apps
@@ -0,0 +1,108 @@
{
"actions": [],
"allow_rename": 1,
"autoname": "field:edition_code",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"edition_code",
"edition_name",
"event_date",
"registration_open",
"registration_close",
"status",
"venue",
"county",
"description",
"registration_capacity",
"trees_commitment_per_entry"
],
"fields": [
{
"fieldname": "edition_code",
"fieldtype": "Data",
"label": "Edition Code",
"reqd": 1,
"unique": 1
},
{
"fieldname": "edition_name",
"fieldtype": "Data",
"label": "Edition Name",
"reqd": 1
},
{
"fieldname": "event_date",
"fieldtype": "Date",
"label": "Event Date",
"reqd": 1
},
{
"fieldname": "registration_open",
"fieldtype": "Datetime",
"label": "Registration Open"
},
{
"fieldname": "registration_close",
"fieldtype": "Datetime",
"label": "Registration Close"
},
{
"default": "Draft",
"fieldname": "status",
"fieldtype": "Select",
"label": "Status",
"options": "Draft\nOpen\nClosed\nCompleted\nCancelled",
"reqd": 1
},
{
"fieldname": "venue",
"fieldtype": "Data",
"label": "Venue",
"reqd": 1
},
{
"fieldname": "county",
"fieldtype": "Data",
"label": "County"
},
{
"fieldname": "description",
"fieldtype": "Text Editor",
"label": "Public Description"
},
{
"fieldname": "registration_capacity",
"fieldtype": "Int",
"label": "Registration Capacity"
},
{
"default": "1",
"fieldname": "trees_commitment_per_entry",
"fieldtype": "Int",
"label": "Trees per Eligible Entry",
"reqd": 1
}
],
"links": [],
"module": "Lukenya Marathon",
"name": "Event Edition",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,133 @@
{
"actions": [],
"allow_rename": 1,
"autoname": "field:participant_code",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"participant_code",
"first_name",
"last_name",
"id_number",
"date_of_birth",
"gender",
"nationality",
"email",
"phone",
"whatsapp",
"shirt_size",
"emergency_contact_name",
"emergency_contact_phone",
"medical_notes",
"communication_consent"
],
"fields": [
{
"fieldname": "participant_code",
"fieldtype": "Data",
"label": "Participant Code",
"reqd": 1,
"unique": 1
},
{
"fieldname": "first_name",
"fieldtype": "Data",
"label": "First Name",
"reqd": 1
},
{
"fieldname": "last_name",
"fieldtype": "Data",
"label": "Last Name",
"reqd": 1
},
{
"fieldname": "id_number",
"fieldtype": "Data",
"label": "ID / Passport Number",
"unique": 1
},
{
"fieldname": "date_of_birth",
"fieldtype": "Date",
"label": "Date of Birth"
},
{
"fieldname": "gender",
"fieldtype": "Select",
"label": "Gender",
"options": "Male\nFemale\nOther\nPrefer not to say"
},
{
"default": "Kenya",
"fieldname": "nationality",
"fieldtype": "Data",
"label": "Nationality"
},
{
"fieldname": "email",
"fieldtype": "Data",
"label": "Email",
"options": "Email"
},
{
"fieldname": "phone",
"fieldtype": "Data",
"label": "Phone",
"reqd": 1
},
{
"fieldname": "whatsapp",
"fieldtype": "Data",
"label": "WhatsApp"
},
{
"fieldname": "shirt_size",
"fieldtype": "Select",
"label": "Shirt Size",
"options": "XS\nS\nM\nL\nXL\nXXL"
},
{
"fieldname": "emergency_contact_name",
"fieldtype": "Data",
"label": "Emergency Contact Name"
},
{
"fieldname": "emergency_contact_phone",
"fieldtype": "Data",
"label": "Emergency Contact Phone"
},
{
"fieldname": "medical_notes",
"fieldtype": "Small Text",
"label": "Medical / Accessibility Notes",
"permlevel": 1
},
{
"fieldname": "communication_consent",
"fieldtype": "Check",
"label": "Communication Consent"
}
],
"links": [],
"module": "Lukenya Marathon",
"name": "Participant",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,132 @@
{
"actions": [],
"allow_rename": 1,
"autoname": "field:category_code",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"category_code",
"category_name",
"event_edition",
"discipline",
"distance_km",
"start_time",
"cutoff_hours",
"eligibility",
"kenyan_price",
"non_resident_price",
"early_bird_price",
"capacity",
"active",
"prize_eligible",
"inclusions"
],
"fields": [
{
"fieldname": "category_code",
"fieldtype": "Data",
"label": "Category Code",
"reqd": 1,
"unique": 1
},
{
"fieldname": "category_name",
"fieldtype": "Data",
"label": "Category Name",
"reqd": 1
},
{
"fieldname": "event_edition",
"fieldtype": "Link",
"label": "Event Edition",
"options": "Event Edition",
"reqd": 1
},
{
"default": "Running",
"fieldname": "discipline",
"fieldtype": "Select",
"label": "Discipline",
"options": "Running\nCycling\nVirtual\nRelay",
"reqd": 1
},
{
"fieldname": "distance_km",
"fieldtype": "Float",
"label": "Distance (KM)"
},
{
"fieldname": "start_time",
"fieldtype": "Time",
"label": "Start Time"
},
{
"fieldname": "cutoff_hours",
"fieldtype": "Float",
"label": "Cut-off (Hours)"
},
{
"fieldname": "eligibility",
"fieldtype": "Small Text",
"label": "Eligibility Rules"
},
{
"fieldname": "kenyan_price",
"fieldtype": "Currency",
"label": "Kenyan Price",
"reqd": 1
},
{
"fieldname": "non_resident_price",
"fieldtype": "Currency",
"label": "Non-resident Price"
},
{
"fieldname": "early_bird_price",
"fieldtype": "Currency",
"label": "Early Bird Price"
},
{
"fieldname": "capacity",
"fieldtype": "Int",
"label": "Capacity"
},
{
"default": "1",
"fieldname": "active",
"fieldtype": "Check",
"label": "Active"
},
{
"fieldname": "prize_eligible",
"fieldtype": "Check",
"label": "Prize Eligible"
},
{
"fieldname": "inclusions",
"fieldtype": "Small Text",
"label": "Inclusions"
}
],
"links": [],
"module": "Lukenya Marathon",
"name": "Race Category",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,151 @@
{
"actions": [],
"allow_rename": 0,
"autoname": "format:REG-{####}",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"participant",
"event_edition",
"race_category",
"registration_status",
"registration_date",
"price_tier",
"amount_due",
"payment_status",
"payment_reference",
"bib_number",
"chip_number",
"race_pack_status",
"check_in_status",
"indemnity_accepted",
"consent_timestamp",
"transfer_notes"
],
"fields": [
{
"fieldname": "participant",
"fieldtype": "Link",
"label": "Participant",
"options": "Participant",
"reqd": 1
},
{
"fieldname": "event_edition",
"fieldtype": "Link",
"label": "Event Edition",
"options": "Event Edition",
"reqd": 1
},
{
"fieldname": "race_category",
"fieldtype": "Link",
"label": "Race Category",
"options": "Race Category",
"reqd": 1
},
{
"default": "Pending",
"fieldname": "registration_status",
"fieldtype": "Select",
"label": "Registration Status",
"options": "Pending\nConfirmed\nCancelled\nTransferred\nRefunded\nCompleted",
"reqd": 1
},
{
"fieldname": "registration_date",
"fieldtype": "Datetime",
"label": "Registration Date",
"default": "Now"
},
{
"default": "Standard",
"fieldname": "price_tier",
"fieldtype": "Select",
"label": "Price Tier",
"options": "Early Bird\nStandard\nNon-resident\nCorporate\nComplimentary"
},
{
"fieldname": "amount_due",
"fieldtype": "Currency",
"label": "Amount Due",
"reqd": 1
},
{
"default": "Unpaid",
"fieldname": "payment_status",
"fieldtype": "Select",
"label": "Payment Status",
"options": "Unpaid\nPending\nPaid\nFailed\nPartially Paid\nRefunded",
"reqd": 1
},
{
"fieldname": "payment_reference",
"fieldtype": "Data",
"label": "Payment Reference"
},
{
"fieldname": "bib_number",
"fieldtype": "Data",
"label": "Bib Number",
"unique": 1
},
{
"fieldname": "chip_number",
"fieldtype": "Data",
"label": "Chip Number",
"unique": 1
},
{
"default": "Not Issued",
"fieldname": "race_pack_status",
"fieldtype": "Select",
"label": "Race Pack Status",
"options": "Not Issued\nReady\nIssued\nCollected\nUncollected"
},
{
"default": "Not Checked In",
"fieldname": "check_in_status",
"fieldtype": "Select",
"label": "Check-in Status",
"options": "Not Checked In\nChecked In\nDid Not Start\nFinished"
},
{
"fieldname": "indemnity_accepted",
"fieldtype": "Check",
"label": "Indemnity Accepted",
"reqd": 1
},
{
"fieldname": "consent_timestamp",
"fieldtype": "Datetime",
"label": "Consent Timestamp"
},
{
"fieldname": "transfer_notes",
"fieldtype": "Small Text",
"label": "Transfer / Admin Notes"
}
],
"links": [],
"module": "Lukenya Marathon",
"name": "Registration",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
+2 -2
View File
@@ -1,9 +1,9 @@
[project]
name = "lukenya_marathon"
authors = [
{ name = "Digital Chances", email = "Josephnjuki@digitalchances.co.ke"}
{ name = "Digital Chances", email = "josephnjuki@digitalchances.co.ke"}
]
description = "Activity Management System"
description = "Activity Management Sytem"
requires-python = ">=3.10"
readme = "README.md"
dynamic = ["version"]