From 83c1d82387e37527db0c60e6781c37ad0b8cfeac Mon Sep 17 00:00:00 2001 From: Jan Bertram Date: Wed, 8 Nov 2023 12:46:49 +0100 Subject: [PATCH] New feature: `m number_of_work number_of_movement` marks single movements as mastered --- README.md | 3 ++- rep_cli.py | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b95d256..0ee3482 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ At the moment, an alpha version is undertaken, with these features: - Mark pieces as mastered for the active user (`m number_of_work`) - Show pieces by composer (`sc` shows composers, `c number_of_composer` shows pieces) - Show movements through pieces (`sp piece_number`) -- (planned) Mark movement as mastered for active user +- Mark movement as mastered for active user (`m number_of_work number_of_movement`) +- (planned) Show mastered works/movements for activated user - (planned) Save recordings per movement in db - (planned) Listen to saved recordings diff --git a/rep_cli.py b/rep_cli.py index b02d393..e3c51ae 100644 --- a/rep_cli.py +++ b/rep_cli.py @@ -32,7 +32,7 @@ class Session: elif command == 'c': self.resultstring += self.show_composers() elif command == 'm': - self.resultstring += self.mark_work_as_mastered(arguments[0]) + self.resultstring += self.mark_work_as_mastered(arguments) elif command == 'n': self.create_new_user(arguments[0], arguments[1]) self.resultstring += f'Created new user {arguments[0]} {arguments[1]}.' @@ -104,16 +104,26 @@ class Session: fun_resultstring += f'{work.id()}: {work.pretty_string()}\n' return fun_resultstring - def mark_work_as_mastered(self, work_id): + def mark_work_as_mastered(self, arguments): + work_id = arguments[0] resultstring = 'adding:\n' work = work_under_id(work_id, self.db_agent) - for mov_number in work.values['movements'].keys(): + if len(arguments) > 1: + 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: + 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 # End session