def update_links(self, source, target): super(TurningFooterTable, self).update_links(source, target) base = self.get_canonical_path() resources_new2old = get_context().database.resources_new2old base = str(base) old_base = resources_new2old.get(base, base) old_base = Path(old_base) new_base = Path(base) # languages site_root = self.get_site_root() available_languages = site_root.get_property('website_languages') # Append links contained in data handler = self.handler get_value = handler.get_record_value for record in handler.get_records_in_order(): for language in available_languages: data = get_value(record, 'data', language=language) if data is None: continue events = _change_link(source, target, old_base, new_base, data) events = list(events) p_events = Property(events, language=language) # TODO Update all language in one time self.update_record(record.id, **{'data': p_events}) get_context().database.change_resource(self)
def update_links(self, source, target): super(FooterMenu, self).update_links(source, target) base = self.get_canonical_path() site_root = self.get_site_root() available_languages = site_root.get_property("website_languages") resources_new2old = get_context().database.resources_new2old base = str(base) old_base = resources_new2old.get(base, base) old_base = Path(old_base) new_base = Path(base) handler = self.handler get_value = handler.get_record_value for record in handler.get_records_in_order(): properties = [] for language in available_languages: html_content = get_value(record, "html_content", language=language) if html_content is None: continue events = _change_link(source, target, old_base, new_base, html_content) events = list(events) properties.append(Property(events, language=language)) self.update_record(record.id, **{"html_content": properties}) get_context().database.change_resource(self)
def update_links(self, source, target): base = self.get_canonical_path() resources_new2old = get_context().database.resources_new2old base = str(base) old_base = resources_new2old.get(base, base) old_base = Path(old_base) new_base = Path(base) site_root = self.get_site_root() languages = site_root.get_property('website_languages') links = [] for key, datatype in self.get_metadata_schema().items(): multilingual = getattr(datatype, 'multilingual', False) langs = languages if multilingual is True else [None] if issubclass(datatype, XHTMLBody): for lang in langs: events = self.get_property(key, language=lang) if not events: continue events = _change_link(source, target, old_base, new_base, events) events = list(events) self.set_property(key, events, language=lang) elif issubclass(datatype, PathDataType): # Relative path for lang in langs: path = self.get_property(key, language=lang) if path is None: continue path = str(old_base.resolve2(path)) if path == source: # Hit the old name new_path = str(new_base.get_pathto(target)) self.set_property(key, new_path, language=lang) elif issubclass(datatype, AbsolutePathDataTypeEnumerate): # Absolute path for lang in langs: path = self.get_property(key, language=lang) if path is None: continue path = str(path) path = resources_new2old.get(path, path) if path == source: # Hit the old name self.set_property(key, str(target), language=lang) # Tagaware ? if isinstance(self, TagsAware): TagsAware.update_links(self, source, target) # Change resource get_context().database.change_resource(self)