TimeTracker/TimeTracker.py

changeset 94
a3d936304e51
parent 93
7ffe7ae4947d
child 98
693e42176007
equal deleted inserted replaced
93:7ffe7ae4947d 94:a3d936304e51
177 (string) 177 (string)
178 @keyparam ids list of entry IDs to be written (list of integer) 178 @keyparam ids list of entry IDs to be written (list of integer)
179 """ 179 """
180 if not filePath: 180 if not filePath:
181 filePath = self.__trackerFilePath 181 filePath = self.__trackerFilePath
182 if ids: 182 entriesList = (
183 entriesList = [self.__entries[eid] for eid in ids 183 [self.__entries[eid] for eid in ids if eid in self.__entries]
184 if eid in self.__entries] 184 if ids else
185 else: 185 self.__entries.values()
186 entriesList = self.__entries.values() 186 )
187 try: 187 try:
188 with open(filePath, "w", encoding="utf-8") as f: 188 with open(filePath, "w", encoding="utf-8") as f:
189 for entry in entriesList: 189 for entry in entriesList:
190 if entry.isValid(): 190 if entry.isValid():
191 f.write(entry.toString() + "\n") 191 f.write(entry.toString() + "\n")
234 for entry in entries[:]: 234 for entry in entries[:]:
235 if entry.getStartDateTime() in startDateTimes: 235 if entry.getStartDateTime() in startDateTimes:
236 entries.remove(entry) 236 entries.remove(entry)
237 duplicateCount += 1 237 duplicateCount += 1
238 238
239 if len(self.__entries.keys()): 239 start = (
240 nextID = max(self.__entries.keys()) + 1 240 max(self.__entries.keys()) + 1
241 else: 241 if len(self.__entries.keys()) else
242 nextID = 0 242 0
243 for entry in entries: 243 )
244 for nextID, entry in enumerate(entries, start=start):
244 entry.setID(nextID) 245 entry.setID(nextID)
245 self.__entries[nextID] = entry 246 self.__entries[nextID] = entry
246 nextID += 1
247 247
248 if self.__plugin.getPreferences("AutoSave"): 248 if self.__plugin.getPreferences("AutoSave"):
249 self.saveTrackerEntries() 249 self.saveTrackerEntries()
250 250
251 if invalidCount != 0 or duplicateCount != 0: 251 if invalidCount != 0 or duplicateCount != 0:
296 return 296 return
297 297
298 if duration < self.__plugin.getPreferences("MinimumDuration"): 298 if duration < self.__plugin.getPreferences("MinimumDuration"):
299 return 299 return
300 300
301 if len(self.__entries.keys()): 301 nextID = (
302 nextID = max(self.__entries.keys()) + 1 302 max(self.__entries.keys()) + 1
303 else: 303 if len(self.__entries.keys()) else
304 nextID = 0 304 0
305 )
305 306
306 from .TimeTrackEntry import TimeTrackEntry 307 from .TimeTrackEntry import TimeTrackEntry
307 308
308 entry = TimeTrackEntry(self.__plugin) 309 entry = TimeTrackEntry(self.__plugin)
309 entry.setID(nextID) 310 entry.setID(nextID)
409 entries[dt] = entry 410 entries[dt] = entry
410 else: 411 else:
411 entries[dt] = entry 412 entries[dt] = entry
412 413
413 self.__entries = {} 414 self.__entries = {}
414 nextID = 0 415 for nextID, entry in enumerate(sorted(entries.values())):
415 for entry in sorted(entries.values()):
416 entry.setID(nextID) 416 entry.setID(nextID)
417 self.__entries[nextID] = entry 417 self.__entries[nextID] = entry
418 nextID += 1
419 418
420 if self.__plugin.getPreferences("AutoSave"): 419 if self.__plugin.getPreferences("AutoSave"):
421 self.saveTrackerEntries() 420 self.saveTrackerEntries()
422 421
423 self.__widget.clear() 422 self.__widget.clear()
439 entries[dt].addDuration(entry.getDuration()) 438 entries[dt].addDuration(entry.getDuration())
440 else: 439 else:
441 entries[dt] = entry 440 entries[dt] = entry
442 441
443 self.__entries = {} 442 self.__entries = {}
444 nextID = 0 443 for nextID, entry in enumerate(sorted(entries.values())):
445 for entry in sorted(entries.values()):
446 entry.setID(nextID) 444 entry.setID(nextID)
447 self.__entries[nextID] = entry 445 self.__entries[nextID] = entry
448 nextID += 1
449 446
450 if self.__plugin.getPreferences("AutoSave"): 447 if self.__plugin.getPreferences("AutoSave"):
451 self.saveTrackerEntries() 448 self.saveTrackerEntries()
452 449
453 self.__widget.clear() 450 self.__widget.clear()

eric ide

mercurial