Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Model redesign #30

Merged
merged 77 commits into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
f6ee54c
Reorganize model definitions (first pass)
annehaley Oct 9, 2023
1cde6c9
Use relative locations for docker volume mounts and fix tox
annehaley Oct 9, 2023
27ecae0
Start new migration history
annehaley Oct 9, 2023
a22b715
Udate admin.py for new models
annehaley Oct 9, 2023
3c74ab7
Format new models files
annehaley Oct 9, 2023
d894e77
Update rest viewsets for new models
annehaley Oct 9, 2023
acda2c3
Update model references in tasks
annehaley Oct 9, 2023
d28edfa
Various design changes
annehaley Oct 9, 2023
aaa1c7f
Another design iteration
annehaley Oct 11, 2023
3e6b67f
Small changes to some fields
annehaley Oct 12, 2023
1afb1f4
Separate Charts from DataSources
annehaley Oct 12, 2023
cd31d9e
Fix Chart-FileItem relationship
annehaley Oct 12, 2023
bdcece6
Update populate script and conversion tasks
annehaley Oct 12, 2023
87d8195
Rename DataSources to MapLayers
annehaley Oct 18, 2023
cfd6a07
Change Cities into Contexts
annehaley Oct 18, 2023
edb1ada
Rename "Original" to "Source"
annehaley Oct 19, 2023
08779f3
Use S3FileField for large geojson data
annehaley Oct 19, 2023
7597f1b
Add more print statements for object creations
annehaley Oct 19, 2023
384194e
Include population script successful output as txt file
annehaley Oct 19, 2023
d0faf2f
Call tox environments as separate CI steps
annehaley Oct 19, 2023
537153b
Fix linting
annehaley Oct 19, 2023
9efb8e3
Move env to run step for pytest & check-migrations
annehaley Oct 19, 2023
ea94851
More lint fixes
annehaley Oct 19, 2023
ba68040
Use native environment file for testing
annehaley Oct 19, 2023
a214b4f
Fix multi-container environment with compose action
annehaley Oct 19, 2023
48dfb09
Fix import of DerivedRegionCreationError (changed name for lint)
annehaley Oct 19, 2023
4c3917e
Use repository link to install django-configurations, latest version
annehaley Oct 20, 2023
f6789e2
Add populate test
annehaley Oct 20, 2023
1305b01
Ensure large-image-converter is installed prior to pytest
annehaley Oct 20, 2023
7fb50ea
City -> Context
annehaley Oct 23, 2023
c0b6a8d
Resolve import errors with consistent Vue setup structure
annehaley Oct 23, 2023
9f17c5f
Fix some rest endpoints
annehaley Oct 23, 2023
ad49ab1
Fix some typing
annehaley Oct 23, 2023
9f80c14
Add a test for client lint/type
annehaley Oct 23, 2023
432828b
Disable failure on warnings for lint-client
annehaley Oct 23, 2023
1ef509e
Other store typing changes
annehaley Oct 23, 2023
6128827
Merge changes from #32
annehaley Oct 23, 2023
43f85be
Fix CI syntax
annehaley Oct 23, 2023
159b5b7
Update conversion tasks for networks and regions
annehaley Oct 26, 2023
a574476
More API changes
annehaley Oct 26, 2023
8c13bd1
Enable GCC features
annehaley Oct 26, 2023
4b9a3b3
Lint fixes
annehaley Oct 26, 2023
085d830
Fix web client build warnings related to versions
annehaley Oct 26, 2023
03ae6c3
Fix population of GCC chart
annehaley Oct 26, 2023
04966ab
Create slider for current map layer (shown for datasets where more th…
annehaley Oct 26, 2023
e6bd902
More fixes for layer behavior
annehaley Oct 27, 2023
632236a
Esure context switching clears state and fetches new objects
annehaley Oct 27, 2023
f7bb553
Enable Simulations features
annehaley Oct 27, 2023
eb1fe01
Improve vector map layer styling to highlight GCC
annehaley Oct 27, 2023
5431478
Enable Derived Regions features
annehaley Oct 30, 2023
c20c94e
Lint fixes
annehaley Oct 30, 2023
9d3f8c7
Switch order of populate script function calls (Datasets come first)
annehaley Oct 30, 2023
fb93dfd
Allow user to apply style changes to all layers in Dataset
annehaley Oct 31, 2023
34b79f3
Add label to Context dropdown
annehaley Oct 31, 2023
790e6df
Fix applying zIndex when switching layers on the same Dataset
annehaley Oct 31, 2023
6acaaf6
Add indexes and constraints to VectorTile
jjnesbitt Nov 2, 2023
a088c52
Remove geojson_data JSONField, reorg geojson funcs
jjnesbitt Nov 2, 2023
cef6f5e
Add dataset classification
jjnesbitt Nov 7, 2023
a3df988
Use tile extents instead of tile coords
jjnesbitt Nov 9, 2023
0efeab8
Fix type errors for AbstractLayer
jjnesbitt Nov 9, 2023
c96ff90
Don't create local paths for service volumes
jjnesbitt Nov 14, 2023
f987749
Retrieve map layers from dataset detail endpoint
jjnesbitt Nov 14, 2023
4e19483
Fix linting
jjnesbitt Nov 15, 2023
4ab6137
Squash migrations into initial
jjnesbitt Nov 15, 2023
4b62b03
Add TODO
jjnesbitt Nov 17, 2023
55fbff5
Exclude "Extended" serializers from serializer matches in `get_availa…
annehaley Nov 17, 2023
3d4287f
Use already-fetched map layers, consistent use of caching and types
annehaley Nov 17, 2023
1175a1b
Fix reference to "dataset" object (instead of "Dataset" class)
annehaley Nov 17, 2023
334b445
Add TODO
jjnesbitt Nov 21, 2023
52d8d4d
Merge pull request #35 from OpenGeoscience/web-updates-updates
jjnesbitt Nov 22, 2023
93ae876
Fix bug in getOrCreateLayerFromID
jjnesbitt Nov 22, 2023
56eab4a
Merge pull request #34 from OpenGeoscience/web-updates
annehaley Nov 22, 2023
a2026de
Merge pull request #33 from OpenGeoscience/ci-testing
annehaley Nov 27, 2023
6459e75
Merge remote-tracking branch 'origin/master' into model-redesign
annehaley Nov 27, 2023
dfe4c74
Use `selectedDerivedRegions` storage instead of `isDerivedRegionSelec…
annehaley Nov 27, 2023
0a2c9ca
Update behavior around availableDerivedRegions
jjnesbitt Nov 27, 2023
361ec2f
Fix layers edge case bugs
annehaley Nov 27, 2023
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
.terraform/
postgres/*
minio/*
rabbitmq/*
.vscode/
staticfiles/
sample_data/**/*
Expand Down
6 changes: 3 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ services:
ports:
- ${DOCKER_POSTGRES_PORT-5432}:5432
volumes:
- postgres:/var/lib/postgresql/data
- ./postgres:/var/lib/postgresql/data

rabbitmq:
image: rabbitmq:management
ports:
- ${DOCKER_RABBITMQ_PORT-5672}:5672
- ${DOCKER_RABBITMQ_CONSOLE_PORT-15672}:15672
volumes:
- rabbitmq:/var/lib/rabbitmq/mnesia
- ./rabbitmq:/var/lib/rabbitmq/mnesia
logging:
driver: none

Expand All @@ -38,7 +38,7 @@ services:
- ${DOCKER_MINIO_PORT-9000}:9000
- ${DOCKER_MINIO_CONSOLE_PORT-9001}:9001
volumes:
- minio:/data
- ./minio:/data
logging:
driver: none

Expand Down
10 changes: 5 additions & 5 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tox]
envlist =
lint,
# test,
test,
check-migrations,

[testenv:lint]
Expand All @@ -16,7 +16,7 @@ deps =
flake8-quotes
pep8-naming
commands =
flake8 {posargs:.}
flake8 {posargs:uvdat}

[testenv:type]
skipsdist = true
Expand All @@ -26,7 +26,7 @@ deps =
django-stubs
djangorestframework-stubs
commands =
mypy {posargs:.}
mypy {posargs:uvdat}

[testenv:format]
skipsdist = true
Expand All @@ -35,8 +35,8 @@ deps =
black
isort
commands =
isort {posargs:.}
black {posargs:.}
isort {posargs:uvdat}
black {posargs:uvdat}

[testenv:test]
passenv =
Expand Down
114 changes: 101 additions & 13 deletions uvdat/core/admin.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,126 @@
from django.contrib import admin

from uvdat.core.models import Chart, City, Dataset, NetworkNode, Region, SimulationResult
from uvdat.core.models import (
ChartDataSource,
City,
DataCollection,
Dataset,
DerivedRegion,
FileItem,
NetworkEdge,
NetworkNode,
OriginalRegion,
RasterDataSource,
SimulationResult,
VectorDataSource,
VectorTile,
)


class CityAdmin(admin.ModelAdmin):
list_display = ['id', 'name']


class DataCollectionAdmin(admin.ModelAdmin):
list_display = ['id', 'name']


class DatasetAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'category']
list_display = ['id', 'name', 'dataset_type', 'category', 'get_city_name']

def get_city_name(self, obj):
return obj.city.name

class NetworkNodeAdmin(admin.ModelAdmin):
list_display = ['name', 'dataset', 'get_adjacent']

def get_adjacent(self, obj):
return ', '.join(n.name for n in obj.adjacent_nodes.all())
class FileItemAdmin(admin.ModelAdmin):
list_display = ['id', 'get_dataset_name']

def get_dataset_name(self, obj):
return obj.dataset.name

class RegionAdmin(admin.ModelAdmin):
list_display = ['id', 'name']

class ChartDataSourceAdmin(admin.ModelAdmin):
list_display = ['id', 'get_dataset_name', 'editable', 'index']

class ChartAdmin(admin.ModelAdmin):
list_display = ['id', 'name']
def get_dataset_name(self, obj):
return obj.dataset.name


class RasterDataSourceAdmin(admin.ModelAdmin):
list_display = ['id', 'get_dataset_name', 'index']

def get_dataset_name(self, obj):
return obj.dataset.name


class VectorDataSourceAdmin(admin.ModelAdmin):
list_display = ['id', 'get_dataset_name', 'index']

def get_dataset_name(self, obj):
return obj.dataset.name


class VectorTileAdmin(admin.ModelAdmin):
list_display = ['id', 'get_dataset_name', 'get_data_source_index', 'x', 'y', 'z']

def get_dataset_name(self, obj):
return obj.data_source.dataset.name

def get_data_source_index(self, obj):
return obj.data_source.index


class OriginalRegionAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'get_city_name']

def get_city_name(self, obj):
return obj.city.name


class DerivedRegionAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'get_city_name', 'operation', 'get_original_region_names']

def get_city_name(self, obj):
return obj.city.name

def get_original_region_names(self, obj):
return ', '.join(r.name for r in obj.original_regions.all())


class NetworkEdgeAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'get_dataset_name', 'get_connected_node_names']

def get_dataset_name(self, obj):
return obj.dataset.name

def get_connected_node_names(self, obj):
return ', '.join(n.name for n in obj.connected_nodes.all())


class NetworkNodeAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'get_dataset_name', 'get_adjacent_node_names']

def get_dataset_name(self, obj):
return obj.dataset.name

def get_adjacent_node_names(self, obj):
return ', '.join(n.name for n in obj.get_adjacent_nodes())


class SimulationResultAdmin(admin.ModelAdmin):
list_display = ['id', 'simulation_id', 'input_args']
list_display = ['id', 'simulation_type', 'input_args']


admin.site.register(City, CityAdmin)
admin.site.register(DataCollection, DataCollectionAdmin)
admin.site.register(Dataset, DatasetAdmin)
admin.site.register(FileItem, FileItemAdmin)
admin.site.register(ChartDataSource, ChartDataSourceAdmin)
admin.site.register(RasterDataSource, RasterDataSourceAdmin)
admin.site.register(VectorDataSource, VectorDataSourceAdmin)
admin.site.register(VectorTile, VectorTileAdmin)
admin.site.register(OriginalRegion, OriginalRegionAdmin)
admin.site.register(DerivedRegion, DerivedRegionAdmin)
admin.site.register(NetworkNode, NetworkNodeAdmin)
admin.site.register(Region, RegionAdmin)
admin.site.register(Chart, ChartAdmin)
admin.site.register(NetworkEdge, NetworkEdgeAdmin)
admin.site.register(SimulationResult, SimulationResultAdmin)
40 changes: 0 additions & 40 deletions uvdat/core/migrations/0001_default_site.py

This file was deleted.

Loading