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