Пример #1
0
    def export_as_static_view(self, ident=None):
        """Propose to export the view as a static view.

        The as_html() method must be implemented.
        """
        title = None
        if ident is None:
            title, ident = self.controller.package._idgenerator.new_from_title("export " + self._label)
            title, ident = dialog.get_title_id(
                title=_("HTML export"),
                text=_("Specify a name for the export view"),
                element_title=title,
                element_id=ident,
            )
            if ident is None:
                return True
        if title is None:
            title = ident
        # Create the view
        v = self.controller.package.create_view(ident=ident, mimetype="text/html")
        v.title = title
        v.content.data = self.as_html()
        self.controller.notify("ViewCreate", view=v)
        d = dialog.message_dialog(
            _("View successfully exported as %s.\nOpen it in the web browser ?") % v.title, icon=gtk.MESSAGE_QUESTION
        )
        if d:
            c = self.controller.build_context(here=v)
            self.controller.open_url(c.evaluate("package/view/%s/absolute_url" % ident))
        return True
Пример #2
0
    def export_as_static_view(self, ident=None):
        """Propose to export the view as a static view.

        The as_html() method must be implemented.
        """
        title=None
        if ident is None:
            title, ident=self.controller.package._idgenerator.new_from_title("export " + self._label)
            title, ident=dialog.get_title_id(title=_("HTML export"),
                                      text=_("Specify a name for the export view"),
                                      element_title=title,
                                      element_id=ident)
            if ident is None:
                return True
        if title is None:
            title=ident
        # Create the view
        v=self.controller.package.createView(
            ident=ident,
            author=config.data.userid,
            date=helper.get_timestamp(),
            clazz='*',
            content_mimetype="text/html",
            )
        v.title=title
        v.content.data=self.as_html()
        self.controller.package.views.append(v)
        self.controller.notify('ViewCreate', view=v)
        d=dialog.message_dialog(_("View successfully exported as %s.\nOpen it in the web browser ?") % v.title, icon=Gtk.MessageType.QUESTION)
        if d:
            c=self.controller.build_context(here=v)
            self.controller.open_url(c.evaluateValue('package/view/%s/absolute_url' % ident))
        return True
Пример #3
0
    def save_query(self, *p):
        """Saves the query in the package.
        """
        l = self.eq.invalid_items()
        if l:
            self.log(
                _("Invalid query.\nThe following fields have an invalid value:\n%s"
                  ) % ", ".join(l))
            return True
        # Update the query
        self.eq.update_value()

        if hasattr(self.eq, 'container'):
            default_id = self.eq.container.id
            default_title = self.eq.container.title
        else:
            default_id = helper.title2id(self._label)
            default_title = self._label

        t, i = dialog.get_title_id(
            title=_("Saving the query..."),
            text=_("Give a title and identifier for saving the query"),
            element_title=default_title,
            element_id=default_id)
        if i is None:
            return True

        q = helper.get_id(self.controller.package.queries, i)
        # Overwriting an existing query
        if q:
            create = False
            self.controller.notify('EditSessionStart',
                                   element=q,
                                   immediate=True)
        else:
            create = True
            # Create the query
            q = self.controller.package.createQuery(ident=i)
            q.author = config.data.userid
            q.date = helper.get_timestamp()
            self.controller.package.queries.append(q)

        q.title = t
        q.content.mimetype = 'application/x-advene-simplequery'

        # Store the query itself in the _interactive query
        q.content.data = self.eq.model.xml_repr()
        if create:
            self.controller.notify('QueryCreate', query=q)
        else:
            self.controller.notify('QueryEditEnd', query=q)
            self.controller.notify('EditSessionEnd', element=q)
        return q
Пример #4
0
    def save_query(self, *p):
        """Saves the query in the package.
        """
        l=self.eq.invalid_items()
        if l:
            self.log(_("Invalid query.\nThe following fields have an invalid value:\n%s")
                     % ", ".join(l))
            return True
        # Update the query
        self.eq.update_value()

        if hasattr(self.eq, 'container'):
            default_id=self.eq.container.id
            default_title=self.eq.container.title
        else:
            default_id=helper.title2id(self._label)
            default_title=self._label


        t, i = dialog.get_title_id(title=_("Saving the query..."),
                                   text=_("Give a title and identifier for saving the query"),
                                   element_title=default_title,
                                   element_id=default_id)
        if i is None:
            return True

        q=helper.get_id(self.controller.package.queries, i)
        # Overwriting an existing query
        if q:
            create=False
            self.controller.notify('EditSessionStart', element=q, immediate=True)
        else:
            create=True
            # Create the query
            q=self.controller.package.createQuery(ident=i)
            q.author=config.data.userid
            q.date=helper.get_timestamp()
            self.controller.package.queries.append(q)

        q.title=t
        q.content.mimetype='application/x-advene-simplequery'

        # Store the query itself in the _interactive query
        q.content.data = self.eq.model.xml_repr()
        if create:
            self.controller.notify('QueryCreate', query=q)
        else:
            self.controller.notify('QueryEditEnd', query=q)
            self.controller.notify('EditSessionEnd', element=q)
        return q
Пример #5
0
    def save_view(self, *p):
        title, ident = self.controller.package._idgenerator.new_from_title(
            self._label)
        title, ident = dialog.get_title_id(
            title=_("Saving %s" % self.view_name),
            element_title=title,
            element_id=ident,
            text=_("Enter a view name to save this parametered view"))
        if ident is not None:
            if not re.match(r'^[a-zA-Z0-9_]+$', ident):
                dialog.message_dialog(
                    _("Error: the identifier %s contains invalid characters.")
                    % ident)
                return True

            options, arguments = self.get_save_arguments()
            if options is None and arguments is None:
                # Cancel view saving
                return True

            v = helper.get_id(self.controller.package.views, ident)
            if v is None:
                create = True
                v = self.controller.package.createView(ident=ident,
                                                       clazz='package')
            else:
                # Existing view. Check that it is already an adhoc-view
                if v.content.mimetype != 'application/x-advene-adhoc-view':
                    dialog.message_dialog(
                        _("Error: the view %s is not an adhoc view.") % ident)
                    return True
                create = False
                self.controller.notify('EditSessionStart',
                                       element=v,
                                       immediate=True)
            v.title = title
            v.author = config.data.userid
            v.date = self.controller.get_timestamp()

            self.save_parameters(v.content, options, arguments)
            if create:
                self.controller.package.views.append(v)
                self.controller.notify("ViewCreate", view=v)
            else:
                self.controller.notify("ViewEditEnd", view=v)
                self.controller.notify('EditSessionEnd', element=v)
        return True
Пример #6
0
    def save_query(self, *p):
        """Saves the query in the package.
        """
        if hasattr(self.query, 'container'):
            default_id = self.query.container.id
            default_title = self.query.container.title
        else:
            default_id = helper.title2id(self._label)
            default_title = self._label

        t, i = dialog.get_title_id(
            title=_("Saving the query..."),
            text=_("Give a title and identifier for saving the query"),
            element_title=default_title,
            element_id=default_id)
        if i is None:
            return True

        q = helper.get_id(self.controller.package.queries, i)
        # Overwriting an existing query
        if q:
            create = False
        else:
            create = True
            # Create the query
            q = self.controller.package.createQuery(ident=i)
            q.author = config.data.userid
            q.date = helper.get_timestamp()
            self.controller.package.queries.append(q)

        q.title = t
        if isinstance(self.query, SimpleQuery):
            q.content.mimetype = 'application/x-advene-simplequery'
        elif isinstance(self.query, Quicksearch):
            q.content.mimetype = 'application/x-advene-quicksearch'
        q.content.data = self.query.xml_repr()
        if create:
            self.controller.notify('QueryCreate', query=q)
        else:
            self.controller.notify('QueryEditEnd', query=q)
        return q
Пример #7
0
    def save_query(self, *p):
        """Saves the query in the package.
        """
        if hasattr(self.query, 'container'):
            default_id=self.query.container.id
            default_title=self.query.container.title
        else:
            default_id=helper.title2id(self._label)
            default_title=self._label

        t, i = dialog.get_title_id(title=_("Saving the query..."),
                                   text=_("Give a title and identifier for saving the query"),
                                   element_title=default_title,
                                   element_id=default_id)
        if i is None:
            return True

        q=helper.get_id(self.controller.package.queries, i)
        # Overwriting an existing query
        if q:
            create=False
        else:
            create=True
            # Create the query
            q=self.controller.package.createQuery(ident=i)
            q.author=config.data.userid
            q.date=helper.get_timestamp()
            self.controller.package.queries.append(q)

        q.title=t
        if isinstance(self.query, SimpleQuery):
            q.content.mimetype='application/x-advene-simplequery'
        elif isinstance(self.query, Quicksearch):
            q.content.mimetype='application/x-advene-quicksearch'
        q.content.data = self.query.xml_repr()
        if create:
            self.controller.notify('QueryCreate', query=q)
        else:
            self.controller.notify('QueryEditEnd', query=q)
        return q
Пример #8
0
    def save_view(self, *p):
        title, ident=self.controller.package._idgenerator.new_from_title(self._label)
        title, ident=dialog.get_title_id(title=_("Saving %s" % self.view_name),
                                                  element_title=title,
                                                  element_id=ident,
                                                  text=_("Enter a view name to save this parametered view"))
        if ident is not None:
            if not re.match(r'^[a-zA-Z0-9_]+$', ident):
                dialog.message_dialog(_("Error: the identifier %s contains invalid characters.") % ident)
                return True

            options, arguments = self.get_save_arguments()
            if options is None and arguments is None:
                # Cancel view saving
                return True

            v=helper.get_id(self.controller.package.views, ident)
            if v is None:
                create=True
                v=self.controller.package.createView(ident=ident, clazz='package')
            else:
                # Existing view. Check that it is already an adhoc-view
                if v.content.mimetype != 'application/x-advene-adhoc-view':
                    dialog.message_dialog(_("Error: the view %s is not an adhoc view.") % ident)
                    return True
                create=False
                self.controller.notify('EditSessionStart', element=v, immediate=True)
            v.title=title
            v.author=config.data.userid
            v.date=self.controller.get_timestamp()

            self.save_parameters(v.content, options, arguments)
            if create:
                self.controller.package.views.append(v)
                self.controller.notify("ViewCreate", view=v)
            else:
                self.controller.notify("ViewEditEnd", view=v)
                self.controller.notify('EditSessionEnd', element=v)
        return True