Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/gradlew text eol=lf
*.kt text eol=lf
*.kts text eol=lf
*.bat text eol=crlf
*.jar binary
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,81 @@ class DevDataBootstrap(
role = UserRole.PUPIL,
)

val pupilSara =
seedUser(
username = "sara",
password = "Pupil123!",
role = UserRole.PUPIL,
)
val pupilLiam =
seedUser(
username = "liam",
password = "Pupil123!",
role = UserRole.PUPIL,
)
val pupilEmma =
seedUser(
username = "emma",
password = "Pupil123!",
role = UserRole.PUPIL,
)
val pupilOliver =
seedUser(
username = "oliver",
password = "Pupil123!",
role = UserRole.PUPIL,
)
val pupilMaja =
seedUser(
username = "maja",
password = "Pupil123!",
role = UserRole.PUPIL,
)
val pupilJakob =
seedUser(
username = "jakob",
password = "Pupil123!",
role = UserRole.PUPIL,
)

val pupilChristina =
seedUser(username = "christina", password = "Pupil123!", role = UserRole.PUPIL)
val pupilSebastian =
seedUser(username = "sebastian", password = "Pupil123!", role = UserRole.PUPIL)
val pupilPedro =
seedUser(username = "pedro", password = "Pupil123!", role = UserRole.PUPIL)
val pupilCaroline =
seedUser(username = "caroline", password = "Pupil123!", role = UserRole.PUPIL)
val pupilMarkus =
seedUser(username = "markus", password = "Pupil123!", role = UserRole.PUPIL)
val pupilNora =
seedUser(username = "nora", password = "Pupil123!", role = UserRole.PUPIL)
val pupilTobias =
seedUser(username = "tobias", password = "Pupil123!", role = UserRole.PUPIL)
val pupilSigrid =
seedUser(username = "sigrid", password = "Pupil123!", role = UserRole.PUPIL)
val pupilHenrik =
seedUser(username = "henrik", password = "Pupil123!", role = UserRole.PUPIL)

val pupilKristoffer =
seedUser(username = "kristoffer", password = "Pupil123!", role = UserRole.PUPIL)
val pupilPeder =
seedUser(username = "peder", password = "Pupil123!", role = UserRole.PUPIL)
val pupilPablo =
seedUser(username = "pablo", password = "Pupil123!", role = UserRole.PUPIL)
val pupilPetra =
seedUser(username = "petra", password = "Pupil123!", role = UserRole.PUPIL)
val pupilLars =
seedUser(username = "lars", password = "Pupil123!", role = UserRole.PUPIL)
val pupilIngrid =
seedUser(username = "ingrid", password = "Pupil123!", role = UserRole.PUPIL)
val pupilMagnus =
seedUser(username = "magnus", password = "Pupil123!", role = UserRole.PUPIL)
val pupilAstrid =
seedUser(username = "astrid", password = "Pupil123!", role = UserRole.PUPIL)
val pupilEirik =
seedUser(username = "eirik", password = "Pupil123!", role = UserRole.PUPIL)

seedTeacherProfile(teacher, "Ada Lunde", "Trondheim Montessori")
val sampleClassroom =
seedClassroom(
Expand All @@ -114,17 +189,109 @@ class DevDataBootstrap(
description = "Eksempelklasserom for lokal utvikling",
joinCode = "CLASS42",
)

val secondClassroom =
seedClassroom(
ownerTeacher = teacher,
title = "Detektivgjengen 6B",
description = "Another example",
joinCode = "CLASS31",
)
val thirdClassroom =
seedClassroom(
ownerTeacher = teacher,
title = "Superdetektiver 4A",
description = "Another example of a classroom",
joinCode = "CLASS21",
)

seedClassroomMembership(sampleClassroom, pupilAda, "Ada")
seedClassroomMembership(sampleClassroom, pupilNoah, "Noah")
seedClassroomMembership(sampleClassroom, pupilSofia, "Sofia")
seedClassroomMembership(sampleClassroom, pupilSara, "Sara")
seedClassroomMembership(sampleClassroom, pupilLiam, "Liam")
seedClassroomMembership(sampleClassroom, pupilEmma, "Emma")
seedClassroomMembership(sampleClassroom, pupilOliver, "Oliver")
seedClassroomMembership(sampleClassroom, pupilMaja, "Maja")
seedClassroomMembership(sampleClassroom, pupilJakob, "Jakob")
seedClassroomMembership(secondClassroom, pupilChristina, "Christina")
seedClassroomMembership(secondClassroom, pupilSebastian, "Sebastian")
seedClassroomMembership(secondClassroom, pupilPedro, "Pedro")
seedClassroomMembership(secondClassroom, pupilCaroline, "Caroline")
seedClassroomMembership(secondClassroom, pupilMarkus, "Markus")
seedClassroomMembership(secondClassroom, pupilNora, "Nora")
seedClassroomMembership(secondClassroom, pupilTobias, "Tobias")
seedClassroomMembership(secondClassroom, pupilSigrid, "Sigrid")
seedClassroomMembership(secondClassroom, pupilHenrik, "Henrik")
seedClassroomMembership(thirdClassroom, pupilKristoffer, "Kristoffer")
seedClassroomMembership(thirdClassroom, pupilPeder, "Peder")
seedClassroomMembership(thirdClassroom, pupilPablo, "Pablo")
seedClassroomMembership(thirdClassroom, pupilPetra, "Petra")
seedClassroomMembership(thirdClassroom, pupilLars, "Lars")
seedClassroomMembership(thirdClassroom, pupilIngrid, "Ingrid")
seedClassroomMembership(thirdClassroom, pupilMagnus, "Magnus")
seedClassroomMembership(thirdClassroom, pupilAstrid, "Astrid")
seedClassroomMembership(thirdClassroom, pupilEirik, "Eirik")

seedPupilProfile(pupilAda, "Ada", sampleClassroom)
seedPupilProfile(pupilNoah, "Noah", sampleClassroom)
seedPupilProfile(pupilSofia, "Sofia", sampleClassroom)
seedPupilProfile(pupilSara, "Sara", sampleClassroom)
seedPupilProfile(pupilLiam, "Liam", sampleClassroom)
seedPupilProfile(pupilEmma, "Emma", sampleClassroom)
seedPupilProfile(pupilOliver, "Oliver", sampleClassroom)
seedPupilProfile(pupilMaja, "Maja", sampleClassroom)
seedPupilProfile(pupilJakob, "Jakob", sampleClassroom)

seedPupilProfile(pupilChristina, "Christina", secondClassroom)
seedPupilProfile(pupilSebastian, "Sebastian", secondClassroom)
seedPupilProfile(pupilPedro, "Pedro", secondClassroom)
seedPupilProfile(pupilCaroline, "Caroline", secondClassroom)
seedPupilProfile(pupilMarkus, "Markus", secondClassroom)
seedPupilProfile(pupilNora, "Nora", secondClassroom)
seedPupilProfile(pupilTobias, "Tobias", secondClassroom)
seedPupilProfile(pupilSigrid, "Sigrid", secondClassroom)
seedPupilProfile(pupilHenrik, "Henrik", secondClassroom)

seedPupilProfile(pupilKristoffer, "Kristoffer", thirdClassroom)
seedPupilProfile(pupilPeder, "Peder", thirdClassroom)
seedPupilProfile(pupilPablo, "Pablo", thirdClassroom)
seedPupilProfile(pupilPetra, "Petra", thirdClassroom)
seedPupilProfile(pupilLars, "Lars", thirdClassroom)
seedPupilProfile(pupilIngrid, "Ingrid", thirdClassroom)
seedPupilProfile(pupilMagnus, "Magnus", thirdClassroom)
seedPupilProfile(pupilAstrid, "Astrid", thirdClassroom)
seedPupilProfile(pupilEirik, "Eirik", thirdClassroom)

seedClassroomBannedWord(sampleClassroom, teacher, "faen")
seedClassroomBannedWord(sampleClassroom, teacher, "fuck")
seedPupilAvatar(pupilAda)
seedPupilAvatar(pupilNoah)
seedPupilAvatar(pupilSofia)
seedPupilAvatar(pupilSara)
seedPupilAvatar(pupilLiam)
seedPupilAvatar(pupilEmma)
seedPupilAvatar(pupilOliver)
seedPupilAvatar(pupilMaja)
seedPupilAvatar(pupilJakob)
seedPupilAvatar(pupilChristina)
seedPupilAvatar(pupilSebastian)
seedPupilAvatar(pupilPedro)
seedPupilAvatar(pupilCaroline)
seedPupilAvatar(pupilMarkus)
seedPupilAvatar(pupilNora)
seedPupilAvatar(pupilTobias)
seedPupilAvatar(pupilSigrid)
seedPupilAvatar(pupilHenrik)
seedPupilAvatar(pupilKristoffer)
seedPupilAvatar(pupilPeder)
seedPupilAvatar(pupilPablo)
seedPupilAvatar(pupilPetra)
seedPupilAvatar(pupilLars)
seedPupilAvatar(pupilIngrid)
seedPupilAvatar(pupilMagnus)
seedPupilAvatar(pupilAstrid)
seedPupilAvatar(pupilEirik)
seedPupilGameProgress(
pupil = pupilAda,
classroom = sampleClassroom,
Expand Down Expand Up @@ -158,6 +325,72 @@ class DevDataBootstrap(
finalBossCompleted = false,
lastActivityAt = Instant.now(),
)
seedPupilGameProgress(
pupil = pupilSara,
classroom = sampleClassroom,
totalScore = 130,
totalXp = 280,
currentLevel = 3,
completedStopsCount = 2,
completedTasksCount = 6,
finalBossCompleted = false,
lastActivityAt = Instant.now(),
)
seedPupilGameProgress(
pupil = pupilLiam,
classroom = sampleClassroom,
totalScore = 380,
totalXp = 720,
currentLevel = 6,
completedStopsCount = 5,
completedTasksCount = 15,
finalBossCompleted = true,
lastActivityAt = Instant.now().minus(3, ChronoUnit.HOURS),
)
seedPupilGameProgress(
pupil = pupilEmma,
classroom = sampleClassroom,
totalScore = 290,
totalXp = 550,
currentLevel = 5,
completedStopsCount = 4,
completedTasksCount = 12,
finalBossCompleted = false,
lastActivityAt = Instant.now().minus(5, ChronoUnit.HOURS),
)
seedPupilGameProgress(
pupil = pupilOliver,
classroom = sampleClassroom,
totalScore = 180,
totalXp = 340,
currentLevel = 3,
completedStopsCount = 2,
completedTasksCount = 7,
finalBossCompleted = false,
lastActivityAt = Instant.now().minus(2, ChronoUnit.DAYS),
)
seedPupilGameProgress(
pupil = pupilMaja,
classroom = sampleClassroom,
totalScore = 45,
totalXp = 90,
currentLevel = 1,
completedStopsCount = 0,
completedTasksCount = 2,
finalBossCompleted = false,
lastActivityAt = Instant.now().minus(4, ChronoUnit.DAYS),
)
seedPupilGameProgress(
pupil = pupilJakob,
classroom = sampleClassroom,
totalScore = 310,
totalXp = 600,
currentLevel = 5,
completedStopsCount = 4,
completedTasksCount = 11,
finalBossCompleted = false,
lastActivityAt = Instant.now().minus(1, ChronoUnit.HOURS),
)
seedRefreshToken(admin, "dev-admin-refresh-token", Instant.now().plus(14, ChronoUnit.DAYS), null)
seedRefreshToken(
teacher,
Expand All @@ -183,6 +416,42 @@ class DevDataBootstrap(
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)
seedRefreshToken(
pupilSara,
"dev-pupil-sara-refresh-token",
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)
seedRefreshToken(
pupilLiam,
"dev-pupil-liam-refresh-token",
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)
seedRefreshToken(
pupilEmma,
"dev-pupil-emma-refresh-token",
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)
seedRefreshToken(
pupilOliver,
"dev-pupil-oliver-refresh-token",
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)
seedRefreshToken(
pupilMaja,
"dev-pupil-maja-refresh-token",
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)
seedRefreshToken(
pupilJakob,
"dev-pupil-jakob-refresh-token",
Instant.now().plus(7, ChronoUnit.DAYS),
null,
)

mapStopBootstrap.seedAllMapStops()
medalBootstrap.seedAllMedals()
Expand All @@ -193,6 +462,8 @@ class DevDataBootstrap(
xpBootstrap.seedPupilXpEvent(pupilAda)
xpBootstrap.seedPupilXpEvent(pupilAda)
val activeStops = taskBootstrap.seedAllTasks(classroom = sampleClassroom, teacher = teacher)
taskBootstrap.seedAllTasks(classroom = secondClassroom, teacher = teacher)
taskBootstrap.seedAllTasks(classroom = thirdClassroom, teacher = teacher)
seedNotebookEntries(
classroom = sampleClassroom,
pupilAda = pupilAda,
Expand All @@ -213,6 +484,7 @@ class DevDataBootstrap(
pupilAda = pupilAda,
pupilNoah = pupilNoah,
pupilSofia = pupilSofia,
pupilSara = pupilSara,
)
logger.info(
"Development bootstrap ensured sample rows for users, profiles, refresh tokens, classroom {} with join code {}, and seeded tasks for {} active map stops",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class MysteryBootstrap(
pupilAda: User,
pupilNoah: User,
pupilSofia: User,
pupilSara: User,
) {
if (submissionRepository.findAllByClassroomId(classroom.id).isNotEmpty()) return

Expand Down Expand Up @@ -72,6 +73,17 @@ class MysteryBootstrap(
).also { it.approve(teacher, "Veldig bra! Dette er et typisk phishing-forsøk.") },
)

// Sara — approved, featured this week
val saraSubmission =
submissionRepository.save(
MysterySubmission(
classroom = classroom,
pupil = pupilSara,
description = "Jeg fant en nettside som hevder at en kjent politiker har sagt noe skandaløst, men ingen andre nyhetskilder skriver om det.",
attachmentUrl = null,
).also { it.approve(teacher, "Bra jobbet! Det er viktig å sjekke om flere kilder bekrefter påstanden.") },
)

// Ada — pending (tests the 'mine' tab with pending status)
submissionRepository.save(
MysterySubmission(
Expand All @@ -92,7 +104,7 @@ class MysteryBootstrap(
).also { it.reject(teacher, "Dette er reklame, ikke fake news. Prøv å finne et bedre eksempel.") },
)

// Feature ada + noah this week, sofia last week
// Feature ada + noah + sara this week, sofia last week
weeklyMysteryRepository.save(
WeeklyMystery(
classroom = classroom,
Expand All @@ -117,6 +129,14 @@ class MysteryBootstrap(
featuredBy = teacher,
),
)
weeklyMysteryRepository.save(
WeeklyMystery(
classroom = classroom,
submission = saraSubmission,
weekStart = thisWeek,
featuredBy = teacher,
),
)
}

private fun currentWeekStart(): LocalDate = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
Expand Down