[hamster-applet] enter update_fact to reduce refresh numbers



commit 6781fd15bfd7f327ae1255ff2ebbb5f30dc8610f
Author: Toms Bauģis <toms baugis gmail com>
Date:   Mon Dec 21 23:52:44 2009 +0000

    enter update_fact to reduce refresh numbers

 hamster/edit_activity.py |    6 +++---
 hamster/storage.py       |   10 ++++++++++
 2 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/hamster/edit_activity.py b/hamster/edit_activity.py
index 176b24b..6d6d0c8 100644
--- a/hamster/edit_activity.py
+++ b/hamster/edit_activity.py
@@ -174,9 +174,9 @@ class CustomFactController:
 
         # we don't do updates, we do insert/delete. So now it is time to delete
         if self.fact_id:
-            runtime.storage.remove_fact(self.fact_id)
-
-        runtime.storage.add_fact(activity, tags, start_time, end_time)
+            runtime.storage.update_fact(self.fact_id, activity, tags, start_time, end_time)
+        else:
+            runtime.storage.add_fact(activity, tags, start_time, end_time)
 
 
         # hide panel only on add - on update user will want to see changes
diff --git a/hamster/storage.py b/hamster/storage.py
index a05b442..366cdf4 100644
--- a/hamster/storage.py
+++ b/hamster/storage.py
@@ -75,6 +75,16 @@ class Storage(object):
             self.__remove_fact(fact_id)
             self.dispatch('day_updated', fact['start_time'])
 
+    def update_fact(self, fact_id, activity_name, tags, start_time, end_time):
+        fact = self.get_fact(fact_id)
+        if fact:
+            self.__remove_fact(fact_id)
+        
+        result = self.__add_fact(activity_name, tags, start_time, end_time)
+        if result:
+            self.dispatch('day_updated', result['start_time'])
+        return result
+
     def get_activities(self, category_id = None):
         return self.__get_activities(category_id = category_id)
     



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]