D.h. ich fange nochmals neu an. und hoffe auf einwenig Hilfe wie die Strucktur sein könnte. Klar, nicht nur eine Lösungn ist die korrekte, aber mit einer guten Basis sollte man schon beginnen.
Log.txt sieht neu so aus:
Do;17.05.2018;07:02:59;Proj G
Do;17.05.2018;07:58:33;Proj C
Do;17.05.2018;11:58:58;MITTAG
Do;17.05.2018;12:26:01;Proj G
Do;17.05.2018;14:01:51;Proj I
Do;17.05.2018;15:40:05;Proj G
Do;17.05.2018;16:12:27;FEIERABEND
Fr;18.05.2018;07:00:20;Seminar A @Tag
Di;22.05.2018;07:00:01;Proj C
Di;22.05.2018;08:00:02;Proj G
Di;22.05.2018;09:29:00;Proj J
Di;22.05.2018;11:00:00;Proj I
Di;22.05.2018;12:00:00;MITTAG
Di;22.05.2018;12:30:00;Proj G
Di;22.05.2018;13:00:00;Proj B
Di;22.05.2018;15:00:04;Proj G
Di;22.05.2018;16:00:05;FEIERABEND
Mi;23.05.2018;07:02:08;Proj G
Mi;23.05.2018;07:20:20;Proj C
Mi;23.05.2018;07:23:46;Proj K
Mi;23.05.2018;07:49:29;Proj C
Mi;23.05.2018;07:49:38;Proj H
Mi;23.05.2018;07:49:47;Proj J
Mi;23.05.2018;07:49:50;Proj K
Mi;23.05.2018;11:22:06;Proj G
Mi;23.05.2018;11:51:40;MITTAG
Mi;23.05.2018;12:14:47;Proj G
Mi;23.05.2018;15:15:48;Proj I
Mi;23.05.2018;15:47:27;Proj C
Mi;23.05.2018;16:04:52;FEIERABEND
Do;14.06.2018;17:29:57;Seminar B @Tag
wypython als Gui sollte passen.
- Eintrag einer Zeile bassiert mit Button klick im MainFrame
- Die Buttons im MainFrame kommen aus der Log.txt datei. (Die letzen z.b. 20Eintrage, natürlich nur einmal aufgeführt.) Plus z.b. 3 Fixe wie Mittag, Feierabend und AddProject
Die Einträge in "log.txt" können analysiert werden. Kalender Start-Ende in einem z.b Grid. mit Angaben wie %Verteilung und h der Projekte über den Zeitraum, so wie die jeden Tages. D.h. es wird ein ChildFrame dafür benötigt.
Ich würde das so machen:
4 py-Dateien (MainFrame, ChildFrame, Filehaendler, Datahaender.)
jeder der Dateien hat eine Klasse.
Die Klasse MainFrame greift auf die Dataheander, die wiederum auf Filehaendler.
Idee dahinter ist. Filehandler liest die Anforderung welche aus Dataheander kommen aus. Dataheander rechnet sachen aus wie deltaTime oder Datum usw und übergibt das ganze an MainFrame. Mainframe spielt das dann ins Childframe bevor es dargestellt wird.
Einen Eintrag aus dem MainFrame(KlichButton) geht zum Datenhaender und dann zum Filehander. Grund: Feierabend ist z.b. time() +6min.
Dies hat den Vorteil, wenn ich mal von der txt Datei weggehe, muss ich den Rest nicht zu arg anpassen.
Ist das für das kleine Tool übertrieben? Die Namen der Klassen oder Dateien sind sicherlich falsch.
Ich habe mal angefange:
MainFramw.py
Code: Alles auswählen
class MainFrame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, pos=(7, 7),
size=(BREITE + 16, 12 * 27 + 330),
style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.RESIZE_BORDER)
self.CL_Datamanager = Datamanager
def fix_button(self):
def filebutton(self):
def menu_bar(self):
def main():
Code: Alles auswählen
class Datamanager():
def __init__(self):
self.CL_Logfilemanager = Logfilemanager
def get_data_filter_log(self, startDate ,endDate ):
def get_last_jobs(self):
def get_info(self):
def parse_logfile(self, logfile):
def write_in_file(self, event, name_fix=None):
...
Code: Alles auswählen
class Logfilemanager():
def get_log_file(self):
def filter_log(self, startDate, endDate):
def get_last_entry(self):
def get_last_jobs(self,how_many_jobs):
def write_in_file(self, eintrag):
def open_log_datei(self, event):
Code: Alles auswählen
class ChildFrameDatenliste(wx.Frame):
def grid_vormatieren(self, zeilenzahl):
def input_to_grids_frame_zusammenfassung(self, the_key, the_value, zeile, prozentualer_anteil, details_listen):
das ganz ist nicht komplett.
Jezt die Frage an euch, binn ich total daneben?