diff --git a/parameters.yaml b/parameters.yaml
index f91b975..4ac70bb 100644
--- a/parameters.yaml
+++ b/parameters.yaml
@@ -14,6 +14,10 @@ track_changes: True # tracks all changes since GUI startup by text highli
dt_thresh: [300, 1800] # threshold (s) for timing delay colourisation (yellow/red)
html_figures: True # Create html figure directory and links
+# add links to html table with specified key as column and value as relative link, interpretable string parameters:
+# nw (e.g. 1Y), st (e.g. GR01A), st_id (e.g. 1Y.GR01A)
+add_links: {} # for example: {'slmon': '{nw}_{st}.html'}
+
POWBOX:
pb_ok: 1 # Voltage for PowBox OK
pb_SOH2: # PowBox channel 2 voltage translations
diff --git a/survBot.py b/survBot.py
index 38b995e..1276c59 100755
--- a/survBot.py
+++ b/survBot.py
@@ -82,6 +82,8 @@ class SurveillanceBot(object):
self.networks_blacklist = self.parameters.get('networks_blacklist')
self.refresh_period = self.parameters.get('interval')
self.transform_parameters()
+ add_links = self.parameters.get('add_links')
+ self.add_links = add_links if add_links else {}
def transform_parameters(self):
for key in ['networks', 'stations', 'locations', 'channels']:
@@ -320,8 +322,12 @@ class SurveillanceBot(object):
init_html_table(outfile)
# First write header items
+ header = self.keys.copy()
+ # add columns for additional links
+ for key in self.add_links:
+ header.insert(-1, key)
header_items = [dict(text='Station', color=default_color)]
- for check_key in self.keys:
+ for check_key in header:
item = dict(text=check_key, color=default_color)
header_items.append(item)
write_html_row(outfile, header_items, html_key='th')
@@ -329,25 +335,35 @@ class SurveillanceBot(object):
# Write all cells
for st_id in self.station_list:
fig_name = self.get_fig_path_rel(st_id)
- col_items = [dict(text=st_id.rstrip('.'), color=default_color, image_src=fig_name)]
- for check_key in self.keys:
- status_dict, detailed_dict = self.analysis_results.get(st_id)
- status = status_dict.get(check_key)
+ col_items = [dict(text=st_id.rstrip('.'), color=default_color, hyperlink=fig_name)]
+ for check_key in header:
+ if check_key in self.keys:
+ status_dict, detailed_dict = self.analysis_results.get(st_id)
+ status = status_dict.get(check_key)
- # get background color
- dt_thresh = [timedelta(seconds=sec) for sec in self.dt_thresh]
- bg_color = get_bg_color(check_key, status, dt_thresh, hex=True)
- if not bg_color:
- bg_color = default_color
+ # get background color
+ dt_thresh = [timedelta(seconds=sec) for sec in self.dt_thresh]
+ bg_color = get_bg_color(check_key, status, dt_thresh, hex=True)
+ if not bg_color:
+ bg_color = default_color
- # add degree sign for temp
- if check_key == 'temp':
- if not type(status) in [str]:
- status = str(status) + deg_str
+ # add degree sign for temp
+ if check_key == 'temp':
+ if not type(status) in [str]:
+ status = str(status) + deg_str
- item = dict(text=str(status), tooltip=str(detailed_dict.get(check_key)),
- color=bg_color)
+ item = dict(text=str(status), tooltip=str(detailed_dict.get(check_key)),
+ color=bg_color)
+ elif check_key in self.add_links:
+ value = self.add_links.get(check_key)
+ if not value:
+ continue
+ nw, st = st_id.split('.')[:2]
+ hyperlink_dict = dict(nw=nw, st=st, st_id=st_id)
+ link = value.format(**hyperlink_dict)
+ item = dict(text='link', tooltip=link, hyperlink=link, color=default_color)
col_items.append(item)
+
write_html_row(outfile, col_items)
finish_html_table(outfile)
diff --git a/write_utils.py b/write_utils.py
index 5bb930a..de458f3 100644
--- a/write_utils.py
+++ b/write_utils.py
@@ -42,8 +42,8 @@ def write_html_row(fobj, items, html_key='td'):
color = item.get('color')
# check for black background of headers (shouldnt happen anymore)
color = '#e6e6e6' if color == '#000000' else color
- image_src = item.get('image_src')
- image_str = f'' if image_src else ''
+ hyperlink = item.get('hyperlink')
+ image_str = f'' if hyperlink else ''
fobj.write(2 * default_space + f'<{html_key} bgcolor="{color}" title="{tooltip}"> {image_str}'
+ text + f'{html_key}>\n')
fobj.write(default_space + '\n')