new feature: remove works or movements from being mastered
This commit is contained in:
65
rep_cli.py
65
rep_cli.py
@@ -12,6 +12,7 @@ class Session:
|
||||
'h': (self.show_help, 'Displays this help document'),
|
||||
'm': (self.mark_work_as_mastered, 'Marks work or movement as mastered for the active user\n Usage: m number_of_work, m number_of_work number_of_movement'),
|
||||
'n': (self.create_new_user, 'Creates new user\n Usage: n firstname name'),
|
||||
'r': (self.remove_work_as_mastered, 'Unmarks work or movement as mastered for the active user\n Usage: r number_of_work, r number_of_work number_of_movement'),
|
||||
's': (self.show_works, 'Show the works stored in the database\n Usage: s, s number_of_composer'),
|
||||
'sm': (self.show_mastered, 'Show mastered movements for activated user'),
|
||||
'smo': (self.show_mastered_opus, 'Show mastered movements for activated user, sorted by opus.'),
|
||||
@@ -193,25 +194,63 @@ class Session:
|
||||
return fun_resultstring
|
||||
|
||||
def mark_work_as_mastered(self, arguments):
|
||||
work_id = arguments[0]
|
||||
resultstring = 'adding:\n'
|
||||
work = work_under_id(work_id, self.db_agent)
|
||||
if len(arguments) > 1: # in case there is a movement number given
|
||||
mov_number = int(arguments[1])
|
||||
sql_command = f'''
|
||||
INSERT INTO is_able_to_play (work_id, mov_id, pianist_id)
|
||||
VALUES ({work_id}, {mov_number}, {self.user})
|
||||
'''
|
||||
self.db_agent.execute(sql_command)
|
||||
resultstring += f'{work.pretty_mov(mov_number)}\n'
|
||||
else: # mark all movements of the work as mastered
|
||||
for mov_number in work.values['movements'].keys():
|
||||
if self.user == -1:
|
||||
resultstring = 'Please activate user'
|
||||
else:
|
||||
work_id = arguments[0]
|
||||
resultstring = 'adding:\n'
|
||||
work = work_under_id(work_id, self.db_agent)
|
||||
if len(arguments) > 1: # in case there is a movement number given
|
||||
mov_number = int(arguments[1])
|
||||
sql_command = f'''
|
||||
INSERT INTO is_able_to_play (work_id, mov_id, pianist_id)
|
||||
VALUES ({work_id}, {mov_number}, {self.user})
|
||||
'''
|
||||
self.db_agent.execute(sql_command)
|
||||
resultstring += f'{work.pretty_mov(mov_number)}\n'
|
||||
else: # mark all movements of the work as mastered
|
||||
for mov_number in work.values['movements'].keys():
|
||||
sql_command = f'''
|
||||
INSERT INTO is_able_to_play (work_id, mov_id, pianist_id)
|
||||
VALUES ({work_id}, {mov_number}, {self.user})
|
||||
'''
|
||||
self.db_agent.execute(sql_command)
|
||||
resultstring += f'{work.pretty_mov(mov_number)}\n'
|
||||
return resultstring
|
||||
|
||||
def remove_work_as_mastered(self, arguments):
|
||||
if self.user == -1:
|
||||
resultstring = 'Please activate user'
|
||||
else:
|
||||
work_id = arguments[0]
|
||||
resultstring = 'removing:\n'
|
||||
work = work_under_id(work_id, self.db_agent)
|
||||
if len(arguments) > 1: # in case there is a movment number given
|
||||
mov_number = int(arguments[1])
|
||||
if self.movement_is_mastered(work_id, mov_number):
|
||||
sql_command = f'''
|
||||
DELETE FROM is_able_to_play
|
||||
WHERE work_id = {work_id}
|
||||
AND mov_id = {mov_number}
|
||||
AND pianist_id = {self.user}
|
||||
'''
|
||||
self.db_agent.execute(sql_command)
|
||||
resultstring += f'{work.pretty_mov(mov_number)}\n'
|
||||
else:
|
||||
resultstring += f'Movement was not marked as mastered: {work.pretty_mov(mov_number)}\n'
|
||||
else:
|
||||
for mov_number in work.values['movements'].keys():
|
||||
if self.movement_is_mastered(work_id, mov_number):
|
||||
sql_command = f'''
|
||||
DELETE FROM is_able_to_play
|
||||
WHERE work_id = {work_id}
|
||||
AND mov_id = {mov_number}
|
||||
AND pianist_id = {self.user}
|
||||
'''
|
||||
self.db_agent.execute(sql_command)
|
||||
resultstring += f'{work.pretty_mov(mov_number)}\n'
|
||||
else:
|
||||
resultstring += f'Movement was not marked as mastered: {work.pretty_mov(mov_number)}\n'
|
||||
return resultstring
|
||||
|
||||
def quit(self, _):
|
||||
|
||||
Reference in New Issue
Block a user