hawat.const module

This module contains global application-wide constants for Hawat user interface.

hawat.const.ACTION_ITEM_CREATE = 'create'

Name of the item create action.

hawat.const.ACTION_ITEM_CREATEFOR = 'createfor'

Name of the item createfor action.

hawat.const.ACTION_ITEM_DELETE = 'delete'

Name of the item delete action.

hawat.const.ACTION_ITEM_DISABLE = 'disable'

Name of the item disable action.

hawat.const.ACTION_ITEM_ENABLE = 'enable'

Name of the item enable action.

hawat.const.ACTION_ITEM_UPDATE = 'update'

Name of the item update action.

hawat.const.ACTION_USER_LOGIN = 'login'

Name of the user login action.

hawat.const.ACTION_USER_LOGOUT = 'logout'

Name of the user logout action.

hawat.const.ACTION_USER_REGISTER = 'register'

Name of the user register action.

hawat.const.CFGKEY_ENABLED_BLUEPRINTS = 'ENABLED_BLUEPRINTS'

Configuration key name: List of all requested blueprints.

hawat.const.CFGKEY_MENTAT_CACHE_DIR = 'MENTAT_CACHE_DIR'

Configuration key name: Path to Mentat cache dir.

hawat.const.CFGKEY_MENTAT_CORE = 'MENTAT_CORE'

Configuration key name: Core Mentat configurations.

hawat.const.CFGKEY_MENU_MAIN_SKELETON = 'MENU_MAIN_SKELETON'

Configuration key name: Default application main menu skeleton.

hawat.const.CFGKEY_MODELS = 'MODELS'

Configuration key name: List of all requested blueprints.

hawat.const.CRE_COUNTRY_CODE = re.compile('^[a-zA-Z]{2,3}$')

Compiled regular expression for validating language/country codes.

hawat.const.CRE_EMAIL = re.compile('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$')

Compiled regular expression for email address format validation.

hawat.const.CRE_GROUP_NAME = re.compile('^[-_@.a-zA-Z0-9]+$')

Compiled regular expression for group name validation.

hawat.const.CRE_LANG_CODE = re.compile('^[a-zA-Z]{2}(_[a-zA-Z]{2})?$')

Compiled regular expression for validating language codes.

hawat.const.CRE_LOGIN = re.compile('^[-_@.a-zA-Z0-9]+$')

Compiled regular expression for login validation.

hawat.const.DEFAULT_LOCALE = 'en'

Default application locale.

hawat.const.DEFAULT_PAGER_LIMIT = 100

Default page limit for pager/paginator.

hawat.const.DEFAULT_RESULT_TIMEDELTA = 7

Default result time delta for searching various objects.

hawat.const.DEFAULT_TIMEZONE = 'UTC'

Default application timezone.

hawat.const.FLASH_FAILURE = 'danger'

Class for failure flash messages.

hawat.const.FLASH_INFO = 'info'

Class for info flash messages.

hawat.const.FLASH_SUCCESS = 'success'

Class for success flash messages.

hawat.const.FLASH_WARNING = 'warning'

Class for warning flash messages.

hawat.const.FORM_ACTION_CANCEL = 'cancel'

Name of the item form cancel button.

hawat.const.FORM_ACTION_SUBMIT = 'submit'

Name of the item form submit button.

hawat.const.ICONS = {'action-add-member': '<i class="fas fa-fw fa-user-plus"></i>', 'action-create': '<i class="fas fa-fw fa-plus-circle"></i>', 'action-create-user': '<i class="fas fa-fw fa-user-plus"></i>', 'action-delete': '<i class="fas fa-fw fa-trash"></i>', 'action-delete-user': '<i class="fas fa-fw fa-user-slash"></i>', 'action-disable': '<i class="fas fa-fw fa-lock"></i>', 'action-disable-user': '<i class="fas fa-fw fa-user-lock"></i>', 'action-download': '<i class="fas fa-fw fa-file-download"></i>', 'action-download-csv': '<i class="fas fa-fw fa-file-csv"></i>', 'action-download-js': '<i class="fab fa-fw fa-js"></i>', 'action-download-svg': '<i class="fas fa-fw fa-file-image"></i>', 'action-download-zip': '<i class="fas fa-fw fa-file-archive"></i>', 'action-enable': '<i class="fas fa-fw fa-unlock"></i>', 'action-enable-user': '<i class="fas fa-fw fa-user-check"></i>', 'action-genkey': '<i class="fas fa-fw fa-key"></i>', 'action-mail': '<i class="fas fa-fw fa-envelope"></i>', 'action-more': '<i class="fas fa-fw fa-cubes"></i>', 'action-rej-member': '<i class="fas fa-fw fa-user-minus"></i>', 'action-reload': '<i class="fas fa-fw fa-sync-alt"></i>', 'action-rem-member': '<i class="fas fa-fw fa-user-times"></i>', 'action-save': '<i class="fas fa-fw fa-save"></i>', 'action-search': '<i class="fas fa-fw fa-search"></i>', 'action-show': '<i class="fas fa-fw fa-eye"></i>', 'action-show-user': '<i class="fas fa-fw fa-user-circle"></i>', 'action-sort': '<i class="fas fa-fw fa-sort"></i>', 'action-sort-asc': '<i class="fas fa-fw fa-sort-up"></i>', 'action-sort-desc': '<i class="fas fa-fw fa-sort-down"></i>', 'action-stop': '<i class="fas fa-fw fa-stop-circle"></i>', 'action-update': '<i class="fas fa-fw fa-edit"></i>', 'action-update-user': '<i class="fas fa-fw fa-user-edit"></i>', 'actions': '<i class="fas fa-fw fa-wrench"></i>', 'ajax-loader': '<i class="fas fa-fw fa-spinner fa-spin fa-4x"></i>', 'alert-danger': '<i class="fas fa-fw fa-exclamation-triangle"></i>', 'alert-info': '<i class="fas fa-fw fa-info-circle"></i>', 'alert-success': '<i class="fas fa-fw fa-check-circle"></i>', 'alert-warning': '<i class="fas fa-fw fa-exclamation-circle"></i>', 'anchor': '<i class="fas fa-fw fa-anchor"></i>', 'avg': '<i class="fas fa-fw fa-dot-circle"></i>', 'backtotop': '<i class="fas fa-fw fa-level-up-alt"></i>', 'calendar': '<i class="fas fa-fw fa-calendar-alt"></i>', 'caret-down': '<i class="fas fa-fw fa-caret-square-down"></i>', 'check': '<i class="fas fa-fw fa-check-square"></i>', 'check_blank': '<i class="far fa-fw fa-square"></i>', 'clock': '<i class="fas fa-fw fa-clock"></i>', 'cnt': '<i class="fas fa-fw fa-hashtag"></i>', 'cog': '<i class="fas fa-fw fa-cog"></i>', 'collapse': '<i class="fas fa-fw fa-angle-down" aria-hidden="true"></i>', 'compress': '<i class="fas fa-fw fa-gift"></i>', 'debug': '<i class="fas fa-fw fa-bug"></i>', 'domain': '<i class="fas fa-fw fa-tag"></i>', 'eventclss': '<i class="fas fa-fw fa-book"></i>', 'expand': '<i class="fas fa-fw fa-angle-left" aria-hidden="true"></i>', 'export': '<i class="fas fa-fw fa-cloud-download"></i>', 'first': '<i class="fas fa-fw fa-angle-double-left"></i>', 'form-error': '<i class="fas fa-fw fa-exclamation-triangle" aria-hidden="true"></i>', 'help': '<i class="fas fa-fw fa-question-circle"></i>', 'import': '<i class="fas fa-fw fa-cloud-upload"></i>', 'item-disabled': '<i class="fas fa-fw fa-toggle-off"></i>', 'item-enabled': '<i class="fas fa-fw fa-toggle-on"></i>', 'ko': '<i class="fas fa-fw fa-times"></i>', 'language': '<i class="fas fa-fw fa-globe"></i>', 'last': '<i class="fas fa-fw fa-angle-double-right" aria-hidden="true"></i>', 'liitem': '<i class="fas fa-li fa-asterisk" aria-hidden="true"></i>', 'list': '<i class="fas fa-fw fa-list-ul"></i>', 'login': '<i class="fas fa-fw fa-sign-in-alt"></i>', 'logout': '<i class="fas fa-fw fa-sign-out-alt"></i>', 'mail': '<i class="fas fa-fw fa-envelope"></i>', 'max': '<i class="fas fa-fw fa-angle-double-up"></i>', 'med': '<i class="fas fa-fw fa-bullseye"></i>', 'min': '<i class="fas fa-fw fa-angle-double-down"></i>', 'missing-icon': '<i class="fas fa-fw fa-question" title="Missing icon"></i>', 'modal-question': '<i class="fas fa-fw fa-question-circle"></i>', 'module-auth-api': '<i class="fas fa-fw fa-id-card-alt"></i>', 'module-auth-dev': '<i class="fas fa-fw fa-id-card-alt"></i>', 'module-auth-env': '<i class="fas fa-fw fa-id-card-alt"></i>', 'module-changelogs': '<i class="fas fa-fw fa-clipboard-list"></i>', 'module-dashboards': '<i class="fas fa-fw fa-tachometer-alt"></i>', 'module-dbstatus': '<i class="fas fa-fw fa-database"></i>', 'module-design': '<i class="fas fa-fw fa-palette"></i>', 'module-detectors': '<i class="fas fa-fw fa-user-secret"></i>', 'module-devtools': '<i class="fas fa-fw fa-bug"></i>', 'module-dnsr': '<i class="fas fa-fw fa-directions"></i>', 'module-events': '<i class="fas fa-fw fa-bell"></i>', 'module-filters': '<i class="fas fa-fw fa-filter"></i>', 'module-geoip': '<i class="fas fa-fw fa-map-marked-alt"></i>', 'module-groups': '<i class="fas fa-fw fa-users"></i>', 'module-help': '<i class="fas fa-fw fa-question-circle"></i>', 'module-home': '<i class="fas fa-fw fa-home"></i>', 'module-hosts': '<i class="fas fa-fw fa-server"></i>', 'module-nerd': '<i class="fas fa-fw fa-certificate"></i>', 'module-networks': '<i class="fas fa-fw fa-sitemap"></i>', 'module-pdnsr': '<i class="fas fa-fw fa-compass"></i>', 'module-performance': '<i class="fas fa-fw fa-chart-bar"></i>', 'module-reports': '<i class="fas fa-fw fa-newspaper"></i>', 'module-settings-reporting': '<i class="fas fa-fw fa-sliders-h"></i>', 'module-skeleton': '<i class="fas fa-fw fa-skull"></i>', 'module-status': '<i class="fas fa-fw fa-heartbeat"></i>', 'module-timeline': '<i class="fas fa-fw fa-chart-line"></i>', 'module-users': '<i class="fas fa-fw fa-user"></i>', 'module-whois': '<i class="fas fa-fw fa-map-signs"></i>', 'mute': '<i class="fas fa-fw fa-volume-off"></i>', 'na': '<i class="fas fa-fw fa-times"></i>', 'next': '<i class="fas fa-fw fa-angle-right"></i>', 'ok': '<i class="fas fa-fw fa-check"></i>', 'playground': '<i class="fas fa-fw fa-gamepad"></i>', 'previous': '<i class="fas fa-fw fa-angle-left"></i>', 'profile': '<i class="fas fa-fw fa-id-card"></i>', 'quicksearch': '<i class="fab fa-fw fa-searchengin"></i>', 'r-s-critical': '<i class="fas fa-fw fa-thermometer-full"></i>', 'r-s-high': '<i class="fas fa-fw fa-thermometer-three-quarters"></i>', 'r-s-low': '<i class="fas fa-fw fa-thermometer-quarter"></i>', 'r-s-medium': '<i class="fas fa-fw fa-thermometer-half"></i>', 'r-s-unknown': '<i class="fas fa-fw fa-thermometer-empty"></i>', 'r-t-extra': '<i class="fas fa-fw fa-file-alt"></i>', 'r-t-summary': '<i class="fas fa-fw fa-archive"></i>', 'redirect': '<i class="fas fa-fw fa-share"></i>', 'reference': '<i class="fas fa-fw fa-external-link-alt"></i>', 'register': '<i class="fas fa-fw fa-user-plus"></i>', 'report-data-filtered': '<i class="fas fa-fw fa-filter"></i>', 'report-data-mailed': '<i class="fas fa-fw fa-envelope"></i>', 'report-data-relapsed': '<i class="fas fa-fw fa-sync-alt"></i>', 'report-data-test': '<i class="fas fa-fw fa-bug"></i>', 'role-admin': '<i class="fas fa-fw fa-user-ninja"></i>', 'role-anonymous': '<i class="fas fa-fw fa-user-secret"></i>', 'role-developer': '<i class="fas fa-fw fa-user-md"></i>', 'role-maintainer': '<i class="fas fa-fw fa-user-tie"></i>', 'role-user': '<i class="fas fa-fw fa-user"></i>', 'search': '<i class="fas fa-fw fa-search"></i>', 'section-administration': '<i class="fas fa-fw fa-cogs"></i>', 'section-dashboards': '<i class="fas fa-fw fa-tachometer-alt"></i>', 'section-development': '<i class="fas fa-fw fa-bug"></i>', 'section-home': '<i class="fas fa-fw fa-home"></i>', 'section-more': '<i class="fas fa-fw fa-puzzle-piece"></i>', 'sortasc': '<i class="fas fa-fw fa-sort-asc"></i>', 'sortdesc': '<i class="fas fa-fw fa-sort-desc"></i>', 'stats': '<i class="fas fa-fw fa-bar-chart"></i>', 'stopwatch': '<i class="fas fa-fw fa-stopwatch"></i>', 'structure': '<i class="fas fa-fw fa-tree"></i>', 'sum': '<i class="fas fa-fw fa-plus"></i>', 'table': '<i class="fas fa-fw fa-table"></i>', 'time-from': '<i class="fas fa-fw fa-hourglass-start"></i>', 'time-to': '<i class="fas fa-fw fa-hourglass-end"></i>', 'unassigned': '<i class="fas fa-fw fa-minus"></i>', 'uncompress': '<span class="fa-layers fa-fw"><i class="fas fa-fw fa-gift"></i><i class="fas fa-fw fa-ban"></i></span>', 'undisclosed': '<i class="fas fa-fw fa-minus"></i>', 'unmute': '<i class="fas fa-fw fa-volume-up"></i>', 'unredirect': '<span class="fa-layers fa-fw"><i class="fas fa-fw fa-share"></i><i class="fas fa-fw fa-ban"></i></span>', 'validate': '<i class="fas fa-fw fa-check-circle"></i>', 'weight': '<i class="fas fa-fw fa-weight"></i>'}

Predefined list of selected font-awesome icons that are used in this application.

hawat.const.ICON_NAME_MISSING_ICON = 'missing-icon'

Name of the icon to display instead of missing icons.

hawat.const.MODEL_DETECTOR = 'detector'

Name of the ‘detector’ model.

hawat.const.MODEL_GROUP = 'group'

Name of the ‘user’ model.

hawat.const.MODEL_ITEM_CHANGELOG = 'item_changelog'

Name of the ‘user’ model.

hawat.const.MODEL_USER = 'user'

Name of the ‘user’ model.

hawat.const.NO_ROLE = '__NO_ROLE__'

Special constant for selecting users with no roles.

hawat.const.PAGER_LIMIT_CHOICES = [(5, 5), (10, 10), (20, 20), (25, 25), (50, 50), (100, 100), (200, 200), (250, 250), (500, 500), (1000, 1000), (2500, 2500), (5000, 5000), (10000, 10000), (25000, 25000), (50000, 50000), (100000, 100000)]

List of available valid pager limit choices.

hawat.const.RESOURCE_BABEL = 'babel'

Name for the flask_babel.Babel object within the application resources.

hawat.const.RESOURCE_LOGIN_MANAGER = 'login_manager'

Name for the flask_login.LoginManager object within the application resources.

hawat.const.RESOURCE_MIGRATE = 'migrate'

Name for the flask_migrate.Migrate object within the application resources.

hawat.const.RESOURCE_PRINCIPAL = 'principal'

Name for the flask_principal.Principal object within the application resources.

hawat.const.ROLES = ['user', 'developer', 'maintainer', 'admin']

List of valid user roles.

hawat.const.ROLE_ADMIN = 'admin'

Name of the ‘admin’ role.

hawat.const.ROLE_DEVELOPER = 'developer'

Name of the ‘developer’ role.

hawat.const.ROLE_MAINTAINER = 'maintainer'

Name of the ‘maintainer’ role.

hawat.const.ROLE_USER = 'user'

Name of the ‘user’ role.

hawat.const.TIME_WINDOWS = {'12h': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '12w': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '1d': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '1h': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '1w': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '2d': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '2h': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '2w': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '3d': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '3h': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '4h': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '4w': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, '6h': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, 'td': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, 'tm': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, 'tw': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}, 'ty': {'current': <function <lambda>>, 'next': <function <lambda>>, 'previous': <function <lambda>>}}

Default list of time windows for ‘by time’ quicksearch lists.

hawat.const.tr_(val)[source]

Method for marking translatable strings according to the documentation recipe at https://docs.python.org/3/library/gettext.html#deferred-translations.