BDHZ3KKWECPDK4K2AIJK24OCMBTNRMHI2HZEZ7QCVD4PCRFKYIZQC RD7LCMKKGBJSAN6SCXO53NFOQU5FDD4NIZYPFZC4RCULGANUJGVAC X4IMZYRHWHEPF5AU5BIKKPGJERG5GESUY4AHW7BITG2Z46M4ZEYAC TQPQVWNKJLT43UDQN2I4AXWXUMGSAS7XE52SFONZO2PPYII3TFTQC UEMLM7XK4TAKNYTPVOIVUIVHAGM3WQ43UZS5RXXX737HMC56OVSQC QUBL4AG3IUUZG4SRXYXA25FW75TPLCU2YUK7YT2PUD5HVRSOYSSAC NB466DF6BIGPDGOIRKCIX42O3OIEQPNPO4S2P3BJU5RMEMQNPMHAC XZJAOJPGTOZ4MB4SWMFJ7TYDZK2W3NIMG2EIEKJQOCGJ6XCMNX2AC HVOGLDAD5AL6LNIVN7M4TUG5AHMZ7KQH263JOQBQZJRKZNWRNKMQC 5HWKQX4YXODU2TSA6MU34B7RXHTWI5EJFVTWZ43XCZ3YYYICN3XAC ZRE5AXS2KLCL5INIEY7LLHR74T7LTECGVA5UEK6EPLABCK6YEUOQC QEFSRGBJYXDKRA4BQF63AQJ776CTB5WA5DEPBMQKMGT2XXEY7ZNQC ## this file should implement A manager class for reading, writing and deleting to/from files.## Also it should convert the extracted information to the proper type.## the operations that should be implemented are CRUD "Create - Read - Update - Delete"Author: Zee93
this file should implement A manager class for reading, writing to/from files.Author:Zee93
with open('data/' + fname + '.json', 'r+') as p_file:projects = json.load(p_file)return [project for project in projects]
with open('data/' + fname + '.json', 'r') as p_file:objects = json.load(p_file)return objects
with open('data/projects.json', 'r+') as p_file:projects = json.load(p_file)p_file.seek(0)p_file.truncate()projects.update({p_name: project})p_file.write(simplejson.dumps(projects, indent=4))with open('data/logs/{}.json'.format(p_name), 'w') as p_file:p_file.write('[]')
projects = FileManager.read('projects')projects.update({p_name: project})FileManager.update(projects)FileManager.update('logs/{}'.format(p_name), mode='w')
with open('data/projects.json', 'r+') as p_file:projects = json.load(p_file)if projects.get(p_name) == None:print("We don't have a project with this name dear.")return 0projects.get(p_name)["state"] = "ON"p_file.seek(0)p_file.truncate()p_file.write(simplejson.dumps(projects, indent=4))
projects = FileManager.read('projects')if projects.get(p_name) == None:print("We don't have a project with this name dear.")return 0projects.get(p_name)["state"] = "ON"FileManager.update('projects', projects)
with open('data/logs/{}.json'.format(p_name), 'r+') as logs_file:logs = json.load(logs_file)logs_file.seek(0)logs_file.truncate()logs.append({'start': str(now), 'end': 'Not yet.'})logs_file.write(simplejson.dumps(logs, indent=4))
logs = FileManager.read('logs/{}'.format(p_name))logs.append({'start': str(now), 'end': 'Not yet.', 'date': '00/00/00'})FileManager.update('logs/{}'.format(p_name), logs)
with open('data/settings.json', 'r+') as settings_file:settings = json.load(settings_file)settings_file.seek(0)settings_file.truncate()settings["working on"] = p_namesettings_file.write(simplejson.dumps(settings, indent=4, sort_keys=True))
# put the project in workon in the settings file.settings = FileManager.read('setting')settings["working on"] = p_nameFileManager.update('settings', settings)
with open('data/logs/{}.json'.format(p_name), 'r+') as logs_file:logs = json.load(logs_file)logs_file.seek(0)logs_file.truncate()if logs[-1]["end"] != "Not yet.":print("Error. Either you don't have a running log or\the program is writing on the wrong log instance.")logs_file.write(simplejson.dumps(logs, indent=4))return 0logs[-1]["end"] = str(now)logs_file.write(simplejson.dumps(logs, indent=4))start = Time()start.set_string(logs[-1]["start"])elapsed_time = now.minues(start)
logs = FileManager.read('logs/{}'.format(p_name))if logs[-1]["end"] != "Not yet.":print("Error. Either you don't have a running log or\the program is writing on the wrong log instance.")return 0logs[-1]["end"] = str(now)FileManager.update('logs/{}'.format(p_name), logs)start = Time()start.set_string(logs[-1]["start"])elapsed_time = now.minues(start)
# ADD THE LAPSED TIME.with open('data/projects.json', 'r+') as p_file:projects = json.load(p_file)project = projects.get(p_name)project["state"] = "OFF"total_time = Time()total_time.set_string(project["total_spent_time"])total_time.add_time(elapsed_time)project["total_spent_time"] = str(total_time)projects[p_name] = projectp_file.seek(0)p_file.truncate()p_file.write(simplejson.dumps(projects, indent=4))
# ADD THE ELAPSED TIME.projects = FileManager.read('projects')workon_project = projects.get(p_name)workon_project["state"] = "OFF"total_time = Time()total_time.set_string(workon_project["total_spent_time"])total_time.add_time(elapsed_time)print("Elapsed time: " + str(elapsed_time))workon_project["total_spent_time"] = str(total_time)projects[p_name] = workon_projectFileManager.update('projects', projects)