Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions config.yaml.template
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ DEFAULT_VARIABLES:
memory_limit_mb: 50000
verbose: 1

# Valid HDF file extensions for data files
VALID_HDF_EXTENSIONS:
- .hdf
- .h4
- .hdf4
- .he2
- .h5
- .hdf5
- .he5

# Redis server configuration
REDIS_CONFIG:
host: localhost
Expand Down
32 changes: 22 additions & 10 deletions laue_portal/components/peakindex_form.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import dash_bootstrap_components as dbc
from dash import html, set_props
from dash import html, dcc, set_props
from laue_portal.components.form_base import _stack, _field, _select, _ckbx
from laue_portal.database.db_utils import make_IDnumber, parse_IDnumber
import laue_portal.database.db_schema as db_schema


peakindex_form = dbc.Row(
Expand Down Expand Up @@ -72,6 +74,8 @@
html.Option(value="Si_*_%d.h5", label="Si_*_%d.h5 (files 1–245)"),
]
),
# Hidden store for cached patterns per path
dcc.Store(id='peakindex-cached-patterns', data={}),
]
),
className="flex-grow-1",
Expand Down Expand Up @@ -501,13 +505,20 @@


def set_peakindex_form_props(peakindex, read_only=False):
#set_props("dataset", {'value':peakindex.dataset_id, 'readonly':read_only})
set_props("scanNumber", {'value':peakindex.scanNumber, 'readonly':read_only})
IDnumber = make_IDnumber(peakindex.scanNumber,peakindex.wirerecon_id,peakindex.recon_id,peakindex.peakindex_id)
set_props("IDnumber", {'value':IDnumber, 'readonly':read_only})
# set_props("scanNumber", {'value':peakindex.scanNumber, 'readonly':read_only})
set_props("root_path", {'value':peakindex.root_path, 'readonly':read_only})
set_props("data_path", {'value':peakindex.data_path, 'readonly':read_only})
set_props("filenamePrefix", {'value':','.join(peakindex.filenamePrefix), 'readonly':read_only})
set_props("recon_id", {'value':peakindex.recon_id, 'readonly':read_only})
set_props("wirerecon_id", {'value':peakindex.wirerecon_id, 'readonly':read_only})

# Convert list to comma-separated string for form display
filename_value = peakindex.filenamePrefix
if isinstance(filename_value, list):
filename_value = ', '.join(filename_value)
set_props("filenamePrefix", {'value':filename_value, 'readonly':read_only})
# set_props("filenamePrefix", {'value':peakindex.filenamePrefix, 'readonly':read_only})
# set_props("recon_id", {'value':peakindex.recon_id, 'readonly':read_only})
# set_props("wirerecon_id", {'value':peakindex.wirerecon_id, 'readonly':read_only})

# set_props("peakProgram", {'value':peakindex.peakProgram, 'readonly':read_only})
set_props("threshold", {'value':peakindex.threshold, 'readonly':read_only})
Expand All @@ -519,10 +530,10 @@ def set_peakindex_form_props(peakindex, read_only=False):
set_props("peakShape", {'value':peakindex.peakShape, 'disabled':read_only})
set_props("scanPoints", {'value':peakindex.scanPoints, 'readonly':read_only})
set_props("depthRange", {'value':peakindex.depthRange, 'readonly':read_only})
set_props("detectorCropX1", {'value':peakindex.detectorCropX1, 'readonly':read_only})
set_props("detectorCropX2", {'value':peakindex.detectorCropX2, 'readonly':read_only})
set_props("detectorCropY1", {'value':peakindex.detectorCropY1, 'readonly':read_only})
set_props("detectorCropY2", {'value':peakindex.detectorCropY2, 'readonly':read_only})
# set_props("detectorCropX1", {'value':peakindex.detectorCropX1, 'readonly':read_only})
# set_props("detectorCropX2", {'value':peakindex.detectorCropX2, 'readonly':read_only})
# set_props("detectorCropY1", {'value':peakindex.detectorCropY1, 'readonly':read_only})
# set_props("detectorCropY2", {'value':peakindex.detectorCropY2, 'readonly':read_only})
set_props("min_size", {'value':peakindex.min_size, 'readonly':read_only})
set_props("max_peaks", {'value':peakindex.max_peaks, 'readonly':read_only})
set_props("smooth", {'value':peakindex.smooth, 'disabled':read_only})
Expand Down Expand Up @@ -557,6 +568,7 @@ def set_peakindex_form_props(peakindex, read_only=False):
set_props("author", {'value':peakindex.author, 'readonly':read_only})
set_props("notes", {'value':peakindex.notes, 'readonly':read_only})


# @callback(
# Output("collapse1", "is_open"),
# [Input("collapse1-button", "n_clicks")],
Expand Down
25 changes: 19 additions & 6 deletions laue_portal/components/wire_recon_form.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import dash_bootstrap_components as dbc
from dash import html, set_props
from dash import html, dcc, set_props
from laue_portal.components.form_base import _stack, _field, _select, _notes
from laue_portal.database.db_utils import make_IDnumber, parse_IDnumber


wire_recon_form = dbc.Row(
Expand All @@ -12,9 +13,10 @@
dbc.Row(
[
dbc.Col(
_field("Scan Number", "scanNumber",
_field("ID Number: SN# | WR#", "IDnumber",
kwargs={
"placeholder": "e.g. 123 or 123, 126, 234 or 234-240",
"type": "text",
"placeholder": "e.g. SN123456 or WR1",
}),
className="flex-grow-1", # THIS makes it expand
style={"minWidth": 0}, # avoid overflow when very narrow
Expand All @@ -28,9 +30,10 @@
style={"minWidth": "220px", "whiteSpace": "nowrap"}, # fixed/min size
),
width="auto", # column sizes to content
className="d-flex justify-content-end mb-3", # optional: keep at right edge
className="d-flex justify-content-end", # optional: keep at right edge
),
],
className="mb-3",
align="center",
),
_stack(
Expand Down Expand Up @@ -62,6 +65,8 @@
html.Option(value="Si1_*_%d.h5", label="Si1_*_%d.h5 (files 1–245)"),
]
),
# Hidden store for cached patterns per path
dcc.Store(id='wirerecon-cached-patterns', data={}),
]
),
className="flex-grow-1",
Expand Down Expand Up @@ -225,12 +230,20 @@
)

def set_wire_recon_form_props(wirerecon, read_only=False):
set_props("scanNumber", {'value':wirerecon.scanNumber, 'readonly':read_only})
IDnumber = make_IDnumber(wirerecon.scanNumber, wirerecon.wirerecon_id)
set_props("IDnumber", {'value':IDnumber, 'readonly':read_only})
# set_props("scanNumber", {'value':wirerecon.scanNumber, 'readonly':read_only})

# File paths
set_props("root_path", {'value':wirerecon.root_path, 'readonly':read_only})
set_props("data_path", {'value':wirerecon.data_path, 'readonly':read_only})
set_props("filenamePrefix", {'value':','.join(wirerecon.filenamePrefix), 'readonly':read_only})

# Convert list to comma-separated string for form display
filename_value = wirerecon.filenamePrefix
if isinstance(filename_value, list):
filename_value = ', '.join(filename_value)
set_props("filenamePrefix", {'value':filename_value, 'readonly':read_only})
# set_props("filenamePrefix", {'value':wirerecon.filenamePrefix, 'readonly':read_only})

# User text
# set_props("author", {'value':wirerecon.author, 'readonly':read_only})
Expand Down
1 change: 1 addition & 0 deletions laue_portal/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,4 @@ def _load_config():
REDIS_CONFIG = _config.get('REDIS_CONFIG', {})
DASH_CONFIG = _config.get('DASH_CONFIG', {})
MOTOR_GROUPS = _config.get('MOTOR_GROUPS', {})
VALID_HDF_EXTENSIONS = _config.get('VALID_HDF_EXTENSIONS', [])
Loading