Skip to content

Commit fd0e0ef

Browse files
committed
Apply parameter template button to scenario section
1 parent e6a2c10 commit fd0e0ef

3 files changed

Lines changed: 44 additions & 0 deletions

File tree

activity_browser/app/actions/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,4 @@
9595
from .migrations_install import MigrationsInstall
9696
from .pyside_upgrade import PysideUpgrade
9797
from .metadatastore_open import MetaDataStoreOpen
98+
from .save_parameters_to_excel import SaveParametersToExcel
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import os
2+
3+
import pandas as pd
4+
5+
from qtpy import QtWidgets
6+
7+
from activity_browser.app import application
8+
from activity_browser.app.actions.base import ABAction, exception_dialogs
9+
from activity_browser.bwutils.utils import Parameters
10+
11+
12+
class SaveParametersToExcel(ABAction):
13+
"""
14+
ABAction to export database(s) to Excel format (.xlsx).
15+
"""
16+
text = "Save parameters to Excel (.xlsx)"
17+
tool_tip = "Save parameters to Excel format"
18+
19+
@classmethod
20+
@exception_dialogs
21+
def run(cls, file_path: str = None):
22+
if file_path is None:
23+
suggestion = os.path.expanduser("~/parameters.xlsx")
24+
25+
file_path, _ = QtWidgets.QFileDialog.getSaveFileName(
26+
parent=application.main_window,
27+
caption=f'Export parameters to Excel',
28+
dir=suggestion,
29+
filter='Excel spreadsheet (*.xlsx);; All files (*.*)'
30+
)
31+
32+
if not file_path:
33+
return
34+
35+
data = [p[:3] for p in Parameters.from_bw_parameters()]
36+
df = pd.DataFrame(data, columns=["Name", "Group", "default"]).set_index("Name")
37+
df.to_excel(file_path)
38+
39+
os.startfile(file_path)

activity_browser/app/pages/calculation_setup/scenario_section.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ def __init__(self, parent=None):
2525
self._scenario_dataframe = pd.DataFrame()
2626

2727
# set up the control buttons
28+
self.get_template_btn = app.actions.SaveParametersToExcel.get_QButton()
29+
self.get_template_btn.setText("Parameter template...")
30+
2831
self.table_btn = QtWidgets.QPushButton("Add scenarios...", self)
2932

3033
self.save_scenario = QtWidgets.QPushButton("Save to file...", self)
@@ -63,6 +66,7 @@ def __init__(self, parent=None):
6366

6467
tool_row.addWidget(widgets.ABLabel.demiBold(" Scenarios:", self))
6568
tool_row.addStretch()
69+
tool_row.addWidget(self.get_template_btn)
6670
tool_row.addWidget(self.table_btn)
6771
tool_row.addWidget(self.save_scenario)
6872
tool_row.addWidget(self.group_box)

0 commit comments

Comments
 (0)