A guide for junior engineers on how the contribution system works.
There are 3 main doctypes that power the contribution system:
event_route = frappe.form_dict.route
event_doc = frappe.get_cached_doc("FE Event", {"route": event_route})
data.event_doc = event_doc
# Ticket Types
available_ticket_types = []| { | |
| "upcoming_events": [ | |
| { | |
| "name": 1, | |
| "title": "Frappeverse India 2025", | |
| "venue": "Nehru Centre Auditorium", | |
| "start_date": "2025-09-09", | |
| "banner_image": "/files/fv_banner.webp", | |
| "banner_url": "url(/files/fv_banner.webp)", | |
| "start_day": "09", |
| { | |
| "event_time_range": "09:00 AM - 07:00 PM", | |
| "event_date_range": "9 - 12 September, 2025", | |
| "event_doc": { | |
| "name": 1, | |
| "owner": "hussain@buildwithhussain.com", | |
| "creation": "2025-08-02 12:12:15.145300", | |
| "modified": "2025-08-04 17:24:46.012044", | |
| "modified_by": "hussain@buildwithhussain.com", | |
| "docstatus": 0, |
frappe.ui.form.on("Meeting", {
refresh(frm) {
// from frontend
// frm.fields_dict.time_zone.set_data(getSupportedTimzones());
// from backend
frm.call("get_supported_timezones").then(({message: timezones}) => {
frm.fields_dict.time_zone.set_data(timezones);
})| import random | |
| num_teams = 3 | |
| students = [ | |
| "Aman", | |
| "Manya", | |
| "Ritika", | |
| "Siddharth", | |
| "Khushbu", |
| x-custom-image: &custom_image | |
| image: ${IMAGE_NAME:-docker.io/frappe/erpnext}:${VERSION:-version-15} | |
| pull_policy: ${PULL_POLICY:-always} | |
| deploy: | |
| restart_policy: | |
| condition: always | |
| services: | |
| backend: | |
| <<: *custom_image |
| # documentation: https://docs.frappe.io/learning | |
| # slogan: Easy to Use, 100% Open Source Learning Management System. | |
| # tags: lms, self-hosted, dashboard | |
| # logo: svgs/frappe-learning.svg | |
| # port: 8080 | |
| name: frappe-learning | |
| version: '3.8' | |
| x-frappe-app-image: &frappe-app-image ghcr.io/frappe/lms:stable |
| old_wiki_site = "https://frappeframework.com" | |
| new_wiki_space_name = "1u8fslkdg6" # on this site | |
| old_site_wiki_space_name = "Unversioned docs" # on old site | |
| migration_settings = frappe.get_doc("Temp Wiki Migration") | |
| api_credentials = { | |
| "key": migration_settings.api_key, | |
| "secret": migration_settings.get_password("api_secret") |
| // Open bench folder in VS Code | |
| { | |
| // Use IntelliSense to learn about possible attributes. | |
| // Hover to view descriptions of existing attributes. | |
| // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | |
| "version": "0.2.0", | |
| "configurations": [ | |
| { | |
| "name": "Bench", |