Skip to content

Commit 06e8488

Browse files
committed
initial app
1 parent 49e31d8 commit 06e8488

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+536
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ref: https://docs.graphene-python.org/projects/django/en/latest/tutorial-relay/

nshm/__init__.py

Whitespace-only changes.
137 Bytes
Binary file not shown.
1.18 KB
Binary file not shown.

nshm/__pycache__/apps.cpython-310.pyc

412 Bytes
Binary file not shown.
2.37 KB
Binary file not shown.
2.22 KB
Binary file not shown.

nshm/admin.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from django.contrib import admin
2+
3+
from .models import (
4+
SeismicHazardModel,
5+
SourceLogicTree,
6+
SourceLogicTreeComponent,
7+
SourceLogicTreeWeightedComponent
8+
)
9+
10+
class SeismicHazardModelAdmin(admin.ModelAdmin):
11+
fields = ["version", "notes", "source_logic_tree" ]
12+
13+
class SourceLogicTreeAdmin(admin.ModelAdmin):
14+
fields = ["version", "notes"]
15+
16+
class SourceLogicTreeComponentAdmin(admin.ModelAdmin):
17+
fields = ["tag", "notes", "inversion_toshi_id", "background_toshi_id", "tectonic_region", "group" ]
18+
19+
class SourceLogicTreeWeightedComponentAdmin(admin.ModelAdmin):
20+
fields = ["weight", "source_logic_tree", "source_logic_tree_component"]
21+
22+
admin.site.register(SeismicHazardModel, SeismicHazardModelAdmin)
23+
admin.site.register(SourceLogicTree, SourceLogicTreeAdmin)
24+
admin.site.register(SourceLogicTreeComponent, SourceLogicTreeComponentAdmin)
25+
admin.site.register(SourceLogicTreeWeightedComponent, SourceLogicTreeWeightedComponentAdmin)

nshm/apps.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.apps import AppConfig
2+
3+
4+
class NshmConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
6+
name = 'nshm'

nshm/migrations/0001_initial.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Generated by Django 4.2.4 on 2023-08-23 21:55
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
initial = True
9+
10+
dependencies = [
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='SeismicHazardModel',
16+
fields=[
17+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18+
('version', models.CharField(max_length=30)),
19+
('notes', models.TextField()),
20+
],
21+
),
22+
migrations.CreateModel(
23+
name='SourceLogicTree',
24+
fields=[
25+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
26+
('version', models.CharField(max_length=30)),
27+
('notes', models.TextField()),
28+
],
29+
),
30+
]
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 00:38
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('nshm', '0001_initial'),
11+
]
12+
13+
operations = [
14+
migrations.AddField(
15+
model_name='seismichazardmodel',
16+
name='source_logic_tree',
17+
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='nshm.sourcelogictree'),
18+
),
19+
migrations.AlterField(
20+
model_name='sourcelogictree',
21+
name='notes',
22+
field=models.TextField(blank=True, help_text='users can search on this so please add some useful text'),
23+
),
24+
]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 01:21
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('nshm', '0002_seismichazardmodel_source_logic_tree_and_more'),
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='SourceLogicTreeComponent',
16+
fields=[
17+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18+
('tag', models.CharField(max_length=50)),
19+
('notes', models.TextField()),
20+
('inversion_toshi_id', models.CharField(max_length=50)),
21+
('background_toshi_id', models.CharField(max_length=50, null=True)),
22+
],
23+
),
24+
migrations.CreateModel(
25+
name='SourceLogicTreeWeightedComponent',
26+
fields=[
27+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
28+
('weight', models.FloatField()),
29+
('source_logic_tree', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='nshm.sourcelogictree')),
30+
('source_logic_tree_component', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='nshm.sourcelogictreecomponent')),
31+
],
32+
),
33+
]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 01:32
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('nshm', '0003_sourcelogictreecomponent_and_more'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='sourcelogictreecomponent',
15+
name='tectonic_region',
16+
field=models.CharField(choices=[('CRUSTAL', 'Crustal'), ('SUBDUCTION', 'Subduction'), ('INTERFACE', 'Interface')], default='CRUSTAL', max_length=10),
17+
preserve_default=False,
18+
),
19+
]
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 02:08
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('nshm', '0004_sourcelogictreecomponent_tectonic_region'),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name='sourcelogictreeweightedcomponent',
16+
name='source_logic_tree',
17+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slt_weighted_components', to='nshm.sourcelogictree'),
18+
),
19+
migrations.AlterField(
20+
model_name='sourcelogictreeweightedcomponent',
21+
name='source_logic_tree_component',
22+
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='slt_weighted_components', to='nshm.sourcelogictreecomponent'),
23+
),
24+
]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 02:11
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('nshm', '0005_alter_sourcelogictreeweightedcomponent_source_logic_tree_and_more'),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name='seismichazardmodel',
16+
name='source_logic_tree',
17+
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='seismic_hazard_models', to='nshm.sourcelogictree'),
18+
),
19+
]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 02:39
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('nshm', '0006_alter_seismichazardmodel_source_logic_tree'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='sourcelogictreecomponent',
15+
name='group',
16+
field=models.CharField(choices=[('Slab', 'Slab'), ('Hikurangi', 'Hik'), ('Puysegur', 'Puy'), ('Crustal', 'Cru')], default='HIK', max_length=10),
17+
preserve_default=False,
18+
),
19+
]
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Generated by Django 4.2.4 on 2023-08-24 03:30
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('nshm', '0007_sourcelogictreecomponent_group'),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name='seismichazardmodel',
16+
name='notes',
17+
field=models.TextField(blank=True, null=True),
18+
),
19+
migrations.AlterField(
20+
model_name='seismichazardmodel',
21+
name='source_logic_tree',
22+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='seismic_hazard_models', to='nshm.sourcelogictree'),
23+
),
24+
migrations.AlterField(
25+
model_name='sourcelogictree',
26+
name='notes',
27+
field=models.TextField(blank=True, help_text='users can search on this.. please add some useful text here', null=True),
28+
),
29+
migrations.AlterField(
30+
model_name='sourcelogictree',
31+
name='version',
32+
field=models.CharField(max_length=40),
33+
),
34+
migrations.AlterField(
35+
model_name='sourcelogictreecomponent',
36+
name='notes',
37+
field=models.TextField(blank=True, null=True),
38+
),
39+
]

nshm/migrations/__init__.py

Whitespace-only changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.

nshm/models.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from django.db import models
2+
3+
# Create your models here.
4+
TECTONIC_REGIONS = models.TextChoices("TectonicRegion", "CRUSTAL SUBDUCTION INTERFACE")
5+
SLT_GROUP = models.TextChoices("SourceLogicTreeGroup",
6+
(("SLAB", "Slab"), ("HIK", "Hikurangi"), ("PUY", "Puysegur"), ("CRU", "Crustal"))
7+
)
8+
9+
class SourceLogicTree(models.Model):
10+
version = models.CharField(max_length=40)
11+
notes = models.TextField(help_text="users can search on this.. please add some useful text here", blank=True, null=True)
12+
13+
def __str__(self):
14+
return self.version
15+
16+
class SeismicHazardModel(models.Model):
17+
version = models.CharField(max_length=30)
18+
notes = models.TextField(null=True, blank=True)
19+
source_logic_tree = models.ForeignKey(
20+
SourceLogicTree, related_name='seismic_hazard_models',null=True, blank=True, on_delete=models.SET_NULL)
21+
22+
def __str__(self):
23+
return self.version
24+
25+
26+
class SourceLogicTreeComponent(models.Model):
27+
tag = models.CharField(max_length=50)
28+
notes = models.TextField(null=True, blank=True)
29+
inversion_toshi_id = models.CharField(max_length=50, null=False)
30+
background_toshi_id = models.CharField(max_length=50, null=True)
31+
tectonic_region = models.CharField(choices=TECTONIC_REGIONS.choices, null=False, max_length=10)
32+
group = models.CharField(choices=SLT_GROUP.choices, null=False, max_length=10)
33+
34+
def __str__(self):
35+
return f"{self.tag} {self.tectonic_region}"
36+
37+
class SourceLogicTreeWeightedComponent(models.Model):
38+
weight = models.FloatField()
39+
source_logic_tree = models.ForeignKey(
40+
SourceLogicTree, related_name='slt_weighted_components', null=False, on_delete=models.CASCADE)
41+
source_logic_tree_component = models.ForeignKey(SourceLogicTreeComponent, related_name='slt_weighted_components', null=True, on_delete=models.SET_NULL)
42+
43+
def __str__(self):
44+
return f"{self.source_logic_tree_component.tag} {self.weight}"

nshm/schema.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from graphene import relay, ObjectType
2+
from graphene_django import DjangoObjectType
3+
from graphene_django.filter import DjangoFilterConnectionField
4+
5+
from nshm import models
6+
# import Category, Ingredient
7+
8+
# Graphene will automatically map the Category model's fields onto the CategoryNode.
9+
# This is configured in the CategoryNode's Meta class (as you can see below)
10+
class SourceLogicTree(DjangoObjectType):
11+
class Meta:
12+
model = models.SourceLogicTree
13+
filter_fields = ['version', 'notes']
14+
interfaces = (relay.Node, )
15+
16+
class SeismicHazardModel(DjangoObjectType):
17+
class Meta:
18+
model = models.SeismicHazardModel
19+
20+
# Allow for some more advanced filtering here
21+
filter_fields = {
22+
'version': ['exact', 'icontains', 'istartswith'],
23+
'notes': ['icontains'],
24+
'source_logic_tree__version': ['exact'],
25+
# 'category__name': ['exact'],
26+
}
27+
interfaces = (relay.Node, )
28+
29+
class SourceLogicTreeComponent(DjangoObjectType):
30+
class Meta:
31+
model = models.SourceLogicTreeComponent
32+
interfaces = (relay.Node, )
33+
filter_fields = ['tag', 'notes', 'inversion_toshi_id', 'group', 'tectonic_region']
34+
35+
class SourceLogicTreeWeightedComponent(DjangoObjectType):
36+
class Meta:
37+
model = models.SourceLogicTreeWeightedComponent
38+
interfaces = (relay.Node, )
39+
40+
class Query(ObjectType):
41+
seismic_hazard_model = relay.Node.Field(SeismicHazardModel)
42+
all_seismic_hazard_models = DjangoFilterConnectionField(SeismicHazardModel)
43+
44+
source_logic_tree = relay.Node.Field(SourceLogicTree)
45+
all_source_logic_trees = DjangoFilterConnectionField(SourceLogicTree)
46+
47+
source_logic_tree_component = relay.Node.Field(SourceLogicTreeComponent)
48+
all_source_logic_tree_components = DjangoFilterConnectionField(SourceLogicTreeComponent)
49+
50+
# source_logic_tree_weighted_component = relay.Node.Field(SourceLogicTreeWeightedComponent)

nshm/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

nshm/views.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.shortcuts import render
2+
3+
# Create your views here.

nzshm_model_graphql_api/__init__.py

Whitespace-only changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

nzshm_model_graphql_api/asgi.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""
2+
ASGI config for cookbook project.
3+
4+
It exposes the ASGI callable as a module-level variable named ``application``.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
8+
"""
9+
10+
import os
11+
12+
from django.core.asgi import get_asgi_application
13+
14+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cookbook.settings')
15+
16+
application = get_asgi_application()

nzshm_model_graphql_api/schema.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import graphene
2+
3+
import nshm.schema
4+
5+
class Query(nshm.schema.Query, graphene.ObjectType):
6+
# This class will inherit from multiple Queries
7+
# as we begin to add more apps to our project
8+
pass
9+
10+
schema = graphene.Schema(query=Query)

0 commit comments

Comments
 (0)