From f41df312aba57d857c0aa7c92e44b4244f32f9b0 Mon Sep 17 00:00:00 2001
From: Theodor Kvalsvik Lauritzen
<19690242+theodorklauritzen@users.noreply.github.com>
Date: Mon, 9 Feb 2026 19:55:28 +0100
Subject: [PATCH 1/2] feat(seeder): Seed interest groups
---
.../CreateInterestGroupForm.tsx | 1 -
src/prisma/schema/group.prisma | 2 -
.../interest_groups/general_info.md | 5 +-
.../seeder/src/development/seedDevGroups.ts | 20 ---
src/prisma/seeder/src/seedInterestGroups.ts | 115 ++++++++++++++++++
src/prisma/seeder/src/seeder.ts | 2 +
.../groups/interestGroups/operations.ts | 4 +-
src/services/groups/interestGroups/schemas.ts | 6 -
8 files changed, 121 insertions(+), 34 deletions(-)
create mode 100644 src/prisma/seeder/src/seedInterestGroups.ts
diff --git a/src/app/interest-groups/CreateInterestGroupForm.tsx b/src/app/interest-groups/CreateInterestGroupForm.tsx
index 4b936d2fb..e21c34384 100644
--- a/src/app/interest-groups/CreateInterestGroupForm.tsx
+++ b/src/app/interest-groups/CreateInterestGroupForm.tsx
@@ -13,7 +13,6 @@ export default function CreateInterestGroupForm() {
submitText="Lag interessegruppe"
>
-
)
diff --git a/src/prisma/schema/group.prisma b/src/prisma/schema/group.prisma
index e9008d7ac..29448a6c8 100644
--- a/src/prisma/schema/group.prisma
+++ b/src/prisma/schema/group.prisma
@@ -89,11 +89,9 @@ model InterestGroup {
id Int @id @default(autoincrement())
name String
- shortName String @unique
articleSection ArticleSection @relation(fields: [articleSectionId], references: [id], onDelete: Restrict, onUpdate: Cascade)
articleSectionId Int @unique
- // TODO - add intereset group data
}
model ManualGroup {
diff --git a/src/prisma/seeder/cms_paragraphs/interest_groups/general_info.md b/src/prisma/seeder/cms_paragraphs/interest_groups/general_info.md
index b6c4f4590..f6279e337 100644
--- a/src/prisma/seeder/cms_paragraphs/interest_groups/general_info.md
+++ b/src/prisma/seeder/cms_paragraphs/interest_groups/general_info.md
@@ -6,6 +6,7 @@ Har du en interesse du har lyst til å dele med andre? Interessegrupper er noe v
**Ønsker du å opprette en gruppe?** Send en mail til hs@omega.ntnu.no, så tar vi kontakt.
-Få støtte! Ønsker din gruppe å søke støtte, send en søknad til scatmeister@omega.ntnu.no. For å få penger må gruppen bestå av flere aktive medlemmer i Omega, samt ha klart et budsjett over hva de planlegger å bruke pengene på. Søknaden vil så bli vurdert av fondsstyret. Det er altså ikke en garanti å få penger, men hvis formålet er noe Broedre iitem systre kan nyte godt av lover det godt for søknaden.
+**Få støtte!** Ønsker din gruppe å søke støtte, send en søknad til scatmeister@omega.ntnu.no. For å få penger må gruppen bestå av flere aktive medlemmer i Omega, samt ha klart et budsjett over hva de planlegger å bruke pengene på. Søknaden vil så bli vurdert av fondsstyret. Det er altså ikke en garanti å få penger, men hvis formålet er noe Broedre iitem systre kan nyte godt av lover det godt for søknaden.
-Høres dette vrient ut, så fortvil ikke: Vi er her for å hjelpe dere.
\ No newline at end of file
+**Har du noen spørsmål rundt noen av interessegruppene?**
+Ta kontakt med HS
diff --git a/src/prisma/seeder/src/development/seedDevGroups.ts b/src/prisma/seeder/src/development/seedDevGroups.ts
index d23ed8904..9e833343f 100644
--- a/src/prisma/seeder/src/development/seedDevGroups.ts
+++ b/src/prisma/seeder/src/development/seedDevGroups.ts
@@ -91,24 +91,4 @@ export default async function seedDevGroups(prisma: PrismaClient) {
},
}
})))
-
- await Promise.all([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(i => prisma.interestGroup.create({
- data: {
- name: `Interessegruppe ${i}`,
- shortName: `IG${i}`,
- articleSection: {
- create: {
- cmsImage: { create: {} },
- cmsParagraph: { create: {} },
- cmsLink: { create: {} },
- }
- },
- group: {
- create: {
- groupType: 'INTEREST_GROUP',
- order: order.order,
- },
- },
- }
- })))
}
diff --git a/src/prisma/seeder/src/seedInterestGroups.ts b/src/prisma/seeder/src/seedInterestGroups.ts
new file mode 100644
index 000000000..62a9b7616
--- /dev/null
+++ b/src/prisma/seeder/src/seedInterestGroups.ts
@@ -0,0 +1,115 @@
+import type { PrismaClient } from '@/prisma-generated-pn-client'
+
+const interestGroups: {
+ name: string,
+ url: string
+}[] = [
+ {
+ name: 'Omega Integarn',
+ url: 'https://www.facebook.com/groups/omegaintegarn/',
+ },
+ {
+ name: 'Omega Lavpassfil(m)ter',
+ url: 'https://www.facebook.com/groups/1191337511256303/',
+ },
+ {
+ name: 'Omega Smashbros',
+ url: 'https://www.facebook.com/groups/539139876817932/',
+ },
+ {
+ name: 'Omega Topptur',
+ url: 'https://www.facebook.com/groups/441437179897894/',
+ },
+ {
+ name: 'Omega SeFotball',
+ url: 'https://www.facebook.com/groups/1893717857436467/',
+ },
+ {
+ name: 'Omega Badeclubb',
+ url: 'https://www.facebook.com/groups/196138748516983',
+ },
+ {
+ name: 'Steingjengen',
+ url: 'https://www.facebook.com/groups/3095703260715088',
+ },
+ {
+ name: 'Omega Formelsamling',
+ url: 'https://www.facebook.com/groups/523370429095199/',
+ },
+ {
+ name: 'Omega Yatzy',
+ url: 'https://www.facebook.com/groups/717061329329972/',
+ },
+ {
+ name: 'Spillkretsen',
+ url: 'https://www.facebook.com/groups/313197997852553/',
+ },
+ {
+ name: 'Omega Puslespill',
+ url: 'https://www.facebook.com/groups/589493906548263/',
+ },
+ {
+ name: 'Omega Systre',
+ url: 'https://www.facebook.com/groups/1235153214107409/',
+ },
+ {
+ name: 'Omega Håndball',
+ url: 'https://www.facebook.com/groups/7473447119423028/',
+ },
+ {
+ name: 'Omega Kondisatorane',
+ url: 'https://www.facebook.com/groups/689162269810343/',
+ },
+ {
+ name: 'St. Quiz Omega',
+ url: 'https://www.facebook.com/groups/3859557797704270/',
+ },
+ {
+ name: 'Omega TUR',
+ url: 'https://www.facebook.com/groups/931010798841182/',
+ },
+ {
+ name: 'Trondheim Tabataforening',
+ url: 'https://www.facebook.com/groups/624129628827521/',
+ },
+ {
+ name: 'Omega Kite',
+ url: 'https://www.facebook.com/groups/1411618774258694/',
+ },
+ {
+ name: 'Omega Basket',
+ url: 'https://www.facebook.com/groups/1328303331832130/',
+ },
+]
+
+export default async function seedInterestGroups(prisma: PrismaClient) {
+ const order = await prisma.omegaOrder.findFirstOrThrow({
+ orderBy: {
+ order: 'desc'
+ },
+ })
+
+ await Promise.all(interestGroups.map(group => prisma.interestGroup.create({
+ data: {
+ name: group.name,
+ articleSection: {
+ create: {
+ cmsImage: { create: {} },
+ cmsParagraph: { create: {} },
+ cmsLink: {
+ create: {
+ url: group.url,
+ text: 'Facebookgruppe'
+ }
+ },
+ }
+ },
+ group: {
+ create: {
+ groupType: 'INTEREST_GROUP',
+ order: order.order,
+ },
+ },
+ }
+ })))
+}
diff --git a/src/prisma/seeder/src/seeder.ts b/src/prisma/seeder/src/seeder.ts
index 3b78513f7..248b13bac 100644
--- a/src/prisma/seeder/src/seeder.ts
+++ b/src/prisma/seeder/src/seeder.ts
@@ -27,6 +27,7 @@ import seedPermissions from './seedPermissions'
import seedFlairs from './seedFlairs'
import { PrismaClient } from '@/prisma-generated-pn-client'
import { PrismaPg } from '@prisma/adapter-pg'
+import seedInterestGroups from './seedInterestGroups'
export default async function seed(
shouldMigrate: boolean,
@@ -56,6 +57,7 @@ export default async function seed(
await seedEvents(prisma)
await seedPermissions(prisma)
await seedFlairs(prisma)
+ await seedInterestGroups(prisma)
if (enableLogging) console.log('seed standard done')
if (enableLogging) console.log(shouldMigrate ? 'migrating from veven' : 'not migrating from veven')
diff --git a/src/services/groups/interestGroups/operations.ts b/src/services/groups/interestGroups/operations.ts
index a1e9c8485..43f583790 100644
--- a/src/services/groups/interestGroups/operations.ts
+++ b/src/services/groups/interestGroups/operations.ts
@@ -54,13 +54,11 @@ export const interestGroupOperations = {
read: defineOperation({
paramsSchema: z.object({
id: z.number().optional(),
- shortName: z.string().optional(),
}),
authorizer: () => interestGroupAuth.read.dynamicFields({}),
- operation: async ({ prisma, params: { id, shortName } }) => await prisma.interestGroup.findUniqueOrThrow({
+ operation: async ({ prisma, params: { id } }) => await prisma.interestGroup.findUniqueOrThrow({
where: {
id,
- shortName,
},
include: {
articleSection: {
diff --git a/src/services/groups/interestGroups/schemas.ts b/src/services/groups/interestGroups/schemas.ts
index c0ffcd08a..8eb1dbfb7 100644
--- a/src/services/groups/interestGroups/schemas.ts
+++ b/src/services/groups/interestGroups/schemas.ts
@@ -5,20 +5,14 @@ const baseSchema = z.object({
.min(3, 'Navn må ha minst 3 tegn')
.max(30, 'Navn kan ha maks 30 tegn')
.trim(),
- shortName: z.string()
- .min(3, 'Kortnavn må ha minst 3 tegn')
- .max(10, 'Kortnavn kan ha maks 10 tegn')
- .trim(),
})
export const interestGroupSchemas = {
create: baseSchema.pick({
name: true,
- shortName: true,
}),
update: baseSchema.partial().pick({
name: true,
- shortName: true,
}),
}
From d60d4be418374e228f2413bac84f5fac955615b3 Mon Sep 17 00:00:00 2001
From: Theodor Kvalsvik Lauritzen
<19690242+theodorklauritzen@users.noreply.github.com>
Date: Wed, 11 Feb 2026 23:39:28 +0100
Subject: [PATCH 2/2] chore: Trigger CI workflows