Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-10-22 15:48:19 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-10-22 15:48:19 (GMT)
commit1079387789177aeecee90780b472022df6e63b96 (patch)
treec46bfb74961ebfb7452bd548a47ab85a2e601e6a
parentb69646ef143afbaebb97bba3c41d9789959ea6bb (diff)
Support activities that pass properties as eg. title:text
-rw-r--r--src/olpc/datastore/filestore.py8
-rw-r--r--src/olpc/datastore/layoutmanager.py3
-rw-r--r--src/olpc/datastore/metadatastore.py6
3 files changed, 12 insertions, 5 deletions
diff --git a/src/olpc/datastore/filestore.py b/src/olpc/datastore/filestore.py
index 8c170bc..730c7ac 100644
--- a/src/olpc/datastore/filestore.py
+++ b/src/olpc/datastore/filestore.py
@@ -105,10 +105,10 @@ class FileStore(object):
attempt = 1
while os.path.exists(destination_path):
if attempt > 10:
- fd, destination_path = tempfile.mkstemp(prefix=uid,
- suffix=extension,
- dir=destination_dir)
- del fd
+ fd_, destination_path = tempfile.mkstemp(prefix=uid,
+ suffix=extension,
+ dir=destination_dir)
+ del fd_
os.unlink(destination_path)
break
else:
diff --git a/src/olpc/datastore/layoutmanager.py b/src/olpc/datastore/layoutmanager.py
index 2b3e521..dc3fde6 100644
--- a/src/olpc/datastore/layoutmanager.py
+++ b/src/olpc/datastore/layoutmanager.py
@@ -19,7 +19,8 @@ import os
MAX_QUERY_LIMIT = 40960
class LayoutManager(object):
- """Provide the logic about how entries are stored inside the datastore directory
+ """Provide the logic about how entries are stored inside the datastore
+ directory
"""
def __init__(self):
profile = os.environ.get('SUGAR_PROFILE', 'default')
diff --git a/src/olpc/datastore/metadatastore.py b/src/olpc/datastore/metadatastore.py
index 5cd97ba..e1fe79a 100644
--- a/src/olpc/datastore/metadatastore.py
+++ b/src/olpc/datastore/metadatastore.py
@@ -20,6 +20,12 @@ class MetadataStore(object):
metadata['uid'] = uid
for key, value in metadata.items():
+
+ # Hack to support activities that still pass properties named as for
+ # example title:text.
+ if ':' in key:
+ key = key.split(':', maxsplit=1)[0]
+
f = open(os.path.join(metadata_path, key), 'w')
try:
if isinstance(value, unicode):