Improve update
This commit is contained in:
38
project.py
38
project.py
@@ -10,9 +10,8 @@ import sys
|
||||
import action
|
||||
|
||||
class Project:
|
||||
def __init__(self, status = ''):
|
||||
self.id = 0
|
||||
self.name = ''
|
||||
def __init__(self, status = None):
|
||||
self.name = None
|
||||
self.status = status
|
||||
|
||||
def __str__(self):
|
||||
@@ -47,19 +46,16 @@ def handle_project(args, last_action, conn):
|
||||
sys.exit(1)
|
||||
|
||||
project = Project()
|
||||
project.id = last_action.project_id
|
||||
|
||||
if args[1].isdigit():
|
||||
if int(args[1]) == project.id:
|
||||
print('nothing to update')
|
||||
sys.exit(1)
|
||||
project.id = int(args[1])
|
||||
project_id = int(args[1])
|
||||
parse_project_args(project, args[2:])
|
||||
else:
|
||||
project_id = last_action.project_id
|
||||
parse_project_args(project, args[1:])
|
||||
logging.debug('Project: {}'.format(project))
|
||||
logging.debug('Project: ({}) {}'.format(project_id, project))
|
||||
|
||||
edit_project(project, conn)
|
||||
edit_project(project, project_id, conn)
|
||||
# TODO To set as active project, us a -a option?
|
||||
|
||||
elif args[0] == '-d':
|
||||
@@ -140,31 +136,29 @@ def create_project(project, conn):
|
||||
|
||||
print('created project {}: {} (status: {})'.format(project_id, project.name, project.status))
|
||||
|
||||
def edit_project(project, conn):
|
||||
def edit_project(project, project_id, conn):
|
||||
logging.info('>> Edit project')
|
||||
|
||||
update_args = {}
|
||||
if project.status:
|
||||
update_args['status'] = project.status
|
||||
if project.name:
|
||||
update_args['name'] = project.name
|
||||
update_args = [item for item in project.__dict__.items() if item[1] is not None]
|
||||
|
||||
logging.debug('Project update args: {}'.format(update_args))
|
||||
|
||||
query = 'UPDATE project SET {} WHERE id = ?'
|
||||
query = query.format(', '.join("%s = '%s'" % (k, v) for k, v in update_args.items()))
|
||||
query = query.format(', '.join("%s = '%s'" % (k, v) for k, v in update_args))
|
||||
logging.debug('update project query: ' + query)
|
||||
|
||||
cursor = conn.cursor()
|
||||
if update_args:
|
||||
logging.debug('Do a project update')
|
||||
cursor.execute(query, (project.id,))
|
||||
cursor.execute(query, (project_id,))
|
||||
|
||||
log_args = ', '.join("%s: '%s'" % (k, v) for k, v in update_args.items())
|
||||
print('updated project {}: ({})'.format(project.id, log_args))
|
||||
log_args = ', '.join("%s: '%s'" % (k, v) for k, v in update_args)
|
||||
print('updated project {}: ({})'.format(project_id, log_args))
|
||||
else:
|
||||
print('updated project {}: set as active project'.format(project.id))
|
||||
print('updated project {}: set as active project'.format(project_id))
|
||||
# TODO If not project ID to set active
|
||||
|
||||
action.create_action(cursor, project.id, message = 'update ' + str(update_args))
|
||||
action.create_action(cursor, project_id, message = 'update ' + str(update_args))
|
||||
|
||||
def delete_project(project_id, conn):
|
||||
logging.info('>> Remove project')
|
||||
|
||||
Reference in New Issue
Block a user