Exercisegroup 0 and 1 complete implemented

This commit is contained in:
2024-11-18 15:41:33 +01:00
parent 7912e38932
commit 2d77a793d8
18 changed files with 138 additions and 80 deletions

View File

@@ -15,6 +15,8 @@ export enum BannerStateEnum {
EXERCISESOLVED02,
EXERCISESOLVED03,
EXERCISESOLVED11,
EXERCISESOLVED12,

View File

@@ -3,4 +3,6 @@ export class ExerciseGroupModel {
nameDe: string = ""
nameEn: string = ""
groupNr: number = 0
descriptionDe: string = ""
descriptionEn: string = ""
}

View File

@@ -172,6 +172,7 @@
"databaseResetSuccessful": "Datenbank erfolgreich zurück gesetzt!",
"exerciseProgressResetSuccessful": "Aufgabenfortschritt erfolgreich zurück gesetzt!",
"registerSuccessful": "Account erfolgreich erstellt!",
"registerError": "Fehler beim Erstellen des Accounts",
"usernameInUse": "Der Accountname ist bereits vergeben!",
"accountUpdated": "Account erfolgreich aktualisiert",
"logoutSuccessful": "Logout erfolgreich",

View File

@@ -172,6 +172,7 @@
"databaseResetSuccessful": "Database successfully resetted!",
"exerciseProgressResetSuccessful": "Exercise progress successfully resetted!",
"registerSuccessful": "Account successfully created!",
"registerError": "Error on register account",
"usernameInUse": "The username is already in use!",
"accountUpdated": "Account successfully updated",
"logoutSuccessful": "Logout successfull",

View File

@@ -8,6 +8,7 @@ import { usePreferencesStore } from '@/stores/preferences.store';
import dashboardCard from './dashboardCard.vue';
import { useOrderStore } from '@/stores/order.store';
import { useFilesStore } from '@/stores/files.store';
import { useExerciseStore } from '@/stores/exercise.store';
const concertStore = useConcertStore()
const bandStore = useBandStore()
@@ -17,6 +18,9 @@ const locationStore = useLocationStore()
const preferencesStore = usePreferencesStore()
const orderStore = useOrderStore()
const filesStore = useFilesStore()
const exerciseStore = useExerciseStore()
exerciseStore.solveExercise(1, 3)
filesStore.getStaticFolders()
bandStore.getBands()

View File

@@ -21,7 +21,14 @@ onMounted(async () => {
)
})
watch(() => router.currentRoute.value.params.id, () => {
watch(() => router.currentRoute.value.params.locationUrl, () => {
concertStore.getConcert(
String(router.currentRoute.value.params.locationUrl),
String(router.currentRoute.value.params.date)
)
})
watch(() => router.currentRoute.value.params.date, () => {
concertStore.getConcert(
String(router.currentRoute.value.params.locationUrl),
String(router.currentRoute.value.params.date)

View File

@@ -139,9 +139,20 @@ export const useAccountStore = defineStore("accountStore", {
*/
async updateAccount() {
const feedbackStore = useFeedbackStore()
const exerciseStore = useExerciseStore()
// Check for exercise 0.2 completion
let accountComplete = this.userAccount.firstName != "" && this.userAccount.lastName != "" &&
this.userAccount.addresses.length != 0 && this.userAccount.payments.length != 0
if (accountComplete) {
exerciseStore.solveExercise(0, 2)
}
// Update in backend
await updateAccount(this.userAccount, this.userAccountToken)
.then(res => {
if (res.status == 200) {
feedbackStore.addSnackbar(BannerStateEnum.ACCOUNTUPDATESUCCESSFUL)

View File

@@ -109,18 +109,21 @@ export const useBasketStore = defineStore('basketStore', {
if (result.status == 201) {
await accountStore.refreshOrders()
this.itemsInBasket = []
feedbackStore.addSnackbar(BannerStateEnum.ORDERPLACESUCCESSFUL)
// Exercise 0.2 is solved
exerciseStore.solveExercise(0, 2)
// Exercise 0.3 is solved
exerciseStore.solveExercise(0, 3)
for (let ticket of this.itemsInBasket) {
if (!ticket.concert.offered) {
console.log(this.itemsInBasket)
for (let item of this.itemsInBasket) {
if (!item.concert.offered) {
exerciseStore.solveExercise(1, 2)
feedbackStore.addSnackbar(BannerStateEnum.EXERCISESOLVED12)
}
}
this.itemsInBasket = []
} else {
feedbackStore.addSnackbar(BannerStateEnum.ERROR)
}

View File

@@ -71,6 +71,7 @@ export const useExerciseStore = defineStore("exerciseStore", {
switch(exerciseNr) {
case 1: bannerState = BannerStateEnum.EXERCISESOLVED01; break;
case 2: bannerState = BannerStateEnum.EXERCISESOLVED02; break;
case 3: bannerState = BannerStateEnum.EXERCISESOLVED03; break;
}
break;

View File

@@ -6,6 +6,7 @@ import { Composer } from 'vue-i18n';
/**
* Logic of the bubble notifications
* Includes an i18n object for translation
* Includes a variable for redirecting to 404 page
*/
export const useFeedbackStore = defineStore("feedbackStore", {
state: () => ({
@@ -14,15 +15,6 @@ export const useFeedbackStore = defineStore("feedbackStore", {
/** Show notification banner in top right corner */
showSnackbar: ref(false),
/** Text in the notification banner */
title: ref(""),
/** Color of the notification banner */
color: ref(""),
/** Prepend icon of the notification banner */
icon: ref(""),
/** Programmatically access to language translation module */
$i18n: {},
@@ -69,6 +61,9 @@ export const useFeedbackStore = defineStore("feedbackStore", {
case BannerStateEnum.EXERCISESOLVED02:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [0, 2])
case BannerStateEnum.EXERCISESOLVED03:
return this.i18n.t("bannerMessages.exerciseSolvedNr", [0, 3])
case BannerStateEnum.EXERCISESOLVED11:
@@ -131,6 +126,9 @@ export const useFeedbackStore = defineStore("feedbackStore", {
case BannerStateEnum.ACCOUNTREGISTERSUCCESSFUL:
return this.i18n.t("bannerMessages.registerSuccessful")
case BannerStateEnum.ACCOUNTREGISTERERROR:
return this.i18n.t("bannerMessages.registerSuccessful")
case BannerStateEnum.ACCOUNTREGISTERUSERNAMEINUSE:
return this.i18n.t("bannerMessages.usernameInUse")
@@ -207,6 +205,7 @@ export const useFeedbackStore = defineStore("feedbackStore", {
case BannerStateEnum.EXERCISESOLVED01:
case BannerStateEnum.EXERCISESOLVED02:
case BannerStateEnum.EXERCISESOLVED03:
case BannerStateEnum.EXERCISESOLVED11:
case BannerStateEnum.EXERCISESOLVED12:
case BannerStateEnum.EXERCISESOLVED13:
@@ -237,6 +236,7 @@ export const useFeedbackStore = defineStore("feedbackStore", {
case BannerStateEnum.EXERCISESOLVED01:
case BannerStateEnum.EXERCISESOLVED02:
case BannerStateEnum.EXERCISESOLVED03:
case BannerStateEnum.EXERCISESOLVED11:
case BannerStateEnum.EXERCISESOLVED12:
case BannerStateEnum.EXERCISESOLVED13: