Orquestra¶
Orquestra is an application layout responsible for rendering applications’ layout.
Note
The HTML generated by Orquestra is already prepared to be responsive, thanks to the SemanticUI framework.
Configure an app layout¶
The Orquestra layout has predefined the next menus and apps rendering sections:
The apps may contain Orquestra flags to configure their behavior on the layout.
The flags are configured in the app class as it is exemplified bellow:
class SiteCrawlApp(BaseWidget):
...
LAYOUT_POSITION = conf.ORQUESTRA_HOME
ORQUESTRA_MENU = 'left'
ORQUESTRA_MENU_ICON = 'browser'
ORQUESTRA_MENU_ORDER = 0
Available flags¶
UID¶
The flag besides being used to define the unique identifier of the application it is also used by Orquestra to define the url of the app, therefore if an app has the UID=’something’ the url of the app will be /app/something
LAYOUT_POSITION¶
This flags is used to configure where the application should be rendered within the layout. It can has the next values:
VALUE |
Description |
---|---|
ORQUESTRA_HOME |
The app should be rendered in the home position. |
ORQUESTRA_HOME_FULL |
The app should be rendered in the home position but should occupy all the available space. |
ORQUESTRA_NEW_TAB |
The app should be rendered in the home position, but in a new tab. |
ORQUESTRA_NEW_TAB_FULL |
The app should be rendered in the home position, but in a new tab and should occupy all the available space. |
ORQUESTRA_APPEND_HOME |
The app should be appended to the end of the home position. This configuration can be used to stack several apps on the home. |
ORQUESTRA_NEW_WINDOW |
The app should be rendered in a popup window. |
ORQUESTRA_NEW_BIGWINDOW |
The app should be rendered in a wider popup window. |
How Orquestra works¶
This module composed by the next layers.
Apps manager layer¶
The apps manager is the module responsible for finding and selecting the apps that are going to used in the construction of the layout menus. Orquestra use the apps manager to find
Django view layer¶
Orquestra has a django’s view to generate the default html page. This view search for all the available apps to render the menus and apps according to the defined environment configurations.
HTML templates layer¶
The templates layer is where the html is configured. Here is where the layout is defined.
Javascript & CSS layer¶
CSS¶
This layer includes all the css used to render the layout.
Javascript¶
This layer includes all the js required to render the layout and set its behaviour. It is here also that the rendered sections are defined, so for each LAYOUT_POSITION flag value, there is a corresponding javascript function that render the app for the specific section.
Why such architecture?¶
The reason why the Orquestra application layer was create, was because like that the layout is separated from the apps execution. Having the exact same apps without touching any code I can refactor all the layout without just by switching the Orquestra layer by another.
Example:
This is a representation of where the Orquestra layer is positioned in relation to the pyforms framework.
Now if we switch the Orquestra layer by another layer called Kuloneco which implements rearranges the layout, the result will be the next: