[hamster-applet] escaping apostrophe and updating index upon category change of activities
- From: Toms Baugis <tbaugis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [hamster-applet] escaping apostrophe and updating index upon category change of activities
- Date: Thu, 22 Jul 2010 12:31:05 +0000 (UTC)
commit 75ca7bff78e988affafb308564bd45418820d454
Author: Toms Bauģis <toms baugis gmail com>
Date: Thu Jul 22 13:30:57 2010 +0100
escaping apostrophe and updating index upon category change of activities
src/hamster/db.py | 35 ++++++++++++++++++++---------------
1 files changed, 20 insertions(+), 15 deletions(-)
---
diff --git a/src/hamster/db.py b/src/hamster/db.py
index d13dc65..ce41cc3 100644
--- a/src/hamster/db.py
+++ b/src/hamster/db.py
@@ -164,6 +164,20 @@ class Storage(storage.Storage):
def __get_categories(self):
return self.fetchall("SELECT id, name FROM categories ORDER BY lower(name)")
+ def __update_activity(self, id, name, category_id):
+ query = """
+ UPDATE activities
+ SET name = ?,
+ search_name = ?,
+ category_id = ?
+ WHERE id = ?
+ """
+ self.execute(query, (name, name.lower(), category_id, id))
+
+ affected_ids = [res[0] for res in self.fetchall("select id from facts where activity_id = ?", (id,))]
+ self.__remove_index(affected_ids)
+
+
def __change_category(self, id, category_id):
# first check if we don't have an activity with same name before us
activity = self.fetchone("select name from activities where id = ?", (id, ))
@@ -194,6 +208,11 @@ class Storage(storage.Storage):
self.execute(statement, (category_id, id))
+ affected_ids = [res[0] for res in self.fetchall("select id from facts where activity_id = ?", (id,))]
+ if existing_activity:
+ affected_ids.extend([res[0] for res in self.fetchall("select id from facts where activity_id = ?", (existing_activity['id'],))])
+ self.__remove_index(affected_ids)
+
return True
def __add_category(self, name):
@@ -624,7 +643,7 @@ class Storage(storage.Storage):
# check if we need changes to the index
self.__check_index(datetime_from, datetime_to)
- search_terms = search_terms.replace('\\', '\\\\').replace('%', '\\%').replace('_', '\\_')
+ search_terms = search_terms.replace('\\', '\\\\').replace('%', '\\%').replace('_', '\\_').replace("'", "''")
query += """ AND a.id in (SELECT id
FROM fact_index
WHERE fact_index MATCH '%s')""" % search_terms
@@ -779,20 +798,6 @@ class Storage(storage.Storage):
self.execute(query, (name, name.lower(), category_id, deleted))
return self.__last_insert_rowid()
- def __update_activity(self, id, name, category_id):
- query = """
- UPDATE activities
- SET name = ?,
- search_name = ?,
- category_id = ?
- WHERE id = ?
- """
- self.execute(query, (name, name.lower(), category_id, id))
-
- affected_ids = [res[0] for res in self.fetchall("select id from facts where activity_id = ?", (id,))]
- self.__remove_index(affected_ids)
-
-
def __remove_index(self, ids):
"""remove affected ids from the index"""
if not ids:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]