safe/gui/tools/help/options_help.py
# coding=utf-8
"""Help text for options dialog."""
from safe import messaging as m
from safe.messaging import styles
from safe.utilities.i18n import tr
from safe.utilities.resources import resources_path
SUBSECTION_STYLE = styles.SUBSECTION_LEVEL_3_STYLE
INFO_STYLE = styles.BLUE_LEVEL_4_STYLE
SMALL_ICON_STYLE = styles.SMALL_ICON_STYLE
__copyright__ = "Copyright 2016, The InaSAFE Project"
__license__ = "GPL version 3"
__email__ = "info@inasafe.org"
__revision__ = '$Format:%H$'
def options_help():
"""Help message for options dialog.
.. versionadded:: 3.2.1
:returns: A message object containing helpful information.
:rtype: messaging.message.Message
"""
message = m.Message()
message.add(m.Brand())
message.add(heading())
message.add(content())
return message
def heading():
"""Helper method that returns just the header.
This method was added so that the text could be reused in the
other contexts.
.. versionadded:: 3.2.2
:returns: A heading object.
:rtype: safe.messaging.heading.Heading
"""
message = m.Heading(tr('InaSAFE options help'), **SUBSECTION_STYLE)
return message
def content():
"""Helper method that returns just the content.
This method was added so that the text could be reused in the
dock_help module.
.. versionadded:: 3.2.2
:returns: A message object without brand element.
:rtype: safe.messaging.message.Message
"""
message = m.Message()
message.add(m.Paragraph(tr(
'The InaSAFE options dialog is used to control various aspects of '
'the InaSAFE analysis and reporting environment. Here are brief '
'descriptions of all the options available, grouped by the tab '
'page on which they occur.'
)))
header = m.Heading(tr('Organisation Profile tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-organisation-screenshot.png' %
resources_path()),
style_class='text-center'
)
message.add(paragraph)
message.add(m.Paragraph(tr(
'The Organisation Profile tab provides several general settings:'
)))
bullets = m.BulletedList()
bullets.add(m.Text(
m.ImportantText(tr(
'Organisation')),
tr(' - Use this option to specify the name of your organisation.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Contact email')),
tr(' - Use this option to specify the contact person\'s email '
'address to use in the generated metadata document.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Website')),
tr(' - Use this option to set the website address to be used in '
'the generated metadata document.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Use custom organisation logo')),
tr(' - By default, InaSAFE will add the supporters logo to each '
'map template. The supporters logo is also used at tbe bottom '
'of the dock panel if the \'show organisation logo in dock\' '
'option is enabled. You can use this option to replace the '
'organisation logo with that of your own organisation. The logo '
'will be rescaled automatically to fill the space provided.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Currency')),
tr(' - InaSAFE will use the selected currency for the analysis.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Analysis license')),
tr(' - Use this to set the usage and redistribution license for the '
'generated impact layer.')))
message.add(bullets)
header = m.Heading(tr('Population Parameters tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-population-screenshot.png' % resources_path()),
style_class='text-center'
)
message.add(paragraph)
message.add(m.Paragraph(tr(
'In this tab you can define some parameters that will be used by '
'InaSAFE in the analysis of exposed populations. You have the option '
'to change the parameters for whether the exposed population is '
'considered to be affected by each hazard type and class, and the '
'displacement rate that will be used for affected people.'
)))
bullets = m.BulletedList()
bullets.add(m.Text(
m.ImportantText(tr(
'Affected')),
tr(
' - When this option is checked, people exposed to the hazard '
'class will be included in the count of affected people.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Displacement Rate')),
tr(
' - The displacement rate is used to estimate the number of '
'people displaced for each hazard class. People must be affected '
'before they can be displaced. ')))
message.add(bullets)
message.add(m.Paragraph(tr(
'Please refer to the InaSAFE manual for concept definitions and '
'more information on the source of the hazard classifications and '
'default settings. We really encourage you to consider these '
'parameters carefully and to choose appropriate values for your '
'local situation based on past events and expert knowledge.'
)))
header = m.Heading(tr('GIS Environment tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-environment-screenshot.png' % resources_path()),
style_class='text-center'
)
message.add(paragraph)
message.add(m.Paragraph(tr(
'The GIS Environment tab provides several general settings:'
)))
bullets = m.BulletedList()
bullets.add(m.Text(
m.ImportantText(tr(
'Always show welcome message when opening QGIS with InaSAFE')),
tr(
' - When this option is enabled, the welcome message will be '
'enabled when opening QGIS with InaSAFE. By default the Welcome '
'message will be displayed.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Show organisation logo in InaSAFE dock')),
tr(
' - When this option is enabled, a logo will be displayed at the '
'bottom of the InaSAFE dock widget. By default the logo used '
'is the InaSAFE supporters logo, but you can alter this by '
'setting the \'Use custom organisation logo\' option in '
'the template options tab (see below).')))
bullets.add(m.Text(
m.ImportantText(tr(
'Show only visible layers in the InaSAFE dock')),
tr(
' - When this option is enabled layers that are not visible '
'in the QGIS layers panel will not be shown in the hazard, '
'exposure and aggregation combo boxes in the dock area.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Set QGIS layer name from title in keywords')),
tr(' - If this option is enabled, the InaSAFE keywords title '
'attribute will be used for the layer name in the QGIS Layers list '
'when adding a layer.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Zoom to impact layer on scenario estimate completion')),
tr(' - When this option is enabled, the map view extents will '
'be updated to match the extents of the generated impact layer '
'once the analysis completes.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Hide exposure on scenario estimate completion')),
tr(' - Use this option if you prefer to not show the exposure '
'layer as an underlay behind the generated impact layer.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Show only impact layer on report map')),
tr('When this option is enabled, the map report created after an '
'analysis completes will not show any other layers in your '
'current project except for the impact layer. ')))
bullets.add(m.Text(
m.ImportantText(tr(
'Print atlas report on atlas driven template with the '
'aggregation layer')),
tr('When this option is enabled, InaSAFE will generate an atlas '
'report based on aggregation area if the template has atlas '
'generation flag enabled.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Use selected features only with the aggregation layer')),
tr('If enabled, running an analysis with some features of the '
'aggregation layer selected will constrain the analysis to only '
'those selected aggregation areas, all others will be ignored.')))
bullets.add(m.Text(
m.ImportantText(tr('Location for results')),
tr(' - By default, InaSAFE will write impact layer and intermediate '
'outputs to the system temporary directory. On some operating '
'systems, these temporary files will be deleted on each reboot. '
'If you wish to, you can specify an alternative directory '
'to use for storing these temporary files.')))
message.add(bullets)
header = m.Heading(tr('Earthquake tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-earthquake-screenshot.png' %
resources_path()),
style_class='text-center'
)
message.add(paragraph)
paragraph = m.Paragraph(tr(
'In this tab you can select which earthquake fatality model to use '
'when estimating earthquake impact on population. This option is '
'global - it will affect all subsequent earthquake analyses carried '
'out in InaSAFE.'
))
message.add(paragraph)
paragraph = m.Paragraph(tr(
'When selecting an earthquake analysis model, its details will be '
'shown below in the text box area.'
))
message.add(paragraph)
header = m.Heading(tr('Template Options tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-template-screenshot.png' %
resources_path()),
style_class='text-center'
)
message.add(paragraph)
message.add(m.Paragraph(tr(
'This tab has options relating to the generation of map composer '
'templates and how reports will be printed:'
'.'
)))
bullets = m.BulletedList()
bullets.add(m.Text(
m.ImportantText(tr(
'Use custom north arrow image')),
tr(' - InaSAFE provides a basic north arrow which is placed on '
'generated map compositions and rendered PDF reports. You can '
'replace this north arrow with one of your own choosing using '
'this option.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Use custom disclaimer text')),
tr(' - By default, InaSAFE will display a disclaimer on reports '
'advising readers of the report to exercise caution when '
'interpreting the outputs presented. You can override this '
'text using this option, though we do advise that you include '
'a similar statement of caution in your overridden text.')))
message.add(bullets)
header = m.Heading(tr('Demographic Defaults tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-demographic-screenshot.png' %
resources_path()),
style_class='text-center'
)
message.add(paragraph)
paragraph = m.Paragraph(tr(
'In this tab you will find options for setting the default ratios '
'for demographic groups. There is more detailed help on demographic '
'groups within the main help page for InaSAFE in the Field Mapping '
'Tool section. Essentially default ratios for demographic groups '
'determine what proportion of the population are within each '
'population group (e.g. infants versus children etc.). The options '
'defined in this tab are used in cases where you choose to use the '
'global default ratios while configuring the keywords for an '
'aggregation layer as shown below.'
))
message.add(paragraph)
paragraph = m.Paragraph(tr(
'Note that the contents of this tab may changed depending on what '
'groups have been defined for demographic breakdowns.'
))
message.add(paragraph)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'field-mapping-tool-default-ratios-screenshot.png' %
resources_path()),
style_class='text-center'
)
message.add(paragraph)
header = m.Heading(tr('Advanced tab'), **INFO_STYLE)
message.add(header)
paragraph = m.Paragraph(
m.Image(
'file:///%s/img/screenshots/'
'inasafe-options-advanced-screenshot.png' %
resources_path()),
style_class='text-center'
)
message.add(paragraph)
message.add(m.Paragraph(tr(
'This tab contains options intended for advanced users only: '
)))
bullets = m.BulletedList()
bullets.add(m.Text(
m.ImportantText(tr(
'Keyword cache for remote databases')),
tr(' - When InaSAFE is used with remote layers (for example a '
'database layer or a WFS layer), it is not possible to store the '
'keywords for the layer with the layer itself. To accommodate for '
'these types of layers, InaSAFE writes the keywords to a small '
'file based database (using sqlite) and then retrieves them based '
'on unique connection details used for that layer. You can '
'specify a custom path to be used for storing the keywords '
'database using this option.')))
bullets.add(m.Text(
m.ImportantText(tr(
'Help to improve InaSAFE by submitting errors to a '
'remote server')),
tr(' - With this option enabled, InaSAFE will post any errors that '
'occur to an online server for analysis by our development team. '
'This option is disabled by default as some may consider some of '
'the data submitted (IP Address, logged in user name) to be '
'sensitive.')))
bullets.add(m.Text(
m.ImportantText(tr('Enable developer mode')),
tr(' - When this option is enabled, right clicking on the webview '
'widget in the dock will allow you to debug the generated HTML. '
'In addition, if the metadata.txt for the running InaSAFE is '
'set to \'alpha\', an additional icon will be added to the '
'toolbar to add test layers to the QGIS project.')))
bullets.add(m.Text(
m.ImportantText(tr('Generate reports')),
tr(' - When this option is enabled, InaSAFE will generate reports. ')))
bullets.add(m.Text(
m.ImportantText(tr('Show memory profile')),
tr(' - When this option is enabled, InaSAFE will display the memory '
'profile when it runs. ')))
message.add(bullets)
return message