Skip to content
Open
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
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
max-line-length = 120
6 changes: 2 additions & 4 deletions install.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# This file should be committed to your app code.
version: 1.0
# This should be greater or equal to your tethys-platform in your environment
tethys_version: ">=4.0.0"
# This should match the app - package name in your setup.py
name: ggst

Expand All @@ -10,11 +12,7 @@ requirements:
channels:
- conda-forge
packages:
- geopandas
- shapely
- xarray
- rioxarray
- netCDF4
- geopandas
pip:
- area
Expand Down
12 changes: 10 additions & 2 deletions tethysapp/ggst/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@
storage_options,
region_api_ts,
)
from tethys_sdk.routing import controller



@controller(name="subset-region-zipfile", url="ggst/api/subsetRegionZipfile/")
@api_view(["POST"])
@authentication_classes(
(
Expand Down Expand Up @@ -48,6 +51,8 @@ def subset_region_zip(request):
return JsonResponse({"error": f"Error processing request: {e}"})



@controller(name="region-zip-timeseries", url="ggst/api/zipRegionTimeseries/")
@api_view(["POST"])
@authentication_classes(
(
Expand Down Expand Up @@ -84,6 +89,7 @@ def region_zip_timeseries(request):


@api_view(["GET"])
@controller(name="get-region-timeseries", url="ggst/api/getRegionTimeseries/")
@authentication_classes(
(
TokenAuthentication,
Expand Down Expand Up @@ -117,7 +123,8 @@ def subset_region_api(request):

return JsonResponse(json_obj)


@api_view(["GET"])
@controller(name="get-storage-options", url="ggst/api/getStorageOptions/")
def api_get_storage_options(request):
return_obj = {}

Expand All @@ -126,7 +133,8 @@ def api_get_storage_options(request):
return_obj["storage_options"] = options
return JsonResponse(return_obj)


@api_view(["GET"])
@controller(name="get-point-values", url="ggst/api/getPointValues/")
def api_get_point_values(request):
return_obj = {}

Expand Down
127 changes: 4 additions & 123 deletions tethysapp/ggst/app.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
from tethys_sdk.base import TethysAppBase, url_map_maker
from tethys_sdk.app_settings import (
PersistentStoreDatabaseSetting,
PersistentStoreConnectionSetting,
CustomSetting,
)
from tethys_sdk.base import TethysAppBase
from tethys_sdk.app_settings import (CustomSetting)


class Ggst(TethysAppBase):
Expand All @@ -12,7 +8,7 @@ class Ggst(TethysAppBase):
"""

name = "Grace Groundwater Subsetting Tool"
index = "ggst:home"
index = "home"
icon = "ggst/images/logo.jpg"
package = "ggst"
root_url = "ggst"
Expand All @@ -22,122 +18,7 @@ class Ggst(TethysAppBase):
enable_feedback = False
feedback_emails = []

def url_maps(self):
"""
Add controllers
"""
UrlMap = url_map_maker(self.root_url)

url_maps = (
UrlMap(name="home", url="ggst", controller="ggst.controllers.home"),
UrlMap(
name="global-map",
url="ggst/global-map",
controller="ggst.controllers.global_map",
),
UrlMap(
name="global-map-ts",
url="ggst/global-map/get-plot-global",
controller="ggst.controllers_ajax.get_global_plot",
),
UrlMap(
name="region-map",
url="ggst/region-map",
controller="ggst.controllers.region_map",
),
UrlMap(
name="update-global-files",
url="ggst/update-global-files",
controller="ggst.controllers.update_global_files",
),
UrlMap(
name="update-global-files-trigger",
url="ggst/update-global-files/update",
controller="ggst.controllers_ajax.global_files_update",
),
UrlMap(
name="region-map-plot",
url="ggst/region-map/get-plot-region",
controller="ggst.controllers_ajax.get_region_plot",
),
UrlMap(
name="region-map-center",
url="ggst/region-map/map-center",
controller="ggst.controllers_ajax.get_region_center",
),
UrlMap(
name="region-map-range",
url="ggst/region-map/range",
controller="ggst.controllers_ajax.get_legend_range",
),
UrlMap(
name="add-region",
url="ggst/add-region",
controller="ggst.controllers.add_region",
),
UrlMap(
name="add-region-submit",
url="ggst/add-region/submit",
controller="ggst.controllers_ajax.region_add",
),
UrlMap(
name="delete-region",
url="ggst/delete-region",
controller="ggst.controllers.delete_region",
),
UrlMap(
name="submit-delete-region",
url="ggst/delete-region/delete",
controller="ggst.controllers_ajax.region_delete",
),
UrlMap(
name="subset_region",
url="ggst/api/subsetRegion",
controller="ggst.api.subset_region_api",
),
UrlMap(
name="subset_region_zip",
url="ggst/api/subsetRegionZipfile",
controller="ggst.api.subset_region_zip",
),
UrlMap(
name="global_time_step",
url="ggst/global-map/timestep",
controller="ggst.controllers_ajax.get_time_step_options",
),
UrlMap(
name="region_time_step",
url="ggst/region-map/timestep",
controller="ggst.controllers_ajax.get_time_step_options",
),
UrlMap(
name="region_geojson",
url="ggst/region-map/geojson",
controller="ggst.controllers_ajax.get_region_geojson",
),
UrlMap(
name="regional_time_series",
url="ggst/region-map/get-region-summary",
controller="ggst.controllers_ajax.get_region_chart",
),
UrlMap(
name="api_get_point_values",
url="ggst/api/getPointValues",
controller="ggst.api.api_get_point_values",
),
UrlMap(
name="api_get_storage_options",
url="ggst/api/getStorageOptions",
controller="ggst.api.api_get_storage_options",
),
UrlMap(
name="api_get_region_timeseries",
url="ggst/api/getRegionTimeseries",
controller="ggst.api.region_zip_timeseries",
),
)

return url_maps
controller_modules = ['controllers_ajax', "api"]

def custom_settings(self):
custom_settings = (
Expand Down
15 changes: 11 additions & 4 deletions tethysapp/ggst/controllers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render, reverse, redirect
from tethys_sdk.gizmos import TextInput, Button
from tethys_sdk.routing import controller

from .app import Ggst as app
from .utils import (
Expand All @@ -18,6 +19,7 @@
job_manager = app.get_job_manager()


@controller
def home(request):
"""
Controller for the app home page.
Expand All @@ -29,6 +31,7 @@ def home(request):
return render(request, "ggst/home.html", context)


@controller(name='global-map', url='ggst/global-map')
def global_map(request):
"""
Controller for the Global Map page.
Expand All @@ -48,6 +51,7 @@ def global_map(request):
return render(request, "ggst/global_map.html", context)


@controller(name='region-map', url='ggst/region-map')
def region_map(request):
"""
Controller for the Region Map home page.
Expand Down Expand Up @@ -81,18 +85,19 @@ def region_map(request):


@user_passes_test(user_permission_test)
@controller(name='add-region', url='ggst/add-region')
def add_region(request):

region_name_input = TextInput(
display_text="Region Display Name",
name="region-name-input",
placeholder="e.g.: Utah",
icon_append="glyphicon glyphicon-home",
icon_append="bi bi-house-door",
) # Input for the Region Display Name

add_button = Button(
display_text="Add Region",
icon="glyphicon glyphicon-plus",
icon="bi bi-plus",
style="success",
name="submit-add-region",
attributes={"id": "submit-add-region"},
Expand All @@ -104,14 +109,15 @@ def add_region(request):


@user_passes_test(user_permission_test)
@controller(name='delete-region', url='ggst/delete-region')
def delete_region(request):

region_select = get_region_select()
num_regions = len(region_select.options)

delete_button = Button(
display_text="Delete Region",
icon="glyphicon glyphicon-minus",
icon="bi bi-dash",
style="danger",
name="submit-delete-region",
attributes={"id": "submit-delete-region"},
Expand All @@ -126,13 +132,14 @@ def delete_region(request):
return render(request, "ggst/delete_region.html", context)


@controller(name='update-global-files', url='ggst/update-global-files')
def update_global_files(request):
"""
Controller for the Update Global Files page.
"""
update_button = Button(
display_text="Update Files",
icon="glyphicon glyphicon-plus",
icon="bi bi-plus",
style="success",
name="submit-update-files",
attributes={"id": "submit-update-files"},
Expand Down
Loading