Exemplo n.º 1
0
    def update_links(self, source, target):
        # FIXME BaseTheme does not take into account 'child'
        BaseTheme.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)

        # banner_path
        site_root = self.get_site_root()
        available_languages = site_root.get_property("website_languages")

        for language in available_languages:
            value = self.get_property("banner_path", language=language)
            if not value:
                continue
            path = old_base.resolve2(value)
            if path == source:
                # Hit the old name
                # Build the new reference with the right path
                self.set_property("banner_path", new_base.get_pathto(target), language=language)

        get_context().database.change_resource(self)
Exemplo n.º 2
0
 def init_resource(self, **kw):
     # Init resource
     BaseTheme.init_resource(self, **kw)
     # Get language
     website = self.parent
     language = website.get_default_language()
     # Banner (background set with CSS)
     path = get_abspath("data/k2-banner-ties.jpg")
     image = ro_database.get_handler(path, FileHandler)
     self.make_resource(
         "banner-itws",
         Image,
         body=image.to_str(),
         extension="jpg",
         filename="banner-itws.jpg",
         format="image/jpeg",
         state="public",
     )
     # Set banner title
     vhosts = website.get_property("vhosts")
     if vhosts:
         banner_title = vhosts[0]
     else:
         banner_title = website.get_title()
     self.set_property("banner_title", banner_title, language=language)
     # CSS file
     # TODO Add an API in ikaaro that allow to easily change CSS...
     path = get_abspath("ui/themes/style.css")
     body = open(path).read()
     style = self.get_resource("style")
     style.handler.load_state_from_string(body)
     style.handler.set_changed()
     # Custom 404
     self.make_resource("404", NotFoundPage)
     # Add footer
     self.make_resource("footer", FooterFolder)
     menu = self.get_resource("footer/menu")
     title = Property(MSG(u"Powered by itws").gettext(), language=language)
     menu.add_new_record({"title": title, "path": "/about-itws"})
     title = Property(MSG(u"Contact us").gettext(), language=language)
     menu.add_new_record({"title": title, "path": "/;contact"})
     # Turning footer
     self.make_resource("turning-footer", TurningFooterFolder)
Exemplo n.º 3
0
Arquivo: theme.py Projeto: hforge/itws
 def init_resource(self, **kw):
     # Init resource
     BaseTheme.init_resource(self, **kw)
     # Get language
     website = self.parent
     language = website.get_default_language()
     # Banner (background set with CSS)
     path = get_abspath('data/k2-banner-ties.jpg')
     image = ro_database.get_handler(path, FileHandler)
     self.make_resource('banner-itws', Image, body=image.to_str(),
                        extension='jpg', filename='banner-itws.jpg',
                        format='image/jpeg', state='public')
     # Set banner title
     vhosts = website.get_property('vhosts')
     if vhosts:
         banner_title = vhosts[0]
     else:
         banner_title = website.get_title()
     self.set_property('banner_title', banner_title, language=language)
     # Drop logo property since itws uses banner_path property
     self.del_property('logo')
     # CSS file
     # TODO Add an API in ikaaro that allow to easily change CSS...
     path = get_abspath('ui/themes/style.css')
     body = open(path).read()
     style = self.get_resource('style')
     style.handler.load_state_from_string(body)
     style.handler.set_changed()
     # Custom 404
     self.make_resource('404', NotFoundPage)
     # Add footer
     self.make_resource('footer', FooterFolder)
     menu = self.get_resource('footer/menu')
     title = Property(MSG(u'Powered by itws').gettext(),
                      language=language)
     menu.add_new_record({'title': title, 'path': '/about-itws'})
     title = Property(MSG(u'Contact us').gettext(),
                      language=language)
     menu.add_new_record({'title': title, 'path': '/;contact'})
     # Turning footer
     self.make_resource('turning-footer', TurningFooterFolder)
Exemplo n.º 4
0
    def update_relative_links(self, source):
        # FIXME BaseTheme does not take into account 'child'
        BaseTheme.update_relative_links(self, source)
        target = self.get_canonical_path()
        resources_old2new = get_context().database.resources_old2new

        # banner_path
        site_root = self.get_site_root()
        available_languages = site_root.get_property("website_languages")

        for language in available_languages:
            value = self.get_property("banner_path", language=language)
            if not value:
                continue

            # Calcul the old absolute path
            old_abs_path = source.resolve2(value)
            # Check if the target path has not been moved
            new_abs_path = resources_old2new.get(old_abs_path, old_abs_path)

            self.set_property("banner_path", target.get_pathto(new_abs_path), language=language)
Exemplo n.º 5
0
    def get_links(self):
        links = BaseTheme.get_links(self)
        base = self.get_canonical_path()

        # banner_path
        site_root = self.get_site_root()
        available_languages = site_root.get_property("website_languages")

        for language in available_languages:
            path = self.get_property("banner_path", language=language)
            links.add(str(base.resolve2(path)))

        return links