renamed 'active' in Student Batch to 'enabled'
diff --git a/erpnext/schools/doctype/assessment/assessment.js b/erpnext/schools/doctype/assessment/assessment.js
index 828261a..e842f41 100644
--- a/erpnext/schools/doctype/assessment/assessment.js
+++ b/erpnext/schools/doctype/assessment/assessment.js
@@ -6,56 +6,46 @@
cur_frm.add_fetch("supervisor", "instructor_name", "supervisor_name");
cur_frm.add_fetch("student", "title", "student_name");
-frappe.ui.form.on("Assessment" ,{
- onload: function(frm){
- cur_frm.set_query("student_batch", function(){
- return{
- "filters": {
- "active": 1
- }
- };
- });
- },
-
- student_group : function(frm) {
- frm.set_value("results" ,"");
- if (frm.doc.student_group) {
- frappe.call({
- method: "erpnext.schools.api.get_student_group_students",
- args: {
- "student_group": frm.doc.student_group
- },
- callback: function(r) {
- if (r.message) {
- $.each(r.message, function(i, d) {
- var row = frappe.model.add_child(cur_frm.doc, "Assessment Result", "results");
- row.student = d.student;
- row.student_name = d.student_name;
- });
- }
- refresh_field("results");
- }
- });
- }
- }
+frappe.ui.form.on("Assessment", {
+ student_group: function(frm) {
+ frm.set_value("results", "");
+ if (frm.doc.student_group) {
+ frappe.call({
+ method: "erpnext.schools.api.get_student_group_students",
+ args: {
+ "student_group": frm.doc.student_group
+ },
+ callback: function(r) {
+ if (r.message) {
+ $.each(r.message, function(i, d) {
+ var row = frappe.model.add_child(cur_frm.doc, "Assessment Result", "results");
+ row.student = d.student;
+ row.student_name = d.student_name;
+ });
+ }
+ refresh_field("results");
+ }
+ });
+ }
+ }
});
-frappe.ui.form.on("Assessment Result" ,{
- result : function(frm, cdt, cdn) {
- if(frm.doc.grading_structure){
- var assessment_result = locals[cdt][cdn];
- frappe.call({
- method:"erpnext.schools.doctype.assessment.assessment.get_grade",
- args:{
- grading_structure: frm.doc.grading_structure,
- result: assessment_result.result
- },
- callback: function(r){
- if(r.message){
- frappe.model.set_value(cdt, cdn, 'grade', r.message);
- }
- }
- });
- }
- }
+frappe.ui.form.on("Assessment Result", {
+ result: function(frm, cdt, cdn) {
+ if (frm.doc.grading_structure) {
+ var assessment_result = locals[cdt][cdn];
+ frappe.call({
+ method: "erpnext.schools.doctype.assessment.assessment.get_grade",
+ args: {
+ grading_structure: frm.doc.grading_structure,
+ result: assessment_result.result
+ },
+ callback: function(r) {
+ if (r.message) {
+ frappe.model.set_value(cdt, cdn, 'grade', r.message);
+ }
+ }
+ });
+ }
+ }
});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/assessment/assessment.py b/erpnext/schools/doctype/assessment/assessment.py
index 95e224c..003b427 100644
--- a/erpnext/schools/doctype/assessment/assessment.py
+++ b/erpnext/schools/doctype/assessment/assessment.py
@@ -6,15 +6,11 @@
from frappe.model.document import Document
import frappe
from frappe import _
-from erpnext.schools.doctype.student_batch.student_batch import validate_active_student_batch
class Assessment(Document):
def validate(self):
self.validate_overlap()
- if self.student_batch:
- validate_active_student_batch(self.student_batch)
-
def validate_overlap(self):
"""Validates overlap for Student Group/Student Batch, Instructor, Room"""
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.js b/erpnext/schools/doctype/course_schedule/course_schedule.js
index 18acdb3..04a8cde 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.js
+++ b/erpnext/schools/doctype/course_schedule/course_schedule.js
@@ -1,145 +1,134 @@
frappe.provide("schools")
-frappe.ui.form.on("Course Schedule" ,{
- onload: function(frm) {
- if (frm.doc.from_datetime && frm.doc.to_datetime) {
- var from_datetime = moment(frm.doc.from_datetime);
- var to_datetime = moment(frm.doc.to_datetime);
- frm.doc.schedule_date = from_datetime.format(moment.defaultFormat);
- frm.doc.from_time = from_datetime.format("HH:mm:ss");
- frm.doc.to_time = to_datetime.format("HH:mm:ss");
- }
-
- cur_frm.set_query("student_batch", function(){
- return{
- "filters": {
- "active": 1
- }
- };
- });
- },
-
- refresh :function(frm) {
- if(!frm.doc.__islocal && frm.doc.student_group) {
- frappe.call({
- method: "erpnext.schools.api.check_attendance_records_exist",
- args: {
- "course_schedule": frm.doc.name
- },
- callback: function(r) {
- if(r.message) {
- hide_field('attendance');
- frm.events.view_attendance(frm)
- }
- else {
- frappe.call({
- method: "erpnext.schools.api.get_student_group_students",
- args: {
- "student_group": frm.doc.student_group
- },
- callback: function(r) {
- if (r.message) {
- frm.events.get_students(frm, r.message)
- }
- }
- });
- }
- }
- });
- }
- else {
- hide_field('attendance');
- }
- },
-
- view_attendance: function(frm) {
- hide_field('attendance');
- frm.add_custom_button(__("View attendance"), function() {
- frappe.route_options = {
- course_schedule: frm.doc.name
- }
- frappe.set_route("List", "Student Attendance");
- });
- },
-
- get_students: function(frm, students) {
- if(!frm.students_area) {
- frm.students_area = $('<div>')
- .appendTo(frm.fields_dict.students_html.wrapper);
- }
- frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
- }
+frappe.ui.form.on("Course Schedule", {
+ onload: function(frm) {
+ if (frm.doc.from_datetime && frm.doc.to_datetime) {
+ var from_datetime = moment(frm.doc.from_datetime);
+ var to_datetime = moment(frm.doc.to_datetime);
+ frm.doc.schedule_date = from_datetime.format(moment.defaultFormat);
+ frm.doc.from_time = from_datetime.format("HH:mm:ss");
+ frm.doc.to_time = to_datetime.format("HH:mm:ss");
+ }
+ },
+
+ refresh: function(frm) {
+ if (!frm.doc.__islocal && frm.doc.student_group) {
+ frappe.call({
+ method: "erpnext.schools.api.check_attendance_records_exist",
+ args: {
+ "course_schedule": frm.doc.name
+ },
+ callback: function(r) {
+ if (r.message) {
+ hide_field('attendance');
+ frm.events.view_attendance(frm)
+ } else {
+ frappe.call({
+ method: "erpnext.schools.api.get_student_group_students",
+ args: {
+ "student_group": frm.doc.student_group
+ },
+ callback: function(r) {
+ if (r.message) {
+ frm.events.get_students(frm, r.message)
+ }
+ }
+ });
+ }
+ }
+ });
+ } else {
+ hide_field('attendance');
+ }
+ },
+
+ view_attendance: function(frm) {
+ hide_field('attendance');
+ frm.add_custom_button(__("View attendance"), function() {
+ frappe.route_options = {
+ course_schedule: frm.doc.name
+ }
+ frappe.set_route("List", "Student Attendance");
+ });
+ },
+
+ get_students: function(frm, students) {
+ if (!frm.students_area) {
+ frm.students_area = $('<div>')
+ .appendTo(frm.fields_dict.students_html.wrapper);
+ }
+ frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
+ }
});
schools.StudentsEditor = Class.extend({
- init: function(frm, wrapper, students) {
- this.wrapper = wrapper;
- this.frm = frm;
- this.make(frm, students);
- },
- make: function(frm, students) {
- var me = this;
-
- $(this.wrapper).empty();
- var student_toolbar = $('<p>\
+ init: function(frm, wrapper, students) {
+ this.wrapper = wrapper;
+ this.frm = frm;
+ this.make(frm, students);
+ },
+ make: function(frm, students) {
+ var me = this;
+
+ $(this.wrapper).empty();
+ var student_toolbar = $('<p>\
<button class="btn btn-default btn-add btn-xs" style="margin-right: 5px;"></button>\
<button class="btn btn-xs btn-default btn-remove" style="margin-right: 5px;"></button>\
<button class="btn btn-default btn-primary btn-mark-att btn-xs"></button></p>').appendTo($(this.wrapper));
- student_toolbar.find(".btn-add")
- .html(__('Check all'))
- .on("click", function() {
- $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
- if(!$(check).is(":checked")) {
- check.checked = true;
- }
- });
- });
+ student_toolbar.find(".btn-add")
+ .html(__('Check all'))
+ .on("click", function() {
+ $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+ if (!$(check).is(":checked")) {
+ check.checked = true;
+ }
+ });
+ });
- student_toolbar.find(".btn-remove")
- .html(__('Uncheck all'))
- .on("click", function() {
- $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
- if($(check).is(":checked")) {
- check.checked = false;
- }
- });
- });
-
- student_toolbar.find(".btn-mark-att")
- .html(__('Mark Attendence'))
- .on("click", function() {
- var students_present = [];
- var students_absent = [];
- $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
- if($(check).is(":checked")) {
- students_present.push(students[i]);
- }
- else {
- students_absent.push(students[i]);
- }
- });
- frappe.call({
- method: "erpnext.schools.api.mark_attendance",
- args: {
- "students_present": students_present,
- "students_absent": students_absent,
- "course_schedule": frm.doc.name
- },
- callback: function(r) {
- frm.events.view_attendance(frm)
- }
- });
- });
+ student_toolbar.find(".btn-remove")
+ .html(__('Uncheck all'))
+ .on("click", function() {
+ $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+ if ($(check).is(":checked")) {
+ check.checked = false;
+ }
+ });
+ });
-
- $.each(students, function(i, m) {
- $(repl('<div class="col-sm-6">\
+ student_toolbar.find(".btn-mark-att")
+ .html(__('Mark Attendence'))
+ .on("click", function() {
+ var students_present = [];
+ var students_absent = [];
+ $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+ if ($(check).is(":checked")) {
+ students_present.push(students[i]);
+ } else {
+ students_absent.push(students[i]);
+ }
+ });
+ frappe.call({
+ method: "erpnext.schools.api.mark_attendance",
+ args: {
+ "students_present": students_present,
+ "students_absent": students_absent,
+ "course_schedule": frm.doc.name
+ },
+ callback: function(r) {
+ frm.events.view_attendance(frm)
+ }
+ });
+ });
+
+
+ $.each(students, function(i, m) {
+ $(repl('<div class="col-sm-6">\
<div class="checkbox">\
<label><input type="checkbox" class="students-check" student="%(student)s">\
%(student)s</label>\
- </div></div>', {student: m.student_name})).appendTo(me.wrapper);
- });
- }
+ </div></div>', { student: m.student_name })).appendTo(me.wrapper);
+ });
+ }
})
\ No newline at end of file
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.py b/erpnext/schools/doctype/course_schedule/course_schedule.py
index e312e9f..ec30c62 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.py
+++ b/erpnext/schools/doctype/course_schedule/course_schedule.py
@@ -6,7 +6,6 @@
import frappe
from frappe import _
from frappe.model.document import Document
-from erpnext.schools.doctype.student_batch.student_batch import validate_active_student_batch
class CourseSchedule(Document):
def validate(self):
@@ -17,9 +16,6 @@
self.set_student_batch()
self.validate_date()
self.validate_overlap()
-
- if self.student_batch:
- validate_active_student_batch(self.student_batch)
def set_title(self):
"""Set document Title"""
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
index 5ee41d0..ea62b8f 100644
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
@@ -8,24 +8,14 @@
cur_frm.add_fetch("student_group", "academic_term", "academic_term");
frappe.ui.form.on("Course Scheduling Tool", {
-
- refresh: function(frm) {
- frm.disable_save();
- frm.page.set_primary_action(__("Schedule Course"), function() {
- frappe.call({
- method: "schedule_course",
- doc:frm.doc
- })
- });
- },
-
- onload: function(frm){
- cur_frm.set_query("student_batch", function(){
- return{
- "filters": {
- "active": 1
- }
- };
- });
- }
+
+ refresh: function(frm) {
+ frm.disable_save();
+ frm.page.set_primary_action(__("Schedule Course"), function() {
+ frappe.call({
+ method: "schedule_course",
+ doc: frm.doc
+ })
+ });
+ }
});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.js b/erpnext/schools/doctype/student_attendance/student_attendance.js
index 679e05a..ec2a0cb 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.js
+++ b/erpnext/schools/doctype/student_attendance/student_attendance.js
@@ -2,16 +2,4 @@
// For license information, please see license.txt
cur_frm.add_fetch("course_schedule", "schedule_date", "date");
-cur_frm.add_fetch("course_schedule", "student_batch", "student_batch");
-
-frappe.ui.form.on('Student Attendance', {
- onload: function(frm){
- cur_frm.set_query("student_batch", function(){
- return{
- "filters": {
- "active": 1
- }
- };
- });
- }
-});
+cur_frm.add_fetch("course_schedule", "student_batch", "student_batch")
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.py b/erpnext/schools/doctype/student_attendance/student_attendance.py
index bb7b74a..45b3014 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.py
+++ b/erpnext/schools/doctype/student_attendance/student_attendance.py
@@ -6,7 +6,6 @@
import frappe
from frappe.model.document import Document
from frappe import _
-from erpnext.schools.doctype.student_batch.student_batch import validate_active_student_batch
class StudentAttendance(Document):
def validate(self):
@@ -14,9 +13,6 @@
self.validate_mandatory()
self.validate_duplication()
- if self.student_batch:
- validate_active_student_batch(self.student_batch)
-
def validate_date(self):
if self.course_schedule:
self.date = frappe.db.get_value("Course Schedule", self.course_schedule, "schedule_date")
diff --git a/erpnext/schools/doctype/student_batch/student_batch.json b/erpnext/schools/doctype/student_batch/student_batch.json
index bdbf5db..f571d9d 100644
--- a/erpnext/schools/doctype/student_batch/student_batch.json
+++ b/erpnext/schools/doctype/student_batch/student_batch.json
@@ -76,7 +76,7 @@
"collapsible": 0,
"columns": 0,
"default": "1",
- "fieldname": "active",
+ "fieldname": "enabled",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -309,7 +309,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2016-12-01 12:56:51.727827",
+ "modified": "2016-12-01 13:18:12.024001",
"modified_by": "Administrator",
"module": "Schools",
"name": "Student Batch",
diff --git a/erpnext/schools/doctype/student_batch/student_batch.py b/erpnext/schools/doctype/student_batch/student_batch.py
index a1bc3c3..1a0d799 100644
--- a/erpnext/schools/doctype/student_batch/student_batch.py
+++ b/erpnext/schools/doctype/student_batch/student_batch.py
@@ -6,7 +6,6 @@
from frappe.model.document import Document
from erpnext.schools.utils import validate_duplicate_student
import frappe
-from frappe import _
class StudentBatch(Document):
def autoname(self):
@@ -17,7 +16,3 @@
def validate(self):
validate_duplicate_student(self.students)
-
-def validate_active_student_batch(student_batch):
- if not frappe.db.get_value("Student Batch", student_batch, "active"):
- frappe.throw(_("Student Batch is not Active."))
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js b/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js
index 189361b..6dc9181 100644
--- a/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js
+++ b/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js
@@ -3,136 +3,124 @@
frappe.provide("schools")
frappe.ui.form.on('Student Batch Attendance Tool', {
- refresh: function(frm) {
- frm.disable_save();
- hide_field('attendance');
- },
-
- onload: function(frm){
- cur_frm.set_query("student_batch", function(){
- return{
- "filters": {
- "active": 1
- }
- };
- });
- },
-
- student_batch :function(frm) {
- if(frm.doc.student_batch && frm.doc.date) {
- frappe.call({
- method: "erpnext.schools.api.check_attendance_records_exist",
- args: {
- "student_batch": frm.doc.student_batch,
- "date": frm.doc.date
- },
- callback: function(r) {
- if(r.message) {
- frappe.msgprint("Attendance already marked.");
- hide_field('attendance');
- }
- else {
- frappe.call({
- method: "erpnext.schools.api.get_student_batch_students",
- args: {
- "student_batch": frm.doc.student_batch
- },
- callback: function(r) {
- if (r.message) {
- unhide_field('attendance');
- frm.events.get_students(frm, r.message)
- }
- }
- });
- }
- }
- });
- }
- },
-
- date: function(frm) {
- frm.trigger("student_batch");
- },
-
- get_students: function(frm, students) {
- if(!frm.students_area) {
- frm.students_area = $('<div>')
- .appendTo(frm.fields_dict.students_html.wrapper);
- }
- frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
- }
+ refresh: function(frm) {
+ frm.disable_save();
+ hide_field('attendance');
+ },
+
+ student_batch: function(frm) {
+ if (frm.doc.student_batch && frm.doc.date) {
+ frappe.call({
+ method: "erpnext.schools.api.check_attendance_records_exist",
+ args: {
+ "student_batch": frm.doc.student_batch,
+ "date": frm.doc.date
+ },
+ callback: function(r) {
+ if (r.message) {
+ frappe.msgprint("Attendance already marked.");
+ hide_field('attendance');
+ } else {
+ frappe.call({
+ method: "erpnext.schools.api.get_student_batch_students",
+ args: {
+ "student_batch": frm.doc.student_batch
+ },
+ callback: function(r) {
+ if (r.message) {
+ unhide_field('attendance');
+ frm.events.get_students(frm, r.message)
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+ },
+
+ date: function(frm) {
+ frm.trigger("student_batch");
+ },
+
+ get_students: function(frm, students) {
+ if (!frm.students_area) {
+ frm.students_area = $('<div>')
+ .appendTo(frm.fields_dict.students_html.wrapper);
+ }
+ frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
+ }
});
schools.StudentsEditor = Class.extend({
- init: function(frm, wrapper, students) {
- this.wrapper = wrapper;
- this.frm = frm;
- this.make(frm, students);
- },
- make: function(frm, students) {
- var me = this;
-
- $(this.wrapper).empty();
- var student_toolbar = $('<p>\
+ init: function(frm, wrapper, students) {
+ this.wrapper = wrapper;
+ this.frm = frm;
+ this.make(frm, students);
+ },
+ make: function(frm, students) {
+ var me = this;
+
+ $(this.wrapper).empty();
+ var student_toolbar = $('<p>\
<button class="btn btn-default btn-add btn-xs" style="margin-right: 5px;"></button>\
<button class="btn btn-xs btn-default btn-remove" style="margin-right: 5px;"></button>\
<button class="btn btn-default btn-primary btn-mark-att btn-xs"></button></p>').appendTo($(this.wrapper));
- student_toolbar.find(".btn-add")
- .html(__('Check all'))
- .on("click", function() {
- $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
- if(!$(check).is(":checked")) {
- check.checked = true;
- }
- });
- });
+ student_toolbar.find(".btn-add")
+ .html(__('Check all'))
+ .on("click", function() {
+ $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+ if (!$(check).is(":checked")) {
+ check.checked = true;
+ }
+ });
+ });
- student_toolbar.find(".btn-remove")
- .html(__('Uncheck all'))
- .on("click", function() {
- $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
- if($(check).is(":checked")) {
- check.checked = false;
- }
- });
- });
-
- student_toolbar.find(".btn-mark-att")
- .html(__('Mark Attendence'))
- .on("click", function() {
- var students_present = [];
- var students_absent = [];
- $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
- if($(check).is(":checked")) {
- students_present.push(students[i]);
- }
- else {
- students_absent.push(students[i]);
- }
- });
- frappe.call({
- method: "erpnext.schools.api.mark_attendance",
- args: {
- "students_present": students_present,
- "students_absent": students_absent,
- "student_batch": frm.doc.student_batch,
- "date": frm.doc.date
- },
- callback: function(r) {
- hide_field('attendance');
- }
- });
- });
+ student_toolbar.find(".btn-remove")
+ .html(__('Uncheck all'))
+ .on("click", function() {
+ $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+ if ($(check).is(":checked")) {
+ check.checked = false;
+ }
+ });
+ });
-
- $.each(students, function(i, m) {
- $(repl('<div class="col-sm-6">\
+ student_toolbar.find(".btn-mark-att")
+ .html(__('Mark Attendence'))
+ .on("click", function() {
+ var students_present = [];
+ var students_absent = [];
+ $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+ if ($(check).is(":checked")) {
+ students_present.push(students[i]);
+ } else {
+ students_absent.push(students[i]);
+ }
+ });
+ frappe.call({
+ method: "erpnext.schools.api.mark_attendance",
+ args: {
+ "students_present": students_present,
+ "students_absent": students_absent,
+ "student_batch": frm.doc.student_batch,
+ "date": frm.doc.date
+ },
+ callback: function(r) {
+ hide_field('attendance');
+ }
+ });
+ });
+
+
+ $.each(students, function(i, m) {
+ $(repl('<div class="col-sm-6">\
<div class="checkbox">\
<label><input type="checkbox" class="students-check" student="%(student)s">\
%(student)s</label>\
- </div></div>', {student: m.student_name})).appendTo(me.wrapper);
- });
- }
-});
+ </div></div>', { student: m.student_name })).appendTo(me.wrapper);
+ });
+ }
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_group/student_group.js b/erpnext/schools/doctype/student_group/student_group.js
index 1a3c682..6f4084b 100644
--- a/erpnext/schools/doctype/student_group/student_group.js
+++ b/erpnext/schools/doctype/student_group/student_group.js
@@ -1,44 +1,36 @@
cur_frm.add_fetch("student", "title", "student_name");
frappe.ui.form.on("Student Group", {
- refresh: function(frm) {
- if(!frm.doc.__islocal) {
- frm.add_custom_button(__("Course Schedule"), function() {
- frappe.route_options = {
- student_group: frm.doc.name
- }
- frappe.set_route("List", "Course Schedule");
- });
-
- frm.add_custom_button(__("Assessment"), function() {
- frappe.route_options = {
- student_group: frm.doc.name
- }
- frappe.set_route("List", "Assessment");
- });
- }
- },
-
- onload: function(frm){
- cur_frm.set_query("academic_term",function(){
- return{
- "filters":{
- "academic_year": (frm.doc.academic_year)
- }
- };
- });
-
- cur_frm.set_query("student_batch", function(){
- return{
- "filters": {
- "active": 1
- }
- };
- });
- }
+ refresh: function(frm) {
+ if (!frm.doc.__islocal) {
+ frm.add_custom_button(__("Course Schedule"), function() {
+ frappe.route_options = {
+ student_group: frm.doc.name
+ }
+ frappe.set_route("List", "Course Schedule");
+ });
+
+ frm.add_custom_button(__("Assessment"), function() {
+ frappe.route_options = {
+ student_group: frm.doc.name
+ }
+ frappe.set_route("List", "Assessment");
+ });
+ }
+ },
+
+ onload: function(frm) {
+ cur_frm.set_query("academic_term", function() {
+ return {
+ "filters": {
+ "academic_year": (frm.doc.academic_year)
+ }
+ };
+ });
+ }
});
//If Student Batch is entered, deduce program, academic_year and academic term from it
cur_frm.add_fetch("student_batch", "program", "program");
cur_frm.add_fetch("student_batch", "academic_term", "academic_term");
-cur_frm.add_fetch("student_batch", "academic_year", "academic_year");
+cur_frm.add_fetch("student_batch", "academic_year", "academic_year");
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_group/student_group.py b/erpnext/schools/doctype/student_group/student_group.py
index bfb2da7..f604773 100644
--- a/erpnext/schools/doctype/student_group/student_group.py
+++ b/erpnext/schools/doctype/student_group/student_group.py
@@ -7,7 +7,6 @@
from frappe.model.document import Document
from frappe import _
from erpnext.schools.utils import validate_duplicate_student
-from erpnext.schools.doctype.student_batch.student_batch import validate_active_student_batch
class StudentGroup(Document):
def autoname(self):
@@ -31,9 +30,6 @@
self.validate_strength()
self.validate_student_name()
validate_duplicate_student(self.students)
-
- if self.student_batch:
- validate_active_student_batch(self.student_batch)
def validate_strength(self):
if self.max_strength and len(self.students) > self.max_strength:
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.json b/erpnext/schools/report/absent_student_report/absent_student_report.json
index 26989d1..5f3ca71 100644
--- a/erpnext/schools/report/absent_student_report/absent_student_report.json
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.json
@@ -2,16 +2,17 @@
"add_total_row": 0,
"apply_user_permissions": 1,
"creation": "2013-05-13 14:04:03",
+ "disabled": 0,
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
- "modified": "2014-06-03 07:18:17.181332",
+ "modified": "2016-12-01 14:28:27.184668",
"modified_by": "Administrator",
"module": "Schools",
"name": "Absent Student Report",
"owner": "Administrator",
- "ref_doctype": "Attendance",
+ "ref_doctype": "Student Attendance",
"report_name": "Absent Student Report",
"report_type": "Script Report"
}
\ No newline at end of file
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
index 8fa8b79..1d8f4d0 100644
--- a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
+++ b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
@@ -2,16 +2,17 @@
"add_total_row": 0,
"apply_user_permissions": 1,
"creation": "2013-05-13 14:04:03",
+ "disabled": 0,
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
- "modified": "2014-06-03 07:18:17.181332",
+ "modified": "2016-12-01 14:29:53.547378",
"modified_by": "Administrator",
"module": "Schools",
"name": "Student Monthly Attendance Sheet",
"owner": "Administrator",
- "ref_doctype": "Attendance",
+ "ref_doctype": "Student Attendance",
"report_name": "Student Monthly Attendance Sheet",
"report_type": "Script Report"
}
\ No newline at end of file