Skip to content

Commit 9e27622

Browse files
committed
Create button with action
1 parent 9813dd5 commit 9e27622

File tree

4 files changed

+47
-4
lines changed

4 files changed

+47
-4
lines changed

cesium_app/handlers/dataset.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from cesium import data_management, time_series
77
from cesium.util import shorten_fname
8+
from ..tests.fixtures import create_test_dataset
89

910
import os
1011
from os.path import join as pjoin
@@ -24,6 +25,12 @@ def _get_dataset(self, dataset_id):
2425
return d
2526

2627
def post(self):
28+
if self.get_argument('create_example'):
29+
project_id = self.get_argument('projectID')
30+
p = Project.get(Project.id == project_id)
31+
with create_test_dataset(p, delete_after=False) as d:
32+
return self.success(d, 'cesium/FETCH_DATASETS')
33+
2734
if not 'tarFile' in self.request.files:
2835
return self.error('No tar file uploaded')
2936

cesium_app/tests/fixtures.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def create_test_project():
2929

3030

3131
@contextmanager
32-
def create_test_dataset(project, label_type='class'):
32+
def create_test_dataset(project, label_type='class', delete_after=True):
3333
"""Create and yield test labeled dataset, then delete.
3434
3535
Params
@@ -57,12 +57,16 @@ def create_test_dataset(project, label_type='class'):
5757
tarball = shutil.copy2(tarball, cfg['paths']['upload_folder'])
5858
ts_paths = data_management.parse_and_store_ts_data(
5959
tarball, cfg['paths']['ts_data_folder'], header)
60-
d = m.Dataset.add(name='test_ds', project=project, file_uris=ts_paths)
60+
61+
name = 'Example Dataset'
62+
d = m.Dataset.add(name=name, project=project, file_uris=ts_paths)
6163
d.save()
64+
6265
try:
6366
yield d
6467
finally:
65-
d.delete_instance()
68+
if delete_after:
69+
d.delete_instance()
6670

6771

6872
@contextmanager

public/scripts/Datasets.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ let DatasetForm = (props) => {
6363

6464
<SubmitButton label="Upload Dataset" disabled={submitting} />
6565
</Form>
66+
<button
67+
onClick={props.createExampleDataset}
68+
>
69+
Use Example Dataset
70+
</button>
6671

6772
<CesiumTooltip
6873
id="headerfileTooltip"
@@ -101,7 +106,8 @@ const dsMapDispatchToProps = (dispatch, ownProps) => (
101106
{
102107
onSubmit: form => (
103108
dispatch(Action.uploadDataset(form))
104-
)
109+
),
110+
createExampleDataset: () => dispatch(Action.createExampleDataset(ownProps.selectedProject.id))
105111
}
106112
);
107113

public/scripts/actions.jsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export const FETCH_DATASETS = 'cesium/FETCH_DATASETS';
1717
export const RECEIVE_DATASETS = 'cesium/RECEIVE_DATASETS';
1818
export const UPLOAD_DATASET = 'cesium/UPLOAD_DATASET';
1919
export const DELETE_DATASET = 'cesium/DELETE_DATASET';
20+
export const CREATE_EXAMPLE_DATASET = 'cesium/CREATE_EXAMPLE_DATASET';
2021

2122
export const FETCH_FEATURES = 'cesium/FETCH_FEATURES';
2223
export const FETCH_FEATURESETS = 'cesium/FETCH_FEATURESETS';
@@ -228,6 +229,31 @@ function receiveDatasets(datasets) {
228229
}
229230

230231

232+
// Create example dataset
233+
export function createExampleDataset(projectID) {
234+
var form_data = new FormData();
235+
form_data.append('projectID', projectID);
236+
form_data.append('create_example', true);
237+
238+
return dispatch =>
239+
promiseAction(
240+
dispatch,
241+
CREATE_EXAMPLE_DATASET,
242+
243+
fetch('/dataset', {
244+
method: 'POST',
245+
body: form_data,
246+
})
247+
.then(response => response.json())
248+
.then((json) => {
249+
dispatch(fetchDatasets());
250+
dispatch(hideExpander('newDatasetExpander'));
251+
dispatch(resetForm('newDataset'));
252+
}).catch(ex => console.log('createExampleDataset', ex))
253+
);
254+
}
255+
256+
231257
// Download featuresets
232258
export function fetchFeaturesets() {
233259
return dispatch =>

0 commit comments

Comments
 (0)