Source code for anyblok.bloks.anyblok_core.documentation.blok

# This file is a part of the AnyBlok project
#
#    Copyright (C) 2015 Jean-Sebastien SUZANNE <jssuzanne@anybox.fr>
#
# This Source Code Form is subject to the terms of the Mozilla Public License,
# v. 2.0. If a copy of the MPL was not distributed with this file,You can
# obtain one at http://mozilla.org/MPL/2.0/.
from anyblok import Declarations


[docs]@Declarations.register(Declarations.Model.Documentation) class Blok: def __init__(self, blok, parent): self.blok = blok @classmethod def filterBloks(cls, query): Blok = cls.anyblok.System.Blok return query.filter(Blok.state == "installed").order_by(Blok.order) @classmethod def getelements(cls): Blok = cls.anyblok.System.Blok query = Blok.query() query = cls.filterBloks(query) return query.all() @classmethod def header2RST(cls, doc): doc.write("Bloks\n=====\n\n") @classmethod def footer2RST(cls, doc): pass def toRST(self, doc): doc.write(self.blok.name + "\n" + "-" * len(self.blok.name) + "\n\n") doc.write(self.blok.short_description + "\n\n") self.toRST_write_params(doc) doc.write(self.blok.long_description + "\n\n") def toRST_get_field(self): return ("author", "version", "installed_version") def toRST_write_params(self, doc): fields = self.toRST_get_field() msg = "Parameter:\n\n* " msg += "\n* ".join( "**%s** = %s" % (f, getattr(self.blok, f)) for f in fields ) doc.write(msg + "\n\n")