Save correct answer with answer given by user

This commit is contained in:
Ramon Wenger 2019-07-08 15:10:33 +02:00
parent 25856aa647
commit a09bf2786d
2 changed files with 26 additions and 5 deletions

View File

@ -31,12 +31,25 @@
methods: { methods: {
initSurvey(data, answer) { initSurvey(data, answer) {
let survey = new SurveyVue.Model(data); 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) => { 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({ this.$apollo.mutate({
mutation: UPDATE_ANSWER, mutation: UPDATE_ANSWER,
@ -44,7 +57,7 @@
input: { input: {
answer: { answer: {
surveyId: this.id, surveyId: this.id,
data: JSON.stringify(survey.data) data: JSON.stringify(data)
} }
} }
} }

View File

@ -4,6 +4,10 @@ import logging
from django.contrib import admin from django.contrib import admin
from django.contrib.postgres.fields import JSONField from django.contrib.postgres.fields import JSONField
from django.forms import widgets 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__) logger = logging.getLogger(__name__)
@ -33,7 +37,11 @@ class JSONAdmin(admin.ModelAdmin):
@admin.register(Survey) @admin.register(Survey)
class SurveyAdmin(JSONAdmin): class SurveyAdmin(JSONAdmin):
pass list_display = ('title', 'link',)
def link(self, obj):
return format_html('<a href="/survey/{id}" target="_blank">Link</a>', id=to_global_id('SurveyNode', obj.pk))
link.short_description = 'Link'
@admin.register(Answer) @admin.register(Answer)
class AnswerAdmin(JSONAdmin): class AnswerAdmin(JSONAdmin):