Hi all.<br><br>In this patch, the 'mountpoint' property for a particular entry, is being fetched via a semi-global context (in the sense that the 'mountpoint' is updated whenever the user-clicks on the corresponding icon (journal/documents/usb-drives) in the left-bottom-paneltray).<br>
<br>The other option, is to indeed investigate, and find out the reason for 'mountpoint' property not being linked on a per-entry basis. (Right now, the 'mountpoint' property is present in some cases, but not in others). However, I am a little sceptical, because of the following reasons ::<br>
<br><br>a)<br>The local VS global context as described above.<br><br><br>b)<br>There are other cases, wherein the metadata properties are not same in number for every case.<br>In the ideal case, every entry (journal/documents/usb-drives) should have the same number of metadata properties (since the metadata is for a specific entry, wherein the metadata-properties-values may change, but not metadata-properties-keys).<br>
<br><br>In fact, would removing the 'mountpoint' property (on a per-entry basis, that is) altogether be a good idea?<br><br><br>Any how, I am not sure which is the right approach. Please let me know.<br><br><br>Thanks and Regards,<br>
Ajay<br><br><br><br><div class="gmail_quote">On Tue, Jun 5, 2012 at 6:30 PM,  <span dir="ltr"><<a href="mailto:ajay@activitycentral.com" target="_blank">ajay@activitycentral.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
From: Ajay Garg <<a href="mailto:ajay@activitycentral.com">ajay@activitycentral.com</a>><br>
<br>
Following are the steps to reproduce the issue ::<br>
<br>
a)<br>
Ensure that the "Journal" and "Documents" are empty.<br>
<div class="im"><br>
b)<br>
Copy a file (I tried with a mp3) to a USB drive, from a non-XO machine.<br>
<br>
c)<br>
Insert the USB drive in the XO.<br>
<br>
d)<br>
Copy the file (of step b) ) to "Documents" folder.<br>
<br>
e)<br>
View Details of the copied entry (in "Documents").<br>
<br>
f)<br>
There should be the exception in the logs. Moreover, the "Description" field should be empty in the "Details View" (this field ought to be "/media/<name of USB drive>").<br>
<br>
<br>
<br>
</div> src/jarabe/journal/journalactivity.py |   12 ++++++++++++<br>
 src/jarabe/journal/model.py           |    8 +++++++-<br>
 2 files changed, 19 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py<br>
index bb1c7f6..485e7b4 100644<br>
--- a/src/jarabe/journal/journalactivity.py<br>
+++ b/src/jarabe/journal/journalactivity.py<br>
@@ -53,6 +53,7 @@ _SPACE_TRESHOLD = 52428800<br>
 _BUNDLE_ID = 'org.laptop.JournalActivity'<br>
<br>
 _journal = None<br>
+_mount_point = None<br>
<br>
<br>
 class JournalActivityDBusService(dbus.service.Object):<br>
@@ -122,6 +123,8 @@ class JournalActivity(JournalWindow):<br>
         self._detail_toolbox = None<br>
         self._volumes_toolbar = None<br>
<br>
+        set_mount_point('/')<br>
+<br>
         self._setup_main_view()<br>
         self._setup_secondary_view()<br>
<br>
@@ -184,6 +187,7 @@ class JournalActivity(JournalWindow):<br>
         search_toolbar = self._main_toolbox.search_toolbar<br>
         search_toolbar.connect('query-changed', self._query_changed_cb)<br>
         search_toolbar.set_mount_point('/')<br>
+        set_mount_point('/')<br>
<br>
     def _setup_secondary_view(self):<br>
         self._secondary_view = gtk.VBox()<br>
@@ -253,6 +257,7 @@ class JournalActivity(JournalWindow):<br>
     def __volume_changed_cb(self, volume_toolbar, mount_point):<br>
         logging.debug('Selected volume: %r.', mount_point)<br>
         self._main_toolbox.search_toolbar.set_mount_point(mount_point)<br>
+        set_mount_point(mount_point)<br>
         self._main_toolbox.set_current_toolbar(0)<br>
<br>
     def __model_created_cb(self, sender, **kwargs):<br>
@@ -373,3 +378,10 @@ def get_journal():<br>
<br>
 def start():<br>
     get_journal()<br>
+<br>
+def set_mount_point(mount_point):<br>
+    global _mount_point<br>
+    _mount_point = mount_point<br>
+<br>
+def get_mount_point():<br>
+    return _mount_point<br>
diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py<br>
index 5285a7c..98b8e52 100644<br>
--- a/src/jarabe/journal/model.py<br>
+++ b/src/jarabe/journal/model.py<br>
@@ -793,7 +793,13 @@ def is_editable(metadata):<br>
<div class="im">     if metadata.get('mountpoint', '/') == '/':<br>
         return True<br>
     else:<br>
-        return os.access(metadata['mountpoint'], os.W_OK)<br>
+        # sl#3605: Instead of relying on mountpoint property being<br>
+        #          present in the metadata, use journalactivity api.<br>
+        #          This would work seamlessly, as "Details View' is<br>
+        #          called, upon an entry in the context of a singular<br>
+        #          mount-point.<br>
+        from jarabe.journal.journalactivity import get_mount_point<br>
+        return os.access(get_mount_point(), os.W_OK)<br>
<br>
<br>
 def get_documents_path():<br>
--<br>
</div>1.7.10.1<br>
<br>
</blockquote></div><br>