Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
feudal
feudalBackend
Commits
0df7ff7a
Commit
0df7ff7a
authored
Aug 06, 2020
by
lukas.burgey
Browse files
Implement questionnaire history
parent
19e334e1
Pipeline
#121687
passed with stage
in 1 minute and 23 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
feudal/backend/models/serializers/clients.py
View file @
0df7ff7a
# we don't need to deserialize, so we do not implement the abstract methods
# pylint: disable=abstract-method
import
logging
from
django_mysql.models
import
JSONField
from
rest_framework.serializers
import
Serializer
,
ModelSerializer
,
DictField
,
ListField
,
CharField
from
rest_polymorphic.serializers
import
PolymorphicSerializer
...
...
@@ -10,6 +12,8 @@ from feudal.backend.models.users import User, SSHPublicKey
from
feudal.backend.models.deployments
import
Deployment
,
VODeployment
,
ServiceDeployment
,
DeploymentState
,
CredentialState
from
feudal.backend.models.auth.serializers.clients
import
VOSerializer
LOGGER
=
logging
.
getLogger
(
__name__
)
class
ServiceSerializer
(
ModelSerializer
):
class
Meta
:
...
...
@@ -132,3 +136,29 @@ class DeploymentStateSerializer(ModelSerializer):
read_only_fields
=
(
'answers'
,
)
def
update
(
self
,
instance
,
validated_data
):
LOGGER
.
debug
(
'Updating %s'
,
instance
)
instance
.
state
=
validated_data
.
get
(
'state'
,
instance
.
state
)
instance
.
message
=
validated_data
.
get
(
'message'
,
instance
.
message
)
instance
.
credentials
=
validated_data
.
get
(
'credentials'
,
instance
.
credentials
)
# merge new questionnaire / answers value into the existing dictionary
if
'questionnaire'
in
validated_data
:
new_questionnaire
=
validated_data
.
get
(
'questionnaire'
)
for
key
in
new_questionnaire
:
question
=
new_questionnaire
[
key
]
if
instance
.
questionnaire
.
get
(
key
,
None
)
!=
question
:
LOGGER
.
debug
(
'Question %s = %s'
,
key
,
question
)
instance
.
questionnaire
[
key
]
=
question
if
'questionnaire_answers'
in
validated_data
:
new_questionnaire_answers
=
validated_data
.
get
(
'questionnaire_answers'
)
for
key
in
new_questionnaire_answers
:
new_answer
=
new_questionnaire_answers
[
key
]
if
instance
.
questionnaire_answers
.
get
(
key
,
None
)
!=
new_answer
:
LOGGER
.
debug
(
'Questionnaire answer %s = %s'
,
key
,
new_answer
)
instance
.
questionnaire_answers
[
key
]
=
new_answer
return
instance
lukas.burgey
@af9063
mentioned in issue
#78 (closed)
·
Dec 07, 2020
mentioned in issue
#78 (closed)
mentioned in issue #78
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment