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
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
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
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
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
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
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
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