TimeTracker/TimeTrackEntry.py

changeset 4
c67abfea9955
parent 3
ce9309868f8a
child 8
17d90f9425fc
--- 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

eric ide

mercurial