Merge branch 'develop' into payment-terms

This commit is contained in:
tunde 2017-10-09 10:11:05 +01:00
commit e27f5dee1f
6 changed files with 111 additions and 12 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -1,13 +1,14 @@
# Student Admission
The admission process begins with filling the admission form. The Student Admission record enables to intitate your admission process for a given **Academic year**. ERPNext admission module allow you to create an admission record which can be then published on the ERPNext generate website.
The admission process begins with filling the admission form. The Student Admission record enables to initiate your admission process for a given **Academic year**. ERPNext admission module allows you to create an admission record which can be then published on the ERPNext generate website.
To create a Student Admission record go to :
**Schools** >> **Admissions** >> **Student Admission** >>
<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/student/student-admission.gif">
<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/admission/student-admission.gif">
Once an admission record is created, the age eligibility criteria can be determined for the every program. Similarly, you can also determine the application fee and naming series for every student applicant. If you keep the naming series blank then the default naming series will be applied for every student applicant.
Once a admission record is created it can be published on the website and the student can apply from the web portal itself.
The information provided in the Student Admission records will be used for the validation and creation of the Student Admission records (only if student admission link is filled there)

View File

@ -73,6 +73,37 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.type == 'Seminar' || doc.type == 'Workshop' || doc.type == 'Conference' || doc.type == 'Exam'",
"fieldname": "has_certificate",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Has Certificate",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@ -133,6 +164,38 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.type == 'Seminar' || doc.type == 'Workshop' || doc.type == 'Exam'",
"fieldname": "level",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Level",
"length": 0,
"no_copy": 0,
"options": "\nBeginner\nExpert\nAdvance",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@ -715,7 +778,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-10-05 05:57:08.212658",
"modified": "2017-10-06 10:59:09.217283",
"modified_by": "Administrator",
"module": "HR",
"name": "Training Event",

View File

@ -450,6 +450,7 @@ erpnext.patches.v8_9.set_default_fields_in_variant_settings
erpnext.patches.v8_9.update_billing_gstin_for_indian_account
erpnext.patches.v9_0.fix_subscription_next_date
erpnext.patches.v9_0.set_schedule_date_for_material_request_and_purchase_order
erpnext.patches.v9_0.student_admission_childtable_migrate
erpnext.patches.v8_10.add_due_date_to_gle
erpnext.patches.v8_10.update_gl_due_date_for_pi_and_si
erpnext.patches.v8_10.add_payment_terms_field_to_supplier

View File

@ -0,0 +1,28 @@
# Copyright (c) 2017, Frappe and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
def execute():
frappe.reload_doc('schools', 'doctype', 'Student Admission Program')
frappe.reload_doctype('Student Admission')
if "program" not in frappe.db.get_table_columns("Student Admission"):
return
student_admissions = frappe.get_all("Student Admission", fields=["name", "application_fee", \
"naming_series_for_student_applicant", "program", "introduction", "eligibility"])
for student_admission in student_admissions:
doc = frappe.get_doc("Student Admission", student_admission.name)
doc.append("program_details", {
"program": student_admission.get("program"),
"application_fee": student_admission.get("application_fee"),
"applicant_naming_series": student_admission.get("naming_series_for_student_applicant"),
})
if student_admission.eligibility and student_admission.introduction:
doc.introduction = student_admission.introduction + "<br><div>" + \
student_admission.eligibility + "</div>"
doc.flags.ignore_validate = True
doc.flags.ignore_mandatory = True
doc.save()

View File

@ -11,23 +11,29 @@ QUnit.test('Test: Student Admission', function(assert) {
{admission_start_date: '2016-04-20'},
{admission_end_date: '2016-05-31'},
{title: '2016-17 Admissions'},
{program: 'Standard Test'},
{application_fee: 1000},
{naming_series_for_student_applicant: 'AP'},
{application_form_route: 'student-applicant'},
{introduction: 'Test intro'},
{eligibility: 'Test eligibility'}
{program_details: [
[
{'program': 'Standard Test'},
{'application_fee': 1000},
{'applicant_naming_series': 'AP'},
]
]}
]);
},
() => cur_frm.save(),
() => {
assert.ok(cur_frm.doc.academic_year == '2016-17');
assert.ok(cur_frm.doc.admission_start_date == '2016-04-20');
assert.ok(cur_frm.doc.admission_end_date == '2016-05-31');
assert.ok(cur_frm.doc.title == '2016-17 Admissions');
assert.ok(cur_frm.doc.program == 'Standard Test', 'Program correctly selected');
assert.ok(cur_frm.doc.application_fee == 1000);
assert.ok(cur_frm.doc.naming_series_for_student_applicant == 'AP');
assert.ok(cur_frm.doc.application_form_route == 'student-applicant');
assert.ok(cur_frm.doc.introduction == 'Test intro');
assert.ok(cur_frm.doc.eligibility == 'Test eligibility');
assert.ok(cur_frm.doc.program_details[0].program == 'Standard Test', 'Program correctly selected');
assert.ok(cur_frm.doc.program_details[0].application_fee == 1000);
assert.ok(cur_frm.doc.program_details[0].applicant_naming_series == 'AP');
assert.ok(cur_frm.doc.route == 'admissions/2016-17-Admissions', "Route successfully set");
},
() => done()
]);