Skip to content

Commit 3e29ac7

Browse files
authored
Merge pull request #31 from wseis/main
add wizard
2 parents 1424ef5 + e44fd63 commit 3e29ac7

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

+2237
-978
lines changed

tools/qmra.db

0 Bytes
Binary file not shown.

tools/qmratool/.DS_Store

0 Bytes
Binary file not shown.

tools/qmratool/admin.py

+39-18
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,43 @@
11
from django.contrib import admin
2-
from .models import Treatment, QA, Text, RiskAssessment, User, LogRemoval, Exposure, Reference, SourceWater, Pathogen, PathogenGroup, Health, Inflow, Guideline, DoseResponse
3-
4-
#from import_export.admin import ImportExportModelAdmin
2+
from .models import (
3+
Treatment,
4+
QA,
5+
Text,
6+
RiskAssessment,
7+
User,
8+
LogRemoval,
9+
Exposure,
10+
Reference,
11+
SourceWater,
12+
Pathogen,
13+
PathogenGroup,
14+
Health,
15+
Inflow,
16+
Guideline,
17+
DoseResponse,
18+
)
19+
20+
# from import_export.admin import ImportExportModelAdmin
521
# Register your models here.
622

23+
724
@admin.register(SourceWater)
825
class SourceWaterAdmin(admin.ModelAdmin):
926
pass
1027

1128

1229
@admin.register(Treatment)
1330
class TreatmentAdmin(admin.ModelAdmin):
14-
list_display=("id", "name", "group", "category")
31+
list_display = ("id", "name", "group", "category")
1532
pass
1633

34+
1735
@admin.register(Reference)
1836
class ReferenceAdmin(admin.ModelAdmin):
19-
list_display=("id", "name", "link")
37+
list_display = ("id", "name", "link")
2038
pass
2139

40+
2241
@admin.register(PathogenGroup)
2342
class PathogenGroupAdmin(admin.ModelAdmin):
2443
pass
@@ -28,9 +47,10 @@ class PathogenGroupAdmin(admin.ModelAdmin):
2847
class PathogenAdmin(admin.ModelAdmin):
2948
pass
3049

50+
3151
@admin.register(LogRemoval)
3252
class LogRemovalAdmin(admin.ModelAdmin):
33-
list_display=("id", "treatment", "pathogen_group", "min", "max", "reference")
53+
list_display = ("id", "treatment", "pathogen_group", "min", "max", "reference")
3454
pass
3555

3656

@@ -41,7 +61,7 @@ class ExposureAdmin(admin.ModelAdmin):
4161

4262
@admin.register(Inflow)
4363
class InflowAdmin(admin.ModelAdmin):
44-
list_display=("id", "pathogen", "water_source", "min", "max")
64+
list_display = ("id", "pathogen", "water_source", "min", "max")
4565
pass
4666

4767

@@ -57,21 +77,22 @@ class HealthAdmin(admin.ModelAdmin):
5777

5878
@admin.register(DoseResponse)
5979
class DoseResponseAdmin(admin.ModelAdmin):
60-
list_display=("id", "pathogen")
80+
list_display = ("id", "pathogen")
6181

6282

6383
@admin.register(User)
6484
class UserAdmin(admin.ModelAdmin):
65-
list_display=("id", "username")
66-
67-
# pass
68-
#admin.site.register(Treatment)
85+
list_display = ("id", "username")
86+
87+
88+
# pass
89+
# admin.site.register(Treatment)
6990
admin.site.register(RiskAssessment)
70-
#admin.site.register(User)
91+
# admin.site.register(User)
7192
admin.site.register(Text)
7293
admin.site.register(QA)
73-
#admin.site.register(LogRemoval)
74-
#admin.site.register(Exposure)
75-
#admin.site.register(Reference)
76-
#admin.site.register(SourceWater)
77-
#admin.site.register(PathogenGroup)
94+
# admin.site.register(LogRemoval)
95+
# admin.site.register(Exposure)
96+
# admin.site.register(Reference)
97+
# admin.site.register(SourceWater)
98+
# admin.site.register(PathogenGroup)

tools/qmratool/apps.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33

44
class QmratoolConfig(AppConfig):
5-
name = 'qmratool'
5+
name = "qmratool"

tools/qmratool/forms.py

+190-39
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,228 @@
11
from django import forms
2-
from .models import User, RiskAssessment, SourceWater,Inflow, PathogenGroup,Exposure, Treatment, LogRemoval, Reference, Comparison
2+
from .models import (
3+
User,
4+
RiskAssessment,
5+
SourceWater,
6+
Inflow,
7+
PathogenGroup,
8+
Exposure,
9+
Treatment,
10+
LogRemoval,
11+
Reference,
12+
Comparison,
13+
)
314
from crispy_forms.helper import FormHelper
4-
from crispy_forms.layout import Layout, Field, ButtonHolder, Submit
15+
from crispy_forms.layout import Layout, Field, ButtonHolder, Submit, Div
16+
from formtools.wizard.views import SessionWizardView
517

618

719
class RAForm(forms.ModelForm):
820
def __init__(self, user, *args, **kwargs):
921
super(RAForm, self).__init__(*args, **kwargs)
10-
self.fields['treatment'].help_text = "Please select your treatment configuration"
11-
self.fields['source'].help_text = "Please select your source water"
12-
self.fields['source'].empty_label = None
13-
self.fields['exposure'].empty_label = None
14-
self.fields['exposure'].help_text = "Please define your exposure scenario"
15-
self.fields['exposure'].queryset = Exposure.objects.filter(user__in=[user, 1]).order_by("id")
16-
self.fields['treatment'].queryset = Treatment.objects.filter(user__in=[user, 1]).order_by("id").order_by("category")
22+
self.fields[
23+
"treatment"
24+
].help_text = "Please select your treatment configuration"
25+
self.fields["source"].help_text = "Please select your source water"
26+
self.fields["source"].empty_label = None
27+
self.fields["exposure"].empty_label = None
28+
self.fields["exposure"].help_text = "Please define your exposure scenario"
29+
self.fields["exposure"].queryset = Exposure.objects.filter(
30+
user__in=[user, 1]
31+
).order_by("id")
32+
self.fields["treatment"].queryset = (
33+
Treatment.objects.filter(user__in=[user, 1])
34+
.order_by("id")
35+
.order_by("category")
36+
)
37+
self.fields["name"].widget.attrs.update({'class': 'text-field-bg'})
38+
self.fields["description"].widget.attrs.update({'class': 'text-field-bg'})
39+
1740
self.helper = FormHelper()
41+
42+
self.helper.layout = Layout(
43+
Div('source', css_class='radio-div-bg'),
44+
Div('exposure', css_class='radio-div-bg'),
45+
# Add other fields or layout objects as nee
46+
)
47+
1848
class Meta:
19-
model=RiskAssessment
20-
fields=["name","description","source","treatment", "exposure"]
21-
widgets={"source": forms.RadioSelect(attrs={"empty_label":None}),
22-
"treatment": forms.CheckboxSelectMultiple(), "exposure": forms.RadioSelect(attrs={"empty_label":None})}
23-
49+
model = RiskAssessment
50+
fields = ["name", "description", "source", "treatment", "exposure"]
51+
widgets = {
52+
"source": forms.RadioSelect(attrs={"class": "radio-bg", "empty_label": None}),
53+
"treatment": forms.CheckboxSelectMultiple(attrs={"class": "checkbox-bg"}),
54+
"exposure": forms.RadioSelect(attrs={"class": "radio-bg", "empty_label": None}),
55+
}
56+
2457

2558

2659
class SourceWaterForm(forms.ModelForm):
27-
class Meta():
60+
class Meta:
2861
model = SourceWater
2962
fields = ["water_source_name", "water_source_description"]
30-
31-
63+
64+
3265
class InflowForm(forms.ModelForm):
33-
class Meta():
66+
class Meta:
3467
model = Inflow
3568
fields = ["pathogen", "min", "max", "reference"]
36-
69+
3770

3871
class ExposureForm(forms.ModelForm):
3972
class Meta:
40-
model=Exposure
41-
fields=["name","description", "events_per_year", "volume_per_event", "reference"]
73+
model = Exposure
74+
fields = [
75+
"name",
76+
"description",
77+
"events_per_year",
78+
"volume_per_event",
79+
"reference",
80+
]
81+
4282
def __init__(self, *args, **kwargs):
4383
super(ExposureForm, self).__init__(*args, **kwargs)
44-
self.fields['name'].help_text = "The name of the exposure scenario should be unique"
45-
self.fields['description'].help_text = "Please enter a short description of the exposure scenario"
46-
47-
self.fields['events_per_year'].help_text = "Please enter the number of expected exposure events per year"
48-
self.fields['volume_per_event'].help_text = "Please enter the volume per exposure event in liters (e.g. 50 mL = 0.050)"
49-
self.fields['reference'].queryset = Reference.objects.filter(id = 51)
50-
51-
84+
self.fields[
85+
"name"
86+
].help_text = "The name of the exposure scenario should be unique"
87+
self.fields[
88+
"description"
89+
].help_text = "Please enter a short description of the exposure scenario"
90+
91+
self.fields[
92+
"events_per_year"
93+
].help_text = "Please enter the number of expected exposure events per year"
94+
self.fields[
95+
"volume_per_event"
96+
].help_text = (
97+
"Please enter the volume per exposure event in liters (e.g. 50 mL = 0.050)"
98+
)
99+
self.fields["reference"].queryset = Reference.objects.filter(id=51)
100+
101+
52102
class TreatmentForm(forms.ModelForm):
53103
class Meta:
54104
model = Treatment
55-
fields=["name", "description"]
105+
fields = ["name", "description"]
56106

57107

58108
class LogRemovalForm(forms.ModelForm):
59109
class Meta:
60110
model = LogRemoval
61-
fields = ['min', 'max', 'pathogen_group', "reference"]
111+
fields = ["min", "max", "pathogen_group", "reference"]
112+
62113
def __init__(self, *args, **kwargs):
63114
super(LogRemovalForm, self).__init__(*args, **kwargs)
64-
self.fields['reference'].queryset = Reference.objects.filter(id = 51)
65-
self.fields['pathogen_group'].widget = forms.HiddenInput()
115+
self.fields["reference"].queryset = Reference.objects.filter(id=51)
116+
self.fields["pathogen_group"].widget = forms.HiddenInput()
117+
66118

67-
68119
class ComparisonForm(forms.ModelForm):
69120
class Meta:
70-
model= Comparison
121+
model = Comparison
71122
fields = ["risk_assessment"]
72-
widgets={"risk_assessment": forms.CheckboxSelectMultiple()}
73-
def __init__(self, user, *args, **kwargs):
123+
widgets = {"risk_assessment": forms.CheckboxSelectMultiple()}
124+
125+
def __init__(self, user, *args, **kwargs):
74126
super(ComparisonForm, self).__init__(*args, **kwargs)
75-
self.fields["risk_assessment"].queryset = RiskAssessment.objects.filter(user = user)
76-
self.fields["risk_assessment"].help_text = "Select risk assessments for comparison"
127+
self.fields["risk_assessment"].queryset = RiskAssessment.objects.filter(
128+
user=user
129+
)
130+
self.fields[
131+
"risk_assessment"
132+
].help_text = "Select risk assessments for comparison"
133+
self.helper = FormHelper()
134+
135+
136+
# Step 1
137+
class RAFormStep1(forms.ModelForm):
138+
139+
140+
class Meta:
141+
model = RiskAssessment
142+
fields = ["name", "description"]
143+
144+
# Step 2
145+
class RAFormStep2(forms.ModelForm):
146+
def __init__(self, *args, **kwargs):
147+
super(RAFormStep2, self).__init__(*args, **kwargs)
148+
self.fields["source"].help_text = "Please select your source water"
149+
self.fields["source"].empty_label = None
77150
self.helper = FormHelper()
151+
class Meta:
152+
model = RiskAssessment
153+
fields = ["source"]
154+
widgets = {
155+
"source": forms.RadioSelect(attrs={"empty_label": None}),
156+
}
157+
158+
# Step 3
159+
class RAFormStep3(forms.ModelForm):
160+
def __init__(self, *args, **kwargs):
161+
super(RAFormStep3, self).__init__(*args, **kwargs)
162+
self.fields[
163+
"treatment"
164+
].help_text = "Please select your treatment configuration"
165+
166+
self.fields["treatment"].queryset = (
167+
Treatment.objects.filter(user__in=[1])
168+
.order_by("id")
169+
.order_by("category")
170+
)
171+
self.helper = FormHelper()
172+
class Meta:
173+
model = RiskAssessment
174+
fields = ["treatment"]
175+
widgets = {
176+
"treatment": forms.CheckboxSelectMultiple(),
177+
}
178+
179+
# Step 4
180+
class RAFormStep4(forms.ModelForm):
181+
def __init__(self, *args, **kwargs):
182+
super(RAFormStep4, self).__init__(*args, **kwargs)
183+
184+
self.fields["exposure"].empty_label = None
185+
self.fields["exposure"].help_text = "Please define your exposure scenario"
186+
self.fields["exposure"].queryset = Exposure.objects.filter(
187+
user__in=[ 1]
188+
).order_by("id")
189+
190+
self.helper = FormHelper()
191+
class Meta:
192+
model = RiskAssessment
193+
fields = ["exposure"]
194+
widgets = {
195+
"exposure": forms.RadioSelect(attrs={"empty_label": None}),
196+
}
197+
198+
199+
200+
201+
# def __init__(self, user, *args, **kwargs):
202+
# super(RAForm, self).__init__(*args, **kwargs)
203+
# self.fields[
204+
# "treatment"
205+
# ].help_text = "Please select your treatment configuration"
206+
# self.fields["source"].help_text = "Please select your source water"
207+
# self.fields["source"].empty_label = None
208+
# self.fields["exposure"].empty_label = None
209+
# self.fields["exposure"].help_text = "Please define your exposure scenario"
210+
# self.fields["exposure"].queryset = Exposure.objects.filter(
211+
# user__in=[user, 1]
212+
# ).order_by("id")
213+
# self.fields["treatment"].queryset = (
214+
# Treatment.objects.filter(user__in=[user, 1])
215+
# .order_by("id")
216+
# .order_by("category")
217+
# )
218+
# self.helper = FormHelper()
219+
220+
# class Meta:
221+
# model = RiskAssessment
222+
# fields = ["name", "description", "source", "treatment", "exposure"]
223+
# widgets = {
224+
# "source": forms.RadioSelect(attrs={"empty_label": None}),
225+
# "treatment": forms.CheckboxSelectMultiple(),
226+
# "exposure": forms.RadioSelect(attrs={"empty_label": None}),
227+
# }
228+
# '

0 commit comments

Comments
 (0)