This repository has been archived on 2025-02-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
iu-quiz-app/components/Coop.vue
2022-11-03 15:32:22 +01:00

61 lines
1.7 KiB
Vue

<template>
<v-container fluid>
<v-subheader class="text-h5 text--primary">Offene Fragen</v-subheader>
<v-divider></v-divider>
<v-expansion-panels focusable class="my-3">
<v-expansion-panel
v-for="(item, i) in questions"
:key="i"
>
<v-expansion-panel-header>
{{ item.question }}
</v-expansion-panel-header>
<v-expansion-panel-content class="text-pre-wrap">
<div class="text-pre-wrap">{{ item.solution }}</div>
</v-expansion-panel-content>
</v-expansion-panel>
</v-expansion-panels>
<AddOpenEndedQuestion />
</v-container>
</template>
<script>
import { collection, getDocs } from 'firebase/firestore'
import { OpenEndedQuestionConverter } from '~/plugins/open-ended-question'
export default {
name: 'CoopComponent',
props: {
courseId: {
type: String,
required: true
}
},
data () {
return {
questions: []
}
},
created () {
this.getQuestions()
},
methods: {
getQuestions () {
// Create a reference to the open-ended questions collection of the currently selected course
const questionsRef = collection(this.$db, `kurse/${this.courseId}/fragenOffen`).withConverter(OpenEndedQuestionConverter)
// Execute the query
getDocs(questionsRef).then((querySnapshot) => {
this.questions = []
querySnapshot.forEach((doc) => {
// Convert to OpenEndedQuestion object
this.questions.push(doc.data())
})
}).catch((error) => {
// Failed to fetch questions from the database; display error message
this.$toast({ content: error, color: 'error' })
})
}
}
}
</script>