def on_debug_ConvertExportFileEvent(self, event):

        wildcard = "%s|*.chex|%s|*.dump|%s (*.*)|*.*" %(_(u"Export files"),
                                                        _(u"Dump files"),
                                                        _(u"All files"))
        dlg = wx.FileDialog(wx.GetApp().mainFrame,
                            _(u"Convert from export file"), "", "", wildcard,
                            wx.OPEN)

        fromPath = None
        if dlg.ShowModal() == wx.ID_OK:
            fromPath = dlg.GetPath()
        dlg.Destroy()

        if fromPath:
            wildcard = "%s|*.rec|%s (*.*)|*.*" %(_(u"Record files"),
                                                 _(u"All files"))
            dlg = wx.FileDialog(wx.GetApp().mainFrame,
                                _(u"Convert to record file"), "", "",
                                wildcard, wx.SAVE|wx.OVERWRITE_PROMPT)
            toPath = None
            if dlg.ShowModal() == wx.ID_OK:
                toPath = dlg.GetPath()
            dlg.Destroy()

            if toPath:
                activity = Activity(_(u"Convert %s") %(fromPath))
                dialogs.Progress.Show(activity)
                activity.started()

                try:
                    dumpreload.convertToTextFile(fromPath, toPath,
                                                 activity=activity)
                    activity.completed()
                except Exception, e:
                    logger.exception("Failed to convert file")
                    activity.failed(exception=e)
                    raise
                self.setStatusMessage(_(u'File converted.'))
Example #2
0
    def restoreCollections(self, activity=None):
        rv = self.itsView

        if not self.isSetUp():
            return

        info = self.getPublishedShares(blocking=True)
        toRestore = list()
        for name, uuid, href, tickets, subscribed in info:
            if not subscribed and uuid in self.requested:
                toRestore.append((name, uuid, href, tickets))

        for name, uuid, href, tickets in toRestore:

            try:
                msg = _("Restoring %(collection)s collection") % {
                    'collection': name
                }
                logger.info(msg)

                subActivity = Activity(msg)
                subActivity.started()

                activity.update(msg=msg, work=1)

                altView = viewpool.getView(rv.repository)
                share = Share(itsView=altView, displayName=name)
                share.mode = 'both'
                share.conduit = CosmoConduit(
                    itsParent=share,
                    shareName=uuid,
                    account=altView.findUUID(self.itsUUID),
                    translator=translator.SharingTranslator,
                    serializer=eimml.EIMMLSerializer)
                for ticket, ticketType in tickets:
                    if ticketType == 'read-only':
                        share.conduit.ticketReadOnly = ticket
                    elif ticketType == 'read-write':
                        share.conduit.ticketReadWrite = ticket

                share.conduit.filters = set()
                share.conduit.filters.add('cid:[email protected]')
                share.conduit.filters.add('cid:[email protected]')
                share.conduit.filters.add('cid:[email protected]')

                share.get(activity=subActivity)
                if uuid in self.ignored:
                    self.ignored.remove(uuid)
                self.requested.remove(uuid)
                share.sharer = schema.ns("osaf.pim",
                                         altView).currentContact.item
                schema.ns("osaf.app",
                          altView).sidebarCollection.add(share.contents)
                # Add the collection to the Dashboard (c.f. Bug 11717)
                schema.ns("osaf.pim", altView).mine.addSource(share.contents)
                altView.commit(utility.mergeFunction)
                subActivity.completed()

            except Exception, e:
                altView.cancel()
                viewpool.releaseView(altView)
                if not isinstance(e, ActivityAborted):
                    subActivity.failed(e)
                    activity.failed(e)
                    logger.exception("Restore failed")
                if uuid in self.requested:
                    self.requested.remove(uuid)
                raise
Example #3
0
    def restoreCollections(self, activity=None):
        rv = self.itsView

        if not self.isSetUp():
            return

        info = self.getPublishedShares(blocking=True)
        toRestore = list()
        for name, uuid, href, tickets, subscribed in info:
            if not subscribed and uuid in self.requested:
                toRestore.append((name, uuid, href, tickets))

        for name, uuid, href, tickets in toRestore:

                try:
                    msg = _("Restoring %(collection)s collection") % {
                        'collection' : name }
                    logger.info(msg)

                    subActivity = Activity(msg)
                    subActivity.started()

                    activity.update(msg=msg, work=1)

                    altView = viewpool.getView(rv.repository)
                    share = Share(itsView=altView, displayName=name)
                    share.mode = 'both'
                    share.conduit = CosmoConduit(itsParent=share,
                        shareName=uuid, account=altView.findUUID(self.itsUUID),
                        translator=translator.SharingTranslator,
                        serializer=eimml.EIMMLSerializer)
                    for ticket, ticketType in tickets:
                        if ticketType == 'read-only':
                            share.conduit.ticketReadOnly = ticket
                        elif ticketType == 'read-write':
                            share.conduit.ticketReadWrite = ticket

                    share.conduit.filters = set()
                    share.conduit.filters.add('cid:[email protected]')
                    share.conduit.filters.add('cid:[email protected]')
                    share.conduit.filters.add('cid:[email protected]')

                    share.get(activity=subActivity)
                    if uuid in self.ignored:
                        self.ignored.remove(uuid)
                    self.requested.remove(uuid)
                    share.sharer = schema.ns("osaf.pim",
                        altView).currentContact.item
                    schema.ns("osaf.app",
                        altView).sidebarCollection.add(share.contents)
                    # Add the collection to the Dashboard (c.f. Bug 11717)
                    schema.ns("osaf.pim",
                        altView).mine.addSource(share.contents)
                    altView.commit(utility.mergeFunction)
                    subActivity.completed()

                except Exception, e:
                    altView.cancel()
                    viewpool.releaseView(altView)
                    if not isinstance(e, ActivityAborted):
                        subActivity.failed(e)
                        activity.failed(e)
                        logger.exception("Restore failed")
                    if uuid in self.requested:
                        self.requested.remove(uuid)
                    raise