Info

class plinth.app.Info(app_id, version, is_essential=False, depends=None, name=None, icon=None, icon_filename=None, short_description=None, description=None, manual_page=None, clients=None)[source]

Component to capture basic information about an app.

__init__(app_id, version, is_essential=False, depends=None, name=None, icon=None, icon_filename=None, short_description=None, description=None, manual_page=None, clients=None)[source]

Store the basic properties of an app as a component.

Each app must contain at least one component of this type to provide basic information about the app such as it’s version number.

Instead of polluting the list of properties of an app, this component stores them separately. This component can also be safely passed around to template etc. without exposing the methods of an app and without creating unnecessarily cyclic dependencies.

‘app_id’ must be the unique ID of the app to which this information belongs.

‘version’ is the monotonically increasing positive integer starting at 1. It represents the version number of the app. It is used by the setup mechanism. When an app’s version number is increased, the setup mechanism assumes that the setup() method of the app needs to run again. This is used to upgrade/change configuration/setup of a app when a new version of the app is deployed on users’ machine.

‘is_essential’ is a boolean that marks the app as mandatory for the basic functions of the system. If True, this app will be installed and setup during the first run of FreedomBox even before first setup wizard is shown to the user.

‘depends’ is the list of other apps that this app depends on. Apps from this list are guaranteed to be initialized before initializing the app to which this component belongs.

‘name’ is the user visible name of this app. It is shown as the title of the app in the list of apps and when viewing app details. It should be a lazily translated Django string.

‘icon’ is the name of icon to use with this app from a predetermined list of icons. This is currently an icon class name from the Fork Awesome font. It is used when showing the app in the System section. Each app typically has either an ‘icon’ or ‘icon_filename’ property set.

‘icon_filename’ is the name of the icon file, without the suffix, to be used with this app. A .svg file (used in the web interface) and a .png file (currently used by Android App) must be provided by the app. It is used in the primary app page and on the app listing page. Each app typically has either an ‘icon’ or ‘icon_filename’ property set.

‘short_description’ is the user visible generic name of the app. For example, for the ‘Tor’ app the short description is ‘Anonymity Network’. It is shown along with the name of the app in the list of apps and when viewing the app’s main page. It should be a lazily translated Django string.

‘description’ is the user visible full description of the app. It is shown along in the app page along with other app details. It should be a list of lazily translated Django strings. Each string is rendered as a paragraph on the page. It may contain HTML <a> tags to provide links to external content.

‘manual_page’ is the optional name of the page for this app in the user manual. If provided, a ‘Learn more…’ link appears in the app page for this app.

‘clients’ is the list of applications that can be used with the services provided by this app. This is used to suggest installation of compatible clients on desktop, web and mobile. This is a list of dictionaries who structure is documented in plinth.clients.