Fixed end and resume issues. Added logging functions.
authorEugen Sawin <sawine@me73.com>
Tue, 05 Oct 2010 14:44:31 +0200
changeset 9fab8e1981155
parent 8 42c4c96e3ecd
child 10 37ab6d0ddb30
Fixed end and resume issues. Added logging functions.
cronrec.py
db.py
     1.1 --- a/cronrec.py	Fri Oct 01 23:23:26 2010 +0200
     1.2 +++ b/cronrec.py	Tue Oct 05 14:44:31 2010 +0200
     1.3 @@ -94,19 +94,20 @@
     1.4  	project = None
     1.5  	activity = None
     1.6  	label = args.label.strip()
     1.7 +	log = args.m
     1.8  	if ":" in label:
     1.9  		project, activity = label.split(":")
    1.10  	else:
    1.11  		project = label
    1.12  	time = datetime.now()
    1.13 -	db.resume(db_file(), None, None, time)
    1.14 -	db.end(db_file(), project, activity, time)	
    1.15 +	db.resume(db_file(), db.find_active_task(db_file()), time, log)
    1.16 +	db.end(db_file(), project, activity, time, log)	
    1.17  
    1.18  def pause(args):
    1.19  	db.pause(db_file(), None, None, datetime.now())	 
    1.20  
    1.21  def resume(args):
    1.22 -	db.resume(db_file(), None, None, datetime.now())	
    1.23 +	db.resume(db_file(), None, None, datetime.now(), args.m)	
    1.24  
    1.25  def status(args):
    1.26  	task = db.status(db_file())
    1.27 @@ -131,10 +132,10 @@
    1.28  
    1.29  	sub_end = subs.add_parser("end")
    1.30  	sub_end.add_argument("label", type=str, nargs="?", default="all:all")
    1.31 +	sub_end.add_argument("-m", type=str)
    1.32  	sub_end.set_defaults(func=end)
    1.33  
    1.34  	sub_end = subs.add_parser("pause")
    1.35 -	sub_end.add_argument("-m", type=str)
    1.36  	sub_end.set_defaults(func=pause)
    1.37  
    1.38  	sub_end = subs.add_parser("resume")
     2.1 --- a/db.py	Fri Oct 01 23:23:26 2010 +0200
     2.2 +++ b/db.py	Tue Oct 05 14:44:31 2010 +0200
     2.3 @@ -170,7 +170,7 @@
     2.4  def activity_id(db_file, name):
     2.5  	return row_id(db_file, "activities", name)
     2.6  
     2.7 -def end(db_file, project, activity, time):
     2.8 +def end(db_file, project, activity, time, log):
     2.9  	print "ending: %s:%s" % (project, activity)
    2.10  	if activity or project:		
    2.11  		if not activity:
    2.12 @@ -180,11 +180,12 @@
    2.13  		
    2.14  		con, cur = session(db_file)
    2.15  		if activity == "all" and project == "all":
    2.16 -			values = (time,)
    2.17 -			sql = "update tasks set end=? where end is null"
    2.18 +			values = (time, log)
    2.19 +			sql = "update tasks set end=?, log=? where end is null"
    2.20  		else:
    2.21 -			values = (time, project_id(db_file, project), activity_id(db_file, activity))
    2.22 -			sql = "update tasks set end=? where project=? and activity=?"
    2.23 +			values = (time, log, project_id(db_file, project), 
    2.24 +						activity_id(db_file, activity))
    2.25 +			sql = "update tasks set end=?, log=? where project=? and activity=?"
    2.26  		cur.execute(sql, values)
    2.27  		con.commit()
    2.28  		cur.close()
    2.29 @@ -199,7 +200,7 @@
    2.30  	elif not activity:
    2.31  			activity = DEF_ACTIVITY
    2.32  	if activity != last_activity or project != last_project:
    2.33 -		end(db_file, last_project, last_activity, time)
    2.34 +		end(db_file, last_project, last_activity, time, None)
    2.35  		con, cur = session(db_file)
    2.36  		values = (time, None, project_id(db_file, project), 
    2.37  					activity_id(db_file, activity), None)
    2.38 @@ -220,26 +221,21 @@
    2.39  def pause(db_file, project, activity, time):
    2.40  	print "pausing" 
    2.41  	if not is_paused(db_file, time):
    2.42 -		project = find_last_project(db_file, time) 
    2.43 -		activity = find_last_activity(db_file, time)
    2.44 +		task = find_active_task(db_file)
    2.45  		con, cur = session(db_file)
    2.46 -		values = (time, None, project_id(db_file, project), 
    2.47 -					activity_id(db_file, activity), None)
    2.48 -		sql = "insert into breaks values(?, ?, ?, ?, ?)"
    2.49 +		values = (time, None, task, None)
    2.50 +		sql = "insert into breaks values(?, ?, ?, ?)"
    2.51  		cur.execute(sql, values)
    2.52  		con.commit()
    2.53  		cur.close()
    2.54  	test(db_file)
    2.55  
    2.56 -def resume(db_file, project, activity, time):
    2.57 +def resume(db_file, task, time, log):
    2.58  	print "resuming"
    2.59 -	if is_paused(db_file, time):
    2.60 -		task = find_active_task(db_file)
    2.61 -		activity = find_last_activity(db_file, time)
    2.62 -		project = find_last_project(db_file, time) 			
    2.63 +	if is_paused(db_file, time):		
    2.64  		con, cur = session(db_file)
    2.65 -		values = (time, project_id(db_file, project), activity_id(db_file, activity))
    2.66 -		sql = "update breaks set end=? where project=? and activity=?"
    2.67 +		values = (time, log, task)
    2.68 +		sql = "update breaks set end=?, log=? where task=?"
    2.69  		cur.execute(sql, values)
    2.70  		con.commit()
    2.71  		cur.close()