Beschreibt eine Tätigkeit bzw. Teilprojekt bzw. Aufgabe, die zu konkreten Zeiten getan werden kann bzw. auf die Zeiten gebucht werden können
Projektnamen eintragen oder ändern. Hier wird geprüft, ob das Projekt sich ändert und in diesem Fall wird der Task aus dem anderen Projekt entfernt werden
Update ONLY the projectName member
Change name of task
@classmethod
Gibt die nächste ID-Nummer zurück, die für den nächsten Task vergeben wird
@classmethod
find task with return None if found nothing
@classmethod
find first task with return None if found nothing
Remove Task by given id. Remove it from associated Project What to do with associated actions?
@classmethod
Construct beautiful string of all tasks
@classmethod
Return the List of AllTasks __all_tasks
@classmethod
construct list of dicts of all tasks for usage in UI return list of dict of all tasks
create new action with this task at given return created action
create new action with this task now return created action
@classmethod
create stopper action with id == 0 at given return created action None, if task with id==0 dont exists
Kopiert und ändert das dict mit den Attributen der Klasse, so dass JSON damit klar kommt
@classmethod
create JSON with all tasks return JSON String
@classmethod
Read all tasks from JSON file and make sure, there is always a task["0"] return Dictionary of new generated Tasks
@classmethod
@classmethod
Deep copy __all_tasks into new dict return dict with all tasks
Beschreibt ein Projekt, zu dem mehrere Taten gehören können
Fügt einen Task zu einem Project hinzu, d.h. ein weiterer Eintrag im Dictionary. KEINE CHECKS
Löscht einen Task aus einem Project KEINE CHECKS
Remove this Project and remove it from all associated tasks
Rename this project and update all associated tasks
Hübscher Ausdruck aller Tasks im Project
@classmethod
returns the dict with all projects
@classmethod
returns a sorted (by name) list of Project Objects -> they have no id!
UI freundliche Liste mit allen Tasks als String erstellen return list of dicts of strings of all tasks of this project
@classmethod
return the task with given keys in this project
return number of tasks in this project
Kopiert und ändert das self.dict mit den Attributen der Klasse, so dass JSON damit klar kommt return modifizierte Kopie des self.dict
@classmethod
Schreibt alle Projects in eine Datei - Bereits doppeltes Schreiben in Dateien entfernt return JSON String In der aktuellen Arbeitsversion
@classmethod
Read projects from JSON file return Dictionary mit den neuen Projekten
return
Sammelt die Actions und verwaltet die Einträge und kann vermutlich auch zukünftig Berichte erstellen
Eine Action anfügen ohne Prüfung z.B. auf Doppelte Einträge bzw. Einträge mit zu geringem Abstand Neuer Name analog list.append wegen Konsistenz Kein Test ob act != None -> das geht nämlich nicht!
TODO to be discontinued
Eine Action aus der Liste der Aktionen entfernen
Die Action zu einer bestimmten Zeit aus der Liste der Aktionen entfernen
delete the action with given id and time return: found action None if nothing found
Die Action zwischen zwei Zeitpunkten o <= action < o aus der Liste der Aktionen entfernen Benutzt findBetween return Anzahl der gelöschten Objekte
return
sortiere die Liste der Actions nach _start (=Zeit)
Finde den ersten Eintrag, die erste Action, mit genau der Uhrzeit / oder besser Zeitdifferenz <= 1 Sekunde? return: die gefundene Action
collect action around given time return: Neues Calender Objekt mit den gefundenen Actions, reverse order
collect actions with self._start >= start und self._start < end return: new calender object with only found actions, NON reverse order
collect all actions with given Task._id <search_task> return: new calender object with only found actions, NON reverse order
Zeiten in einem kompletten Kalenderobject je Task sammeln, addieren und auf Minuten runden return Dictionary mit Task._id als Index und als Wert eine Liste Minuten, Task._name, Task._projektName
Call CalcDuration and write csv to
Addding times for actions in this calender and build a list of dict, that fits the needs of the Pythonista UI
Create monthly report in month of return dict with tasks and their monthly duration in minutes
save actions in month of in own CSV at given and remove them from calender
useful for cleanup of to large calenders return ?
create list of actions at given day in UI friendly format return created list
create new action with given task at given ' return new action
create new action with given task today at given hh:mm' return new action
Save the Calender Data to CSV filename .cal.csv
check if __dirty check if file exists, then copy to *bak.csv
write calender with all actions into given as csv return number of written actions
Read calender - all actions - out of csv file with given and build up all necessary objects into this calender
what happens if in action referenced task cant be found? ignored!
Save the tasks data to json filename .tasks.json
check if file exists, then copy to *bak.json
Load the tasks data from json filename .tasks.json
Save the tasks data to json filename .prj.json
check if file exists, then copy to *bak.csv
Load the projects data from json filename .tasks.json