Merge pull request #20596 from PratikM34/develop

fix: restricted duplicate topics on Course doctype (#20594)
diff --git a/erpnext/education/doctype/course/course.js b/erpnext/education/doctype/course/course.js
index e31ba72..6932989 100644
--- a/erpnext/education/doctype/course/course.js
+++ b/erpnext/education/doctype/course/course.js
@@ -6,21 +6,21 @@
 			}
 			frappe.set_route("List", "Program");
 		});
-		
+
 		frm.add_custom_button(__("Student Group"), function() {
 			frappe.route_options = {
 				course: frm.doc.name
 			}
 			frappe.set_route("List", "Student Group");
 		});
-		
+
 		frm.add_custom_button(__("Course Schedule"), function() {
 			frappe.route_options = {
 				course: frm.doc.name
 			}
 			frappe.set_route("List", "Course Schedule");
 		});
-		
+
 		frm.add_custom_button(__("Assessment Plan"), function() {
 			frappe.route_options = {
 				course: frm.doc.name
@@ -36,4 +36,17 @@
 			}
 		}
 	});
-});
\ No newline at end of file
+});
+
+frappe.ui.form.on('Course Topic', {
+	topics_add: function(frm){
+		frm.fields_dict['topics'].grid.get_field('topic').get_query = function(doc){
+			var topics_list = [];
+			if(!doc.__islocal) topics_list.push(doc.name);
+			$.each(doc.topics, function(idx, val){
+				if (val.topic) topics_list.push(val.topic);
+			});
+			return { filters: [['Topic', 'name', 'not in', topics_list]] };
+		};
+	}
+});