--- a/TimeTracker/TimeTrackEntry.py Fri Oct 19 22:26:57 2012 +0200 +++ b/TimeTracker/TimeTrackEntry.py Sat Oct 20 12:34:26 2012 +0200 @@ -21,7 +21,8 @@ """ Constructor """ - self.__entryMembersCount = 4 + self.__entryMembersCount = 5 + self.__id = -1 self.__startDateTime = QDateTime() # start date and time self.__duration = 0 # duration in minutes self.__task = "" # task specification @@ -47,6 +48,7 @@ """ if self.__valid: dataLine = TimeTrackEntry.Separator.join([ + str(self.__id), self.__startDateTime.toString(Qt.ISODate), str(self.__duration), self.__task, @@ -61,32 +63,37 @@ Public method to populate the entry from the given string. @param line stringified entry data as generated by toString() (string) - @return flag indicating valid data + @return ID of the tracker entry; -1 indicates an error (integer) """ if not line.startswith(TimeTrackEntry.LineMarker): - return False + return -1 line = line.replace(TimeTrackEntry.LineMarker, "") dataList = line.split(TimeTrackEntry.Separator) if len(dataList) != self.__entryMembersCount: - return False + return -1 - dt = QDateTime.fromString(dataList[0], Qt.ISODate) + try: + self.__id = int(dataList[0]) + except ValueError: + return -1 + + dt = QDateTime.fromString(dataList[1], Qt.ISODate) if not dt.isValid(): - return False + return -1 self.__startDateTime = dt try: - dt = int(dataList[1]) + dt = int(dataList[2]) except ValueError: - return False + return -1 self.__duration = dt - self.__task = dataList[2] - self.__comment = dataList[3] + self.__task = dataList[3] + self.__comment = dataList[4] self.__valid = True - return True + return self.__id def isValid(self): """ @@ -160,6 +167,14 @@ return minutes + def setID(self, eid): + """ + Public method to assign an ID to the entry. + + @param eid ID for the entry (integer) + """ + self.__id = eid + def setTask(self, description): """ Public method to set the task description. @@ -189,6 +204,7 @@ a paused state (boolean) """ return ( + self.__id, self.__startDateTime.toString("yyyy-MM-dd"), self.__startDateTime.toString("hh:mm"), self.__duration, @@ -212,3 +228,11 @@ @return duration (integer) """ return self.__duration + + def getID(self): + """ + Public method to get the ID of the entry. + + @return ID of the entry (integer) + """ + return self.__id