new feature: delete user including all other related records

This commit is contained in:
2023-11-16 10:56:29 +01:00
parent 6129b70f8a
commit c6057ff8f7
3 changed files with 21 additions and 3 deletions

View File

@@ -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()