diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.json b/erpnext/hr/doctype/holiday_list/holiday_list.json
index 48e0844..af68b47 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.json
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.json
@@ -1,5 +1,6 @@
 {
  "allow_import": 1, 
+ "autoname": "field:holiday_list_name", 
  "creation": "2013-01-10 16:34:14", 
  "docstatus": 0, 
  "doctype": "DocType", 
@@ -13,7 +14,8 @@
    "oldfieldname": "holiday_list_name", 
    "oldfieldtype": "Data", 
    "permlevel": 0, 
-   "reqd": 1
+   "reqd": 1, 
+   "unique": 1
   }, 
   {
    "fieldname": "is_default", 
@@ -72,7 +74,7 @@
  ], 
  "icon": "icon-calendar", 
  "idx": 1, 
- "modified": "2014-05-09 02:16:38.887266", 
+ "modified": "2014-11-25 15:42:22.419054", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Holiday List", 
diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.py b/erpnext/hr/doctype/holiday_list/holiday_list.py
index 496c930..b1dec84 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.py
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.py
@@ -11,9 +11,6 @@
 from frappe.model.document import Document
 
 class HolidayList(Document):
-	def autoname(self):
-		self.name = make_autoname(self.fiscal_year + "/" + self.holiday_list_name + "/.###")
-
 	def validate(self):
 		self.update_default_holiday_list()
 
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js
index c383cdd..fbc3cc9 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.js
+++ b/erpnext/manufacturing/doctype/production_order/production_order.js
@@ -58,9 +58,9 @@
 	bom_no: function() {
 		return this.frm.call({
 			doc: this.frm.doc,
-			method: "get_production_order_operations",
+			method: "set_production_order_operations",
 			callback: function(r) {
-				if(!r.exc) refresh_field("get_production_order_operations");
+				if(!r.exc) refresh_field("production_order_operations");
 			}
 		});
 	},
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py
index e9e5d8b..aa204f0 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/production_order.py
@@ -145,7 +145,7 @@
 		from erpnext.stock.utils import update_bin
 		update_bin(args)
 
-	def get_production_order_operations(self):
+	def set_production_order_operations(self):
 		self.set('production_order_operations', [])
 		operations = frappe.db.sql("""select operation, opn_description, workstation, hour_rate, time_in_mins, 
 			operating_cost, fixed_cycle_cost from `tabBOM Operation` where parent = %s""", self.bom_no, as_dict=1)
@@ -230,5 +230,6 @@
 	time_log.operation= operation
 	time_log.qty= qty
 	time_log.workstation= workstation
-	time_log.calculate_total_hours()
+	if from_time and to_time :
+		time_log.calculate_total_hours()
 	return time_log
\ No newline at end of file
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index fd407e6..799cfac 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -67,7 +67,7 @@
 		})
 
 
-		prod_order.get_production_order_operations()
+		prod_order.set_production_order_operations()
 		prod_order.production_order_operations[0].update({
 			"planned_start_time": "2014-11-25 00:00:00",
 			"planned_end_time": "2014-11-25 10:00:00" 
diff --git a/erpnext/manufacturing/doctype/production_order_operation/production_order_operation.json b/erpnext/manufacturing/doctype/production_order_operation/production_order_operation.json
index b6d42c7..5e12c80 100644
--- a/erpnext/manufacturing/doctype/production_order_operation/production_order_operation.json
+++ b/erpnext/manufacturing/doctype/production_order_operation/production_order_operation.json
@@ -262,6 +262,7 @@
    "precision": ""
   }, 
   {
+   "allow_on_submit": 1, 
    "fieldname": "make_time_log", 
    "fieldtype": "Button", 
    "label": "Make Time Log", 
@@ -276,7 +277,7 @@
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
- "modified": "2014-11-13 16:47:31.015973", 
+ "modified": "2014-11-25 13:34:10.697445", 
  "modified_by": "Administrator", 
  "module": "Manufacturing", 
  "name": "Production Order Operation", 
diff --git a/erpnext/manufacturing/doctype/workstation/test_workstation.py b/erpnext/manufacturing/doctype/workstation/test_workstation.py
index 1df661b..24d2334 100644
--- a/erpnext/manufacturing/doctype/workstation/test_workstation.py
+++ b/erpnext/manufacturing/doctype/workstation/test_workstation.py
@@ -7,9 +7,9 @@
 test_dependencies = ["Warehouse"]
 test_records = frappe.get_test_records('Workstation')
 
-
 class TestWorkstation(unittest.TestCase):
 
 	def test_validate_timings(self):
 		wks = frappe.get_doc("Workstation", "_Test Workstation 1")
 		self.assertEqual(1,wks.check_workstation_for_operation_time("2013-02-01 05:00:00", "2013-02-02 20:00:00"))
+		self.assertEqual(None,wks.check_workstation_for_operation_time("2013-02-03 10:00:00", "2013-02-03 20:00:00"))
diff --git a/erpnext/projects/doctype/time_log/time_log.py b/erpnext/projects/doctype/time_log/time_log.py
index 84430e9..ffbd8f3 100644
--- a/erpnext/projects/doctype/time_log/time_log.py
+++ b/erpnext/projects/doctype/time_log/time_log.py
@@ -4,7 +4,7 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
-import frappe
+import frappe, json
 from frappe import _
 from frappe.utils import cstr, cint, comma_and
 
@@ -135,23 +135,31 @@
 			parent=%s and operation = %s""", (idx, production_order, operation), as_dict=1)[0]
 
 @frappe.whitelist()
-def get_events(start, end):
+def get_events(start, end, filters=None):
 	from frappe.desk.reportview import build_match_conditions
 	if not frappe.has_permission("Time Log"):
 		frappe.msgprint(_("No Permission"), raise_exception=1)
 
 	match = build_match_conditions("Time Log")
-	data = frappe.db.sql("""select name, from_time, to_time,
-		activity_type, task, project from `tabTime Log`
-		where from_time between '%(start)s' and '%(end)s' or to_time between '%(start)s' and '%(end)s'
-		%(match)s""" % {
-			"start": start,
-			"end": end,
-			"match": match and (" and " + match) or ""
-		}, as_dict=True, update={"allDay": 0})
+	
+	conditions = build_match_conditions("Time Log")
+	conditions = conditions and (" and " + conditions) or ""
+	if filters:
+		filters = json.loads(filters)
+		for key in filters:
+			if filters[key]:
+				conditions += " and " + key + ' = "' + filters[key].replace('"', '\"') + '"'
 
+	data = frappe.db.sql("""select name, from_time, to_time,
+		activity_type, task, project, production_order, workstation from `tabTime Log`
+		where ( from_time between %(start)s and %(end)s or to_time between %(start)s and %(end)s )
+		{conditions}""".format(conditions=conditions), {
+			"start": start,
+			"end": end
+			}, as_dict=True, update={"allDay": 0})
+	
 	for d in data:
-		d.title = d.name + ": " + (d.activity_type or "[Activity Type not set]")
+		d.title = d.name + ": " + (d.activity_type or d.production_order or "")
 		if d.task:
 			d.title += " for Task: " + d.task
 		if d.project:
diff --git a/erpnext/projects/doctype/time_log/time_log_calendar.js b/erpnext/projects/doctype/time_log/time_log_calendar.js
index 5b947ef..1808c0c 100644
--- a/erpnext/projects/doctype/time_log/time_log_calendar.js
+++ b/erpnext/projects/doctype/time_log/time_log_calendar.js
@@ -9,5 +9,14 @@
 		"title": "title",
 		"allDay": "allDay"
 	},
+	gantt: true,
+	filters: [
+		{
+			"fieldtype": "Link",
+			"fieldname": "workstation",
+			"options": "Workstation",
+			"label": __("Workstation")
+		},
+	],
 	get_events_method: "erpnext.projects.doctype.time_log.time_log.get_events"
 }
\ No newline at end of file
