[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819
Daniele Ricci
daniele.athome at gmail.com
Sat Aug 6 08:20:08 UTC 2011
The following commit has been merged in the debian branch:
commit e595f5c93d5a37e9f4edd28a4ccf0227531fefeb
Author: Daniele Ricci <daniele.athome at gmail.com>
Date: Fri Oct 15 16:56:45 2010 +0200
Message(Un)read and MessageSent both converted to New
Signed-off-by: Daniele Ricci <daniele.athome at gmail.com>
diff --git a/framework/subsystems/opimd/db_handler.py b/framework/subsystems/opimd/db_handler.py
index 4dd6007..471e4b7 100644
--- a/framework/subsystems/opimd/db_handler.py
+++ b/framework/subsystems/opimd/db_handler.py
@@ -75,10 +75,6 @@ def regex_matches(string, pattern):
logger.error("While matching regex (pattern = %s, string = %s) got: %s",unicode(pattern), unicode(string), exp)
return 0
-rootdir = os.path.join( rootdir, 'opim' )
-
-_SQLITE_FILE_NAME = os.path.join(rootdir,'pim.db')
-
def dict_factory(cursor, row, skip_field = None):
d = {}
for idx, col in enumerate(cursor.description):
@@ -86,6 +82,11 @@ def dict_factory(cursor, row, skip_field = None):
d[col[0]] = row[idx]
return d
+rootdir = os.path.join( rootdir, 'opim' )
+
+_SQLITE_FILE_NAME = os.path.join(rootdir,'pim.db')
+_SQLITE_DATABASE_VERSION = '2.1'
+
class DbHandler(object):
con = None
db_prefix = "generic"
@@ -121,6 +122,10 @@ class DbHandler(object):
name TEXT
);
+ CREATE TABLE IF NOT EXISTS info (
+ field_name TEXT PRIMARY KEY,
+ value TEXT NOT NULL
+ );
CREATE TABLE IF NOT EXISTS """ + self.db_prefix + """_fields (
field_name TEXT PRIMARY KEY,
@@ -150,6 +155,15 @@ class DbHandler(object):
cur.execute(self.get_create_type_index(type))
self.con.commit()
+
+ cur.execute("select value from info where field_name = 'version'")
+ version_info = cur.fetchone()
+ if version_info == None:
+ cur.execute("insert into info values(?, ?)", ('version', _SQLITE_DATABASE_VERSION))
+ self.con.commit()
+ elif version_info[0] != _SQLITE_DATABASE_VERSION:
+ raise Exception("Database version mismatch, needed %s, current is %s" % (_SQLITE_DATABASE_VERSION, version_info[0]));
+
cur.close()
except Exception, exp:
diff --git a/framework/subsystems/opimd/pimd_messages.py b/framework/subsystems/opimd/pimd_messages.py
index e779192..10e0b13 100644
--- a/framework/subsystems/opimd/pimd_messages.py
+++ b/framework/subsystems/opimd/pimd_messages.py
@@ -139,12 +139,20 @@ SELECT m.messages_id messages_id,
) TotalCount,
(
SELECT count(*) FROM
+ (
messages_boolean b
OUTER LEFT JOIN
messages_phonenumber p
ON b.messages_id = p.messages_id AND
- b.field_name = 'MessageUnread'
- WHERE b.value = '1' AND
+ b.field_name = 'New'
+ )
+ OUTER LEFT JOIN
+ messages_text x
+ ON b.messages_id = x.messages_id
+ AND x.field_name = 'Direction'
+ WHERE
+ b.value = '1' AND
+ x.value = 'in' AND
p.field_name = 'Peer' AND p.value = p1.value
) UnreadCount
FROM (
@@ -277,8 +285,7 @@ class MessageDomain(Domain, GenericDomain):
'Peer' : 'phonenumber',
'Source' : 'text',
'Direction' : 'text',
- 'MessageSent' : 'boolean',
- 'MessageUnread' : 'boolean',
+ 'New' : 'boolean',
'Timestamp' : 'date',
'Timezone' : 'timezone',
'Content' : 'text'
@@ -303,7 +310,7 @@ class MessageDomain(Domain, GenericDomain):
self.fso_handler = MessagesFSO(self)
- self._unread_messages = len(self.db_handler.query({'Direction': 'in', 'MessageUnread':1}))
+ self._unread_messages = len(self.db_handler.query({'Direction': 'in', 'New':1}))
#---------------------------------------------------------------------#
# dbus methods and signals #
@@ -323,7 +330,7 @@ class MessageDomain(Domain, GenericDomain):
@param message_data List of fields; format is [Key:Value, Key:Value, ...]
@return URI of the newly created d-bus message object"""
- unread = entry_data.get('MessageUnread')
+ unread = entry_data.get('New')
#Make sure is boolean
if unread == None:
unread = 0
@@ -426,7 +433,7 @@ class MessageDomain(Domain, GenericDomain):
self.check_entry_id(num_id)
message = self.get_content(num_id)
- unread = message.get('MessageUnread')
+ unread = message.get('New')
#Make sure is boolean
if unread == None:
unread = 0
@@ -458,8 +465,8 @@ class MessageDomain(Domain, GenericDomain):
message = self.get_content(num_id)
#FIXME: What if it was outgoing and is now incoming?
- old_unread = message['MessageUnread'] if message.has_key('MessageUnread') else False
- new_unread = data['MessageUnread'] if data.has_key('MessageUnread') else False
+ old_unread = message['New'] if message.has_key('New') else False
+ new_unread = data['New'] if data.has_key('New') else False
old_in = message['Direction'] == 'in' if message.has_key('Direction') else False
new_in = data['Direction'] == 'in' if data.has_key('Direction') else old_in
if old_unread and old_in and not new_unread:
@@ -528,21 +535,20 @@ class MessagesFSO(object):
logger.debug("Processing entry \"%s\"...", text)
+ entry['New'] = 1
if status in ('read', 'unread'):
entry['Direction'] = 'in'
- entry['MessageUnread'] = 1
else:
entry['Direction'] = 'out'
- entry['MessageSent'] = 0
-
- if status == 'read': entry['MessageUnread'] = 0
- if status == 'sent': entry['MessageSent'] = 1
-
+
+ if status == 'read': entry['New'] = 1
+ if status == 'sent': entry['New'] = 0
+
entry['Peer'] = number
-
+
# TODO Handle text properly, i.e. make it on-demand if >1KiB
entry['Content'] = text
-
+
entry['Source'] = 'SMS'
entry['SMS-combined_message'] = 0
@@ -589,7 +595,7 @@ class MessagesFSO(object):
if complete:
edit_data['SMS-complete_message']=1
edit_data['Content'] = new_content
- edit_data['MessageUnread'] = 1
+ edit_data['New'] = 1
self.domain.Update(edit_data, '/' + str(id))
else:
register = 1
@@ -702,7 +708,7 @@ class MessagesFSO(object):
entry['Content'] = msg
entry['Peer'] = number
entry['Direction'] = 'in'
- entry['MessageUnread'] = 1
+ entry['New'] = 1
entry['Source'] = 'SMS'
# We get number of quarters of an hours, convert to minutes:
zone = int(timestamp[18:]) * 15
diff --git a/tools/update-db-2.1.sql b/tools/update-db-2.1.sql
new file mode 100644
index 0000000..4fd68ac
--- /dev/null
+++ b/tools/update-db-2.1.sql
@@ -0,0 +1,6 @@
+-- delete deprecated MessageRead values
+DELETE FROM messages_boolean WHERE field_name = 'MessageRead' AND value = '1';
+-- invert MessageRead and MessageSent to be used as New
+UPDATE messages_boolean SET value = NOT value WHERE field_name = 'MessageRead' OR field_name = 'MessageSent';
+-- rename MessageRead and MessageSent to New
+UPDATE messages_boolean SET field_name = 'New' WHERE field_name = 'MessageRead' OR field_name = 'MessageSent';
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list