new feature: delete user including all other related records
This commit is contained in:
18
rep_cli.py
18
rep_cli.py
@@ -9,6 +9,7 @@ class Session:
|
||||
self.resultstring = 'no results yet'
|
||||
self.commands = {'a': (self.set_user, 'Set an active user\n Usage: a number_of_user'),
|
||||
'c': (self.show_composers, 'Shows composers'),
|
||||
'delete_my_user_record_including_all_mastered_works': (self.delete_user, 'DangerZone: deletes user and all marks of mastered works'),
|
||||
'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'),
|
||||
@@ -81,6 +82,21 @@ class Session:
|
||||
self.db_agent.execute(sql_command)
|
||||
return f'Created new user {first_name} {name}.'
|
||||
|
||||
def delete_user(self, _):
|
||||
resultstring = ''
|
||||
if self.user == -1:
|
||||
resultstring += 'Please activate user'
|
||||
else:
|
||||
user_name = self.get_active_user()
|
||||
sql_command = f'''
|
||||
DELETE FROM pianist
|
||||
WHERE id = {self.user}
|
||||
'''
|
||||
self.db_agent.execute(sql_command)
|
||||
resultstring += f'Deleted user {user_name}'
|
||||
return resultstring
|
||||
|
||||
|
||||
def show_composers(self, _):
|
||||
sql_command = '''
|
||||
SELECT id, first_name, name
|
||||
@@ -406,6 +422,8 @@ def command_line_loop(session):
|
||||
def main():
|
||||
con = sqlite3.connect('repertoire.db')
|
||||
db_agent = con.cursor()
|
||||
sql_command = 'PRAGMA foreign_keys = ON'
|
||||
db_agent.execute(sql_command)
|
||||
session = Session(db_agent)
|
||||
command_line_loop(session)
|
||||
con.commit()
|
||||
|
||||
Reference in New Issue
Block a user