refactor: support list view filters
diff --git a/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.json b/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.json
index a874b79..75cb358 100644
--- a/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.json
+++ b/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.json
@@ -2,6 +2,7 @@
  "actions": [],
  "allow_copy": 1,
  "creation": "2023-11-09 20:14:45.139593",
+ "default_view": "List",
  "doctype": "DocType",
  "engine": "InnoDB",
  "field_order": [
@@ -17,6 +18,8 @@
   {
    "fieldname": "date",
    "fieldtype": "Date",
+   "in_list_view": 1,
+   "in_standard_filter": 1,
    "label": "Date",
    "read_only": 1
   },
@@ -55,7 +58,7 @@
  "in_create": 1,
  "is_virtual": 1,
  "links": [],
- "modified": "2023-11-10 11:13:52.733076",
+ "modified": "2023-11-11 04:52:49.347376",
  "modified_by": "Administrator",
  "module": "Bulk Transaction",
  "name": "Bulk Transaction Log",
@@ -76,5 +79,6 @@
  ],
  "sort_field": "modified",
  "sort_order": "DESC",
- "states": []
+ "states": [],
+ "title_field": "date"
 }
\ No newline at end of file
diff --git a/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.py b/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.py
index 1a078b5..8ae54dd 100644
--- a/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.py
+++ b/erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.py
@@ -40,26 +40,33 @@
 
 	@staticmethod
 	def get_list(args):
-		log_detail = qb.DocType("Bulk Transaction Log Detail")
+		filter_date = parse_list_filters(args)
 		limit = cint(args.get("page_length")) or 20
-		dates = (
+		log_detail = qb.DocType("Bulk Transaction Log Detail")
+
+		dates_query = (
 			qb.from_(log_detail)
 			.select(log_detail.date)
 			.distinct()
 			.orderby(log_detail.date, order=Order.desc)
 			.limit(limit)
-			.run()
 		)
+		if filter_date:
+			dates_query = dates_query.where(log_detail.date == filter_date)
+		dates = dates_query.run()
 
-		transaction_logs = (
-			qb.from_(log_detail)
-			.select(log_detail.date.as_("date"), Count(log_detail.date).as_("count"))
-			.where(log_detail.date.isin(dates))
-			.orderby(log_detail.date, order=Order.desc)
-			.groupby(log_detail.date)
-			.limit(limit)
-			.run(as_dict=True)
-		)
+		transaction_logs = []
+		if dates:
+			transaction_logs_query = (
+				qb.from_(log_detail)
+				.select(log_detail.date.as_("date"), Count(log_detail.date).as_("count"))
+				.where(log_detail.date.isin(dates))
+				.orderby(log_detail.date, order=Order.desc)
+				.groupby(log_detail.date)
+				.limit(limit)
+			)
+			transaction_logs = transaction_logs_query.run(as_dict=True)
+
 		return [serialize_transaction_log(x) for x in transaction_logs]
 
 	@staticmethod
@@ -85,3 +92,14 @@
 		succeeded=data.succeeded,
 		failed=data.failed,
 	)
+
+
+def parse_list_filters(args):
+	# parse date filter
+	filter_date = None
+	for fil in args.get("filters"):
+		if isinstance(fil, list):
+			for elem in fil:
+				if elem == "date":
+					filter_date = fil[3]
+	return filter_date