[Dextrose] [PATCH] Copy .xo to removable device hack

Martin Abente martin.abente.lahaye at gmail.com
Wed Mar 16 08:25:30 EDT 2011


Ok, I will do that, thanks!

On Wed, Mar 16, 2011 at 8:43 AM, Aleksey Lim
<alsroot at activitycentral.org> wrote:
> On Tue, Mar 15, 2011 at 10:12:23PM -0300, Martin Abente wrote:
>> Plan Ceibal folks reported that it wasn't possible
>> to copy .xo files from datastore to removable
>> devices. This bug affects all versions of dextrose
>> and other distros bases on sugar 0.88.1.
>>
>> The problem was caused by a too generalist logic
>> at _model_created_cb in which the journal was trying
>> to install bundles also when copying files to
>> external devices.
>>
>> This bug seems to be fixed in mainstream, but as side
>> effect of a big change to the journal code.
>>
>> This patch checks for corner cases and avoid any attempt
>> of installation when copying to external remoable devices.
>
> +1
>
> But would be useful to move _is_datastore_object() code to
> _check_for_bundle() to suppress any issues if this code that will be
> changed later in dextrose. Also would be useful to add XXX tag to not forget
> tmp nature of this fix if `git annotate` is messy.
>
>> Signed-off-by: Martin Abente <martin.abente.lahaye at gmail.com>
>> ---
>>  src/jarabe/journal/journalactivity.py |   17 ++++++++++++++---
>>  1 files changed, 14 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py
>> index b96135c..456a027 100644
>> --- a/src/jarabe/journal/journalactivity.py
>> +++ b/src/jarabe/journal/journalactivity.py
>> @@ -253,16 +253,27 @@ class JournalActivity(JournalWindow):
>>          self._main_toolbox.search_toolbar.set_mount_point(mount_point)
>>          self._main_toolbox.set_current_toolbar(0)
>>
>> +    def _is_datastore_object(self, object_id):
>> +        metadata = model.get(object_id)
>> +        return model.is_editable(metadata)
>> +
>>      def __model_created_cb(self, sender, **kwargs):
>> -        self._check_for_bundle(kwargs['object_id'])
>> +        object_id = kwargs['object_id']
>> +
>> +        if self._is_datastore_object(object_id):
>> +            self._check_for_bundle(object_id)
>> +
>>          self._main_toolbox.search_toolbar.refresh_filters()
>>          self._check_available_space()
>>
>>      def __model_updated_cb(self, sender, **kwargs):
>> -        self._check_for_bundle(kwargs['object_id'])
>> +        object_id = kwargs['object_id']
>> +
>> +        if self._is_datastore_object(object_id):
>> +            self._check_for_bundle(object_id)
>>
>>          if self.canvas == self._secondary_view and \
>> -                kwargs['object_id'] == self._detail_view.props.metadata['uid']:
>> +                object_id == self._detail_view.props.metadata['uid']:
>>              self._detail_view.refresh()
>>
>>          self._check_available_space()
>> --
>> 1.7.1
>>
>>
>
> --
> Aleksey
>


More information about the Dextrose mailing list