diff --git a/client/src/pages/survey.vue b/client/src/pages/survey.vue index bd83dbc5..a0769fd5 100644 --- a/client/src/pages/survey.vue +++ b/client/src/pages/survey.vue @@ -31,12 +31,25 @@ methods: { initSurvey(data, answer) { let survey = new SurveyVue.Model(data); - survey.data = answer; + const flatAnswers = {}; + for (let k in answer) { + flatAnswers[k] = answer[k].answer; + } + survey.data = flatAnswers; survey.onComplete.add((sender, options) => { - sender.clear(false); + // sender.clear(false); + // + // sender.mode = 'display'; - sender.mode = 'display'; + const data = {}; + + for (let k in survey.data) { + data[k] = { + answer: survey.data[k], + correct: sender.getQuestionByName(k).correctAnswer + }; + } this.$apollo.mutate({ mutation: UPDATE_ANSWER, @@ -44,7 +57,7 @@ input: { answer: { surveyId: this.id, - data: JSON.stringify(survey.data) + data: JSON.stringify(data) } } } diff --git a/server/surveys/admin.py b/server/surveys/admin.py index b7873b3a..704d78b8 100644 --- a/server/surveys/admin.py +++ b/server/surveys/admin.py @@ -4,6 +4,10 @@ import logging from django.contrib import admin from django.contrib.postgres.fields import JSONField from django.forms import widgets +from django.utils.html import format_html +from graphql_relay import to_global_id + +from api.utils import get_object logger = logging.getLogger(__name__) @@ -33,7 +37,11 @@ class JSONAdmin(admin.ModelAdmin): @admin.register(Survey) class SurveyAdmin(JSONAdmin): - pass + list_display = ('title', 'link',) + + def link(self, obj): + return format_html('Link', id=to_global_id('SurveyNode', obj.pk)) + link.short_description = 'Link' @admin.register(Answer) class AnswerAdmin(JSONAdmin):