Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
compendium-v2
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
geant-swd
compendium-v2
Commits
97926cb5
Commit
97926cb5
authored
1 year ago
by
Bjarke Madsen
Browse files
Options
Downloads
Patches
Plain Diff
Add a bit more robust error handling
parent
d08c2618
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
compendium_v2/routes/survey.py
+6
-6
6 additions, 6 deletions
compendium_v2/routes/survey.py
survey-frontend/src/SurveyContainerComponent.tsx
+37
-23
37 additions, 23 deletions
survey-frontend/src/SurveyContainerComponent.tsx
with
43 additions
and
29 deletions
compendium_v2/routes/survey.py
+
6
−
6
View file @
97926cb5
...
@@ -257,7 +257,7 @@ def try_survey(year) -> Any:
...
@@ -257,7 +257,7 @@ def try_survey(year) -> Any:
"""
"""
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
if
not
survey
:
if
not
survey
:
return
"
Survey not found
"
,
404
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
Survey not found
'
})
,
404
return
jsonify
({
return
jsonify
({
"
model
"
:
survey
.
survey
,
"
model
"
:
survey
.
survey
,
...
@@ -283,7 +283,7 @@ def inspect_survey(year) -> Any:
...
@@ -283,7 +283,7 @@ def inspect_survey(year) -> Any:
"""
"""
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
if
not
survey
:
if
not
survey
:
return
"
Survey not found
"
,
404
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
Survey not found
'
})
,
404
def
visible_visitor
(
object
,
items
):
def
visible_visitor
(
object
,
items
):
for
key
,
value
in
items
:
for
key
,
value
in
items
:
...
@@ -323,11 +323,11 @@ def load_survey(year, nren_name) -> Any:
...
@@ -323,11 +323,11 @@ def load_survey(year, nren_name) -> Any:
"""
"""
nren
=
db
.
session
.
scalar
(
select
(
NREN
).
filter
(
NREN
.
name
==
nren_name
))
nren
=
db
.
session
.
scalar
(
select
(
NREN
).
filter
(
NREN
.
name
==
nren_name
))
if
not
nren
:
if
not
nren
:
return
"
NREN
not found
"
,
404
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
Survey
not found
'
})
,
404
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
if
not
survey
:
if
not
survey
:
return
"
Survey not found
"
,
404
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
Survey not found
'
})
,
404
if
not
check_access_nren
(
current_user
,
nren
):
if
not
check_access_nren
(
current_user
,
nren
):
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
You do not have permissions to access this survey.
'
}),
403
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
You do not have permissions to access this survey.
'
}),
403
...
@@ -373,11 +373,11 @@ def save_survey(year, nren_name) -> Any:
...
@@ -373,11 +373,11 @@ def save_survey(year, nren_name) -> Any:
nren
=
db
.
session
.
scalar
(
select
(
NREN
).
filter
(
NREN
.
name
==
nren_name
))
nren
=
db
.
session
.
scalar
(
select
(
NREN
).
filter
(
NREN
.
name
==
nren_name
))
if
nren
is
None
:
if
nren
is
None
:
return
"
NREN
not found
"
,
404
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
Survey
not found
'
})
,
404
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
survey
=
db
.
session
.
scalar
(
select
(
Survey
).
where
(
Survey
.
year
==
year
))
if
survey
is
None
:
if
survey
is
None
:
return
"
Survey not found
"
,
404
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
Survey not found
'
})
,
404
if
not
check_access_nren
(
current_user
,
nren
):
if
not
check_access_nren
(
current_user
,
nren
):
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
You do not have permission to edit this survey.
'
}),
403
return
jsonify
({
'
success
'
:
False
,
'
message
'
:
'
You do not have permission to edit this survey.
'
}),
403
...
...
This diff is collapsed.
Click to expand it.
survey-frontend/src/SurveyContainerComponent.tsx
+
37
−
23
View file @
97926cb5
...
@@ -16,39 +16,53 @@ function SurveyContainerComponent({ loadFrom, saveTo = '', readonly = false }) {
...
@@ -16,39 +16,53 @@ function SurveyContainerComponent({ loadFrom, saveTo = '', readonly = false }) {
const
[
surveyModel
,
setSurveyModel
]
=
useState
<
Model
>
();
const
[
surveyModel
,
setSurveyModel
]
=
useState
<
Model
>
();
const
verificationStatus
=
useRef
<
Map
<
string
,
VerificationStatus
>>
(
new
Map
());
const
verificationStatus
=
useRef
<
Map
<
string
,
VerificationStatus
>>
(
new
Map
());
const
{
year
,
nren
}
=
useParams
();
const
{
year
,
nren
}
=
useParams
();
const
[
error
,
setError
]
=
useState
<
string
>
(
'
loading survey...
'
);
useEffect
(()
=>
{
useEffect
(()
=>
{
getModel
();
async
function
getModel
()
{
},
[]);
const
response
=
await
fetch
(
loadFrom
+
year
+
(
nren
?
'
/
'
+
nren
:
''
))
// year is always set, nren stays empty for inspect and try
const
json
=
await
response
.
json
();
if
(
surveyModel
===
undefined
)
{
if
(
!
response
.
ok
)
{
return
'
loading survey...
'
}
async
function
getModel
()
{
if
(
'
message
'
in
json
)
{
const
response
=
await
fetch
(
loadFrom
+
year
+
(
nren
?
'
/
'
+
nren
:
''
))
// year is always set, nren stays empty for inspect and try
throw
new
Error
(
json
.
message
);
const
json
=
await
response
.
json
();
}
else
{
throw
new
Error
(
`Request failed with status
${
response
.
status
}
`
);
}
}
for
(
const
questionName
in
json
[
"
verification_status
"
])
{
verificationStatus
.
current
.
set
(
questionName
,
json
[
"
verification_status
"
][
questionName
]);
}
const
survey
=
new
Model
(
json
[
'
model
'
]);
for
(
const
questionName
in
json
[
"
verification_status
"
])
{
survey
.
setVariable
(
'
surveyyear
'
,
year
);
verificationStatus
.
current
.
set
(
questionName
,
json
[
"
verification_status
"
][
questionName
]);
survey
.
setVariable
(
'
previousyear
'
,
parseInt
(
year
!
)
-
1
);
}
survey
.
data
=
json
[
'
data
'
];
const
survey
=
new
Model
(
json
[
'
model
'
]);
survey
.
clearIncorrectValues
(
true
);
// TODO test if this really removes all old values and such
survey
.
setVariable
(
'
surveyyear
'
,
year
);
survey
.
currentPageNo
=
json
[
'
page
'
];
survey
.
setVariable
(
'
previousyear
'
,
parseInt
(
year
!
)
-
1
);
survey
.
showNavigationButtons
=
false
;
survey
.
showTOC
=
false
;
survey
.
data
=
json
[
'
data
'
];
if
(
readonly
)
{
survey
.
clearIncorrectValues
(
true
);
// TODO test if this really removes all old values and such
survey
.
mode
=
'
display
'
;
survey
.
currentPageNo
=
json
[
'
page
'
];
survey
.
showNavigationButtons
=
false
;
survey
.
showTOC
=
false
;
if
(
readonly
)
{
survey
.
mode
=
'
display
'
;
}
setSurveyModel
(
survey
);
}
}
setSurveyModel
(
survey
);
getModel
().
catch
(
error
=>
setError
(
'
Error when loading survey:
'
+
error
.
message
))
});
console
.
log
(
surveyModel
)
if
(
surveyModel
===
undefined
)
{
return
error
}
}
function
saveSurveyData
(
survey
,
success
?,
failure
?)
{
function
saveSurveyData
(
survey
,
success
?,
failure
?)
{
if
(
saveTo
==
''
)
{
if
(
saveTo
==
''
)
{
return
;
return
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment