refactor: renamed app to school

This commit is contained in:
Jannat Patel
2021-10-11 20:31:27 +05:30
parent 13022e0bcc
commit d07dbcc50a
466 changed files with 2497 additions and 146 deletions
+35
View File
@@ -0,0 +1,35 @@
The Hackathon module allows Community Members to organize and manage hackathons. Community Members can view these hackathons on the portal.
<img class="screenshot" src="/community/hackathon/images/hackathons-portal.png">
### Key Features:
##### Organize Hackathons
1. Hackathons can be created using the **Community Hackathon** doctype.
1. Enter the hackathon name, the organizer, the year and Save.
<img class="screenshot" src="/community/hackathon/images/community-hackathon.png">
##### Projects
1. A Hackathon will have multiple Projects.
1. Projects can be created using the **Community Project** doctype from the desk.
1. Projects can also be created from the Portal using the Projects webform.
1. Enter details like Project Name, Project Short Intro, Project Description.
1. Attach important links like Repository Link, Demo Link, Telegram Id.
1. The checkbox Accepting Members can be used if you are still aceepting members for your project.
<img class="screenshot" src="/community/hackathon/images/project-1.png">
<img class="screenshot" src="/community/hackathon/images/project-2.png">
1. Projects are visible on the portal as well.
<img class="screenshot" src="/community/hackathon/images/project-portal.png">
<img class="screenshot" src="/community/hackathon/images/project-details.png">
##### Project Members
1. Community Members can explore the projects of hackathons and decide if they want to join any project.
1. If the project is accepting members they can apply for the project from the web form available on the portal.
<img class="screenshot" src="/community/hackathon/images/project-join-request.png">
1. Project owners can review the requests and accept/reject the members.
View File
@@ -0,0 +1,8 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('Community Hackathon', {
// refresh: function(frm) {
// }
});
@@ -0,0 +1,60 @@
{
"actions": [],
"autoname": "field:hackathon_name",
"creation": "2021-02-17 12:40:25.604012",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"hackathon_name",
"organizer",
"year"
],
"fields": [
{
"fieldname": "hackathon_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Hackathon Name",
"reqd": 1,
"unique": 1
},
{
"fieldname": "organizer",
"fieldtype": "Link",
"label": "Organizer",
"options": "User"
},
{
"fieldname": "year",
"fieldtype": "Select",
"label": "Year",
"options": "\n2021\n2022\n2023\n2024\n2025"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-05-21 12:22:26.619776",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "Community Hackathon",
"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,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
# import frappe
from frappe.model.document import Document
class CommunityHackathon(Document):
pass
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and Contributors
# See license.txt
from __future__ import unicode_literals
# import frappe
import unittest
class TestCommunityHackathon(unittest.TestCase):
pass
@@ -0,0 +1,8 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('Community Project', {
// refresh: function(frm) {
// }
});
@@ -0,0 +1,144 @@
{
"actions": [],
"allow_import": 1,
"autoname": "field:project_name",
"creation": "2021-02-12 18:28:33.440328",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"disabled",
"column_break_2",
"accepting_members",
"section_break_4",
"project_name",
"project_short_intro",
"project_description",
"section_break_8",
"repository_link",
"video_link",
"column_break_11",
"hackathon",
"telegram_id",
"likes",
"project_search"
],
"fields": [
{
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disabled"
},
{
"fieldname": "project_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Project Name",
"reqd": 1,
"unique": 1
},
{
"fieldname": "project_short_intro",
"fieldtype": "Small Text",
"label": "Project Short Intro"
},
{
"fieldname": "repository_link",
"fieldtype": "Small Text",
"label": "Repository Link"
},
{
"fieldname": "video_link",
"fieldtype": "Data",
"label": "Video Link"
},
{
"fieldname": "telegram_id",
"fieldtype": "Data",
"label": "Telegram Id"
},
{
"fieldname": "project_description",
"fieldtype": "Markdown Editor",
"label": "Project Description"
},
{
"fieldname": "hackathon",
"fieldtype": "Link",
"label": "Hackathon",
"options": "Community Hackathon"
},
{
"default": "0",
"fieldname": "accepting_members",
"fieldtype": "Check",
"label": "Accepting Members"
},
{
"fieldname": "likes",
"fieldtype": "Int",
"label": "Likes",
"read_only": 1
},
{
"fieldname": "project_search",
"fieldtype": "Small Text",
"hidden": 1,
"label": "Project Search"
},
{
"fieldname": "column_break_2",
"fieldtype": "Column Break"
},
{
"fieldname": "section_break_4",
"fieldtype": "Section Break"
},
{
"fieldname": "section_break_8",
"fieldtype": "Section Break"
},
{
"fieldname": "column_break_11",
"fieldtype": "Column Break"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-04-20 13:22:17.248521",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "Community Project",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Participant",
"share": 1,
"write": 1
}
],
"quick_entry": 1,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
# import frappe
from frappe.model.document import Document
class CommunityProject(Document):
pass
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and Contributors
# See license.txt
from __future__ import unicode_literals
# import frappe
import unittest
class TestCommunityProject(unittest.TestCase):
pass
@@ -0,0 +1,8 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('Community Project Evaluation', {
// refresh: function(frm) {
// }
});
@@ -0,0 +1,169 @@
{
"actions": [],
"autoname": "format:EVAL-{#####}",
"creation": "2021-02-12 19:44:57.467599",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"project",
"status",
"evaluated_by",
"telegram_id",
"column_break_5",
"update",
"section_break_7",
"evaluation_comment",
"overall_rating",
"section_break_10",
"impact_of_project",
"completion",
"quality_of_code",
"quality_of_",
"column_break_15",
"difficulty",
"future_viability",
"total_score"
],
"fields": [
{
"fieldname": "project",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Project",
"options": "Community Project",
"reqd": 1
},
{
"fieldname": "status",
"fieldtype": "Select",
"label": "Status",
"options": "\nPending\nPreliminary\nComplete"
},
{
"fieldname": "evaluated_by",
"fieldtype": "Link",
"label": "Evaluated By",
"options": "User"
},
{
"fieldname": "telegram_id",
"fieldtype": "Small Text",
"label": "Telegram Id"
},
{
"fieldname": "column_break_5",
"fieldtype": "Column Break"
},
{
"fieldname": "update",
"fieldtype": "Small Text",
"in_list_view": 1,
"label": "Update",
"reqd": 1
},
{
"fieldname": "section_break_7",
"fieldtype": "Section Break"
},
{
"fieldname": "evaluation_comment",
"fieldtype": "Small Text",
"label": "Evaluation Comment"
},
{
"fieldname": "overall_rating",
"fieldtype": "Int",
"label": "Overall Rating"
},
{
"fieldname": "section_break_10",
"fieldtype": "Section Break",
"label": "Score"
},
{
"fieldname": "impact_of_project",
"fieldtype": "Int",
"label": "Impact of Project"
},
{
"fieldname": "completion",
"fieldtype": "Int",
"label": "Completion"
},
{
"fieldname": "quality_of_code",
"fieldtype": "Int",
"label": "Quality of Code"
},
{
"fieldname": "quality_of_",
"fieldtype": "Int",
"label": "Quality of Presentation"
},
{
"fieldname": "column_break_15",
"fieldtype": "Column Break"
},
{
"fieldname": "difficulty",
"fieldtype": "Int",
"label": "Difficulty"
},
{
"fieldname": "future_viability",
"fieldtype": "Int",
"label": "Future Viability"
},
{
"fieldname": "total_score",
"fieldtype": "Int",
"label": "Total Score"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-03-04 19:56:53.757808",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "Community Project Evaluation",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
},
{
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Participant",
"share": 1,
"write": 1
},
{
"create": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Evaluator",
"share": 1,
"write": 1
}
],
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
# import frappe
from frappe.model.document import Document
class CommunityProjectEvaluation(Document):
pass
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and Contributors
# See license.txt
from __future__ import unicode_literals
# import frappe
import unittest
class TestCommunityProjectEvaluation(unittest.TestCase):
pass
@@ -0,0 +1,8 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('Community Project Like', {
// refresh: function(frm) {
// }
});
@@ -0,0 +1,43 @@
{
"actions": [],
"creation": "2021-02-12 18:43:24.206708",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"project"
],
"fields": [
{
"fieldname": "project",
"fieldtype": "Link",
"label": "Project",
"options": "Community Project"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-03-04 18:55:51.877522",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "Community Project Like",
"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,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
# import frappe
from frappe.model.document import Document
class CommunityProjectLike(Document):
pass
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and Contributors
# See license.txt
from __future__ import unicode_literals
# import frappe
import unittest
class TestCommunityProjectLike(unittest.TestCase):
pass
@@ -0,0 +1,8 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('Community Project Member', {
// refresh: function(frm) {
// }
});
@@ -0,0 +1,77 @@
{
"actions": [],
"creation": "2021-02-12 18:36:08.324156",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"project",
"intro",
"status",
"project_owner"
],
"fields": [
{
"fieldname": "project",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Project",
"options": "Community Project",
"reqd": 1
},
{
"fieldname": "intro",
"fieldtype": "Small Text",
"in_list_view": 1,
"label": "Intro",
"reqd": 1
},
{
"default": "Pending",
"fieldname": "status",
"fieldtype": "Select",
"label": "Status",
"options": "Pending\nAccepted\nRejected"
},
{
"fieldname": "project_owner",
"fieldtype": "Data",
"label": "Project Owner",
"options": "Email"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-03-04 19:44:09.832170",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "Community Project Member",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
},
{
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Participant",
"share": 1
}
],
"quick_entry": 1,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
from frappe import _
class CommunityProjectMember(Document):
def validate(self):
self.validate_if_already_member()
def validate_if_already_member(self):
if frappe.get_all("Community Project Member", {"owner": self.owner}):
frappe.throw(_("You have already applied for the membership of this project."))
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and Contributors
# See license.txt
from __future__ import unicode_literals
# import frappe
import unittest
class TestCommunityProjectMember(unittest.TestCase):
pass
@@ -0,0 +1,8 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('Community Project Update', {
// refresh: function(frm) {
// }
});
@@ -0,0 +1,53 @@
{
"actions": [],
"creation": "2021-02-12 18:45:56.750969",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"project",
"update"
],
"fields": [
{
"fieldname": "project",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Project",
"options": "Community Project",
"reqd": 1
},
{
"fieldname": "update",
"fieldtype": "Markdown Editor",
"in_list_view": 1,
"label": "Update",
"reqd": 1
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-03-04 19:43:10.886773",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "Community Project Update",
"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,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
# import frappe
from frappe.model.document import Document
class CommunityProjectUpdate(Document):
pass
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2021, FOSS United and Contributors
# See license.txt
from __future__ import unicode_literals
# import frappe
import unittest
class TestCommunityProjectUpdate(unittest.TestCase):
pass
Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

@@ -0,0 +1,3 @@
frappe.ready(function() {
// bind events here
})
@@ -0,0 +1,64 @@
{
"accept_payment": 0,
"allow_comments": 0,
"allow_delete": 0,
"allow_edit": 0,
"allow_incomplete": 0,
"allow_multiple": 0,
"allow_print": 0,
"amount": 0.0,
"amount_based_on_field": 0,
"apply_document_permissions": 0,
"button_label": "Send Request",
"client_script": "$('.page-header h2').html(`Request to Join \"${frappe.utils.get_url_arg('project_name')}\"`);",
"creation": "2021-02-17 13:20:08.548735",
"doc_type": "Community Project Member",
"docstatus": 0,
"doctype": "Web Form",
"idx": 0,
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
"modified": "2021-04-14 13:52:46.135536",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "join-request",
"owner": "Administrator",
"payment_button_label": "Buy Now",
"published": 1,
"route": "join-request",
"route_to_success_link": 0,
"show_attachments": 0,
"show_in_grid": 0,
"show_sidebar": 0,
"sidebar_items": [],
"success_url": "/join-request",
"title": "Join Request",
"web_form_fields": [
{
"allow_read_on_all_link_options": 0,
"fieldname": "project",
"fieldtype": "Link",
"hidden": 0,
"label": "Project",
"max_length": 0,
"max_value": 0,
"options": "Community Project",
"read_only": 0,
"reqd": 1,
"show_in_filter": 0
},
{
"allow_read_on_all_link_options": 0,
"fieldname": "intro",
"fieldtype": "Small Text",
"hidden": 0,
"label": "Intro",
"max_length": 0,
"max_value": 0,
"read_only": 0,
"reqd": 1,
"show_in_filter": 0
}
]
}
@@ -0,0 +1,7 @@
from __future__ import unicode_literals
import frappe
def get_context(context):
# do your magic here
pass
@@ -0,0 +1,3 @@
frappe.ready(function() {
// bind events here
})
@@ -0,0 +1,49 @@
{
"accept_payment": 0,
"allow_comments": 0,
"allow_delete": 0,
"allow_edit": 1,
"allow_incomplete": 0,
"allow_multiple": 0,
"allow_print": 0,
"amount": 0.0,
"amount_based_on_field": 0,
"apply_document_permissions": 0,
"button_label": "Save",
"creation": "2021-04-14 13:11:50.606310",
"doc_type": "Community Project",
"docstatus": 0,
"doctype": "Web Form",
"idx": 0,
"introduction_text": "<div class=\"ql-editor read-mode\"><p>Add details about your project.</p><p><br></p><p><strong>Note:</strong> If you save this project, you won't be able to join another one. If your teammates have already created the project, join it instead.</p></div>",
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
"modified": "2021-04-14 13:11:50.606310",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "project",
"owner": "Administrator",
"payment_button_label": "Buy Now",
"published": 1,
"route": "edit-project",
"route_to_success_link": 0,
"show_attachments": 0,
"show_in_grid": 0,
"show_sidebar": 0,
"sidebar_items": [],
"success_url": "/project",
"title": "Project",
"web_form_fields": [
{
"allow_read_on_all_link_options": 0,
"fieldtype": "Attach",
"hidden": 0,
"max_length": 0,
"max_value": 0,
"read_only": 0,
"reqd": 0,
"show_in_filter": 0
}
]
}
@@ -0,0 +1,7 @@
from __future__ import unicode_literals
import frappe
def get_context(context):
# do your magic here
pass
@@ -0,0 +1,3 @@
frappe.ready(function() {
// bind events here
})
@@ -0,0 +1,63 @@
{
"accept_payment": 0,
"allow_comments": 0,
"allow_delete": 0,
"allow_edit": 0,
"allow_incomplete": 0,
"allow_multiple": 0,
"allow_print": 0,
"amount": 0.0,
"amount_based_on_field": 0,
"apply_document_permissions": 0,
"button_label": "Submit",
"creation": "2021-02-18 13:15:09.464515",
"doc_type": "Community Project Update",
"docstatus": 0,
"doctype": "Web Form",
"idx": 0,
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
"modified": "2021-03-04 19:43:28.957577",
"modified_by": "Administrator",
"module": "Hackathon",
"name": "project-update",
"owner": "Administrator",
"payment_button_label": "Buy Now",
"published": 1,
"route": "project-update",
"route_to_success_link": 0,
"show_attachments": 0,
"show_in_grid": 0,
"show_sidebar": 0,
"sidebar_items": [],
"success_url": "/project-update",
"title": "Project Update",
"web_form_fields": [
{
"allow_read_on_all_link_options": 0,
"fieldname": "project",
"fieldtype": "Link",
"hidden": 0,
"label": "Project",
"max_length": 0,
"max_value": 0,
"options": "Community Project",
"read_only": 0,
"reqd": 1,
"show_in_filter": 0
},
{
"allow_read_on_all_link_options": 0,
"fieldname": "update",
"fieldtype": "Data",
"hidden": 0,
"label": "Update",
"max_length": 0,
"max_value": 0,
"read_only": 0,
"reqd": 1,
"show_in_filter": 0
}
]
}
@@ -0,0 +1,7 @@
from __future__ import unicode_literals
import frappe
def get_context(context):
# do your magic here
pass