def update_20090123(self): """html_content Unicode -> XHTMLBody""" from itools.core import merge_dicts from itools.html import HTMLParser from ikaaro.autoform import XHTMLBody site_root = self.get_site_root() available_languages = site_root.get_property("website_languages") class FakeHandler(FooterMenuFile): record_properties = merge_dicts(FooterMenuFile.record_properties, html_content=String(multilingual=True)) handler = self.handler try: handler.record_properties = FakeHandler.record_properties except IOError: # metadata handler exists but not the data one return old_handler = FakeHandler() old_handler.load_state_from_string(self.handler.to_str()) for record_id in old_handler.get_record_ids(): old_record = old_handler.get_record(record_id) old_get_value = old_handler.get_record_value for lang in available_languages: html_content = old_get_value(old_record, "html_content", lang) if html_content is None: continue # string -> events events = HTMLParser(html_content) p_value = Property(XHTMLBody.encode(events), language=lang) old_handler.update_record(record_id, **{"html_content": p_value}) handler.load_state_from_string(old_handler.to_str()) handler.set_changed()
def get_linked_resources_message(resource, context, state='public'): # Customize message if webpage uses private/pending resources referenced_resources = list(get_linked_resources(resource)) if len(referenced_resources) == 0: return None message = MSG(u'This {title} uses pending/private resources ' u'please go to ' u'<a href="{path}/;backlinks">backlinks interface</a>.') path = context.get_link(resource) path = XMLContent.encode(path) class_title = resource.class_title.gettext() message = message.gettext(title=class_title, path=path).encode('utf8') message = XHTMLBody.decode(message) # Return custom message return message
def build_warn_referenced_msg(resource, context, total): path = context.get_link(resource) path = XMLContent.encode(path) message = MSG_UNPUBLISHED_RESOURCES_LINKED(path=path, n=total) message = message.gettext().encode('utf8') return XHTMLBody.decode(message)
def get_value(self, resource, context, name, datatype): if name == 'configuration_shortcut': html = '<a href="/;edit_contact_options">configuration</a>' return XHTMLBody.decode(html) proxy = super(BoxContact_Edit, self) return proxy.get_value(resource, context, name, datatype)