Skip to content

Commit

Permalink
endre Åpent for påmelding-flagg utenfor skjema
Browse files Browse the repository at this point in the history
  • Loading branch information
sondrele committed Nov 20, 2024
1 parent 3e27ddf commit 2615d5e
Show file tree
Hide file tree
Showing 19 changed files with 148 additions and 48 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { QueryKeys } from "@/api/QueryKeys";
import { TiltaksgjennomforingerService } from "@mr/api-client";

export function useSetApentForPamelding(id: string) {
const queryClient = useQueryClient();

return useMutation({
mutationFn: async (apentForPamelding: boolean) => {
return TiltaksgjennomforingerService.setApentForPamelding({
id: id,
requestBody: { apentForPamelding },
});
},

onSuccess() {
return Promise.all([
queryClient.invalidateQueries({
queryKey: QueryKeys.tiltaksgjennomforinger(),
}),
queryClient.invalidateQueries({
queryKey: QueryKeys.tiltaksgjennomforing(id),
}),
]);
},

throwOnError: true,
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ export const TiltaksgjennomforingSchema = z
(val) => !!val,
"Du må velge oppstartstype",
),
apentForPamelding: z.boolean().default(true),
beskrivelse: z.string().nullable(),
faneinnhold: FaneinnholdSchema.nullable(),
opphav: z.nativeEnum(Opphav),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { Alert, BodyLong, Button, Modal, Switch } from "@navikt/ds-react";
import { RefObject } from "react";
import { TiltaksgjennomforingDto } from "@mr/api-client";
import { useSetApentForPamelding } from "@/api/tiltaksgjennomforing/useSetApentForPamelding";

interface Props {
modalRef: RefObject<HTMLDialogElement>;
gjennomforing: TiltaksgjennomforingDto;
}

export function SetApentForPameldingModal({ modalRef, gjennomforing }: Props) {
const { mutate } = useSetApentForPamelding(gjennomforing.id);

return (
<Modal ref={modalRef} header={{ heading: "Åpent for påmelding" }}>
<Modal.Body>
<BodyLong>
<p>Dette flagget styrer om deltakere kan meldes på fra Modia.</p>

<Alert variant={"info"}>
<b>Det er kun mulig å stenge for påmelding fra Modia.</b> Hvis deltakelsen fortsatt
administreres i Arena så vil ikke dette flagget ha noe effekt, men det vil likevel vises
som stengt i Modia.
</Alert>

<p>
Påmelding stenges automatisk av systemet når:
<ul>
<li>
Tiltak med oppstartstype <b>felles oppstart</b> starter.
</li>
<li>Tiltaket avsluttes eller blir avbrutt.</li>
</ul>
</p>

<Switch
checked={gjennomforing.apentForPamelding}
onChange={(e) => mutate(e.target.checked)}
>
Åpent for påmelding
</Switch>
</BodyLong>
</Modal.Body>
<Modal.Footer>
<Button type="button" onClick={() => modalRef.current?.close()}>
Ferdig
</Button>
</Modal.Footer>
</Modal>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ export function defaultTiltaksgjennomforingData(
},
arrangorId: defaultArrangor(avtale, tiltaksgjennomforing),
oppstart: tiltaksgjennomforing?.oppstart || defaultOppstartType(avtale),
apentForPamelding: tiltaksgjennomforing?.apentForPamelding ?? true,
kontaktpersoner: tiltaksgjennomforing?.kontaktpersoner ?? [],
stedForGjennomforing: tiltaksgjennomforing?.stedForGjennomforing ?? null,
arrangorKontaktpersoner:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ export function TiltaksgjennomforingSkjemaContainer({
administratorer: data.administratorer,
arrangorId: data.arrangorId,
oppstart: data.oppstart,
apentForPamelding: data.apentForPamelding,
kontaktpersoner:
data.kontaktpersoner
?.filter((kontakt) => kontakt.navIdent !== null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,6 @@ export function TiltaksgjennomforingSkjemaDetaljer({ tiltaksgjennomforing, avtal
format={"iso-string"}
/>
</HGrid>
<Switch
size="small"
{...register("apentForPamelding")}
checked={watch("apentForPamelding")}
>
{tiltaktekster.apentForPameldingLabel}
</Switch>
<HGrid align="start" columns={2}>
<TextField
size="small"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { gjennomforingIsAktiv } from "@mr/frontend-common/utils/utils";
import { AvbrytGjennomforingModal } from "@/components/modal/AvbrytGjennomforingModal";
import { KnapperadContainer } from "@/pages/KnapperadContainer";
import { useFeatureToggle } from "@/api/features/useFeatureToggle";
import { SetApentForPameldingModal } from "@/components/tiltaksgjennomforinger/SetApentForPameldingModal";

interface Props {
bruker: NavAnsatt;
Expand All @@ -23,6 +24,7 @@ export function TiltaksgjennomforingKnapperad({ bruker, tiltaksgjennomforing }:
const { mutate } = useMutatePublisert();
const advarselModal = useRef<HTMLDialogElement>(null);
const avbrytModalRef = useRef<HTMLDialogElement>(null);
const apentForPameldingModalRef = useRef<HTMLDialogElement>(null);
const { data: enableOpprettTilsagn } = useFeatureToggle(
Toggles.MULIGHETSROMMET_ADMIN_FLATE_OPPRETT_TILSAGN,
);
Expand Down Expand Up @@ -73,6 +75,13 @@ export function TiltaksgjennomforingKnapperad({ bruker, tiltaksgjennomforing }:
>
Rediger gjennomføring
</Dropdown.Menu.GroupedList.Item>
{gjennomforingIsAktiv(tiltaksgjennomforing.status.status) && (
<Dropdown.Menu.GroupedList.Item
onClick={() => apentForPameldingModalRef.current?.showModal()}
>
Endre synlighet for påmelding
</Dropdown.Menu.GroupedList.Item>
)}
{enableOpprettTilsagn && gjennomforingIsAktiv(tiltaksgjennomforing.status.status) ? (
<Dropdown.Menu.GroupedList.Item
onClick={() => {
Expand Down Expand Up @@ -104,6 +113,10 @@ export function TiltaksgjennomforingKnapperad({ bruker, tiltaksgjennomforing }:
</Button>
}
/>
<SetApentForPameldingModal
modalRef={apentForPameldingModalRef}
gjennomforing={tiltaksgjennomforing}
/>
<AvbrytGjennomforingModal
modalRef={avbrytModalRef}
tiltaksgjennomforing={tiltaksgjennomforing}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import no.nav.mulighetsrommet.api.plugins.getNavIdent
import no.nav.mulighetsrommet.api.refusjon.db.DeltakerRepository
import no.nav.mulighetsrommet.api.responses.BadRequest
import no.nav.mulighetsrommet.api.responses.respondWithStatusResponse
import no.nav.mulighetsrommet.api.services.EndretAv
import no.nav.mulighetsrommet.api.services.ExcelService
import no.nav.mulighetsrommet.domain.dbo.TiltaksgjennomforingOppstartstype
import no.nav.mulighetsrommet.domain.dto.*
Expand Down Expand Up @@ -69,6 +70,14 @@ fun Route.tiltaksgjennomforingRoutes() {
call.respond(HttpStatusCode.OK)
}

put("{id}/apent-for-pamelding") {
val id = call.parameters.getOrFail<UUID>("id")
val navIdent = getNavIdent()
val request = call.receive<SetApentForPameldingRequest>()
service.setApentForPamelding(id, request.apentForPamelding, EndretAv.NavAnsatt(navIdent))
call.respond(HttpStatusCode.OK)
}

put("{id}/tilgjengelig-for-arrangor") {
val id = call.parameters.getOrFail<UUID>("id")
val request = call.receive<SetTilgjengligForArrangorRequest>()
Expand Down Expand Up @@ -265,7 +274,6 @@ data class TiltaksgjennomforingRequest(
val navRegion: String,
val navEnheter: List<String>,
val oppstart: TiltaksgjennomforingOppstartstype,
val apentForPamelding: Boolean,
val kontaktpersoner: List<TiltaksgjennomforingKontaktpersonDto>,
val stedForGjennomforing: String?,
val faneinnhold: Faneinnhold?,
Expand All @@ -285,7 +293,6 @@ data class TiltaksgjennomforingRequest(
startDato = startDato,
sluttDato = sluttDato,
antallPlasser = antallPlasser,
apentForPamelding = apentForPamelding,
arrangorId = arrangorId,
arrangorKontaktpersoner = arrangorKontaktpersoner,
administratorer = administratorer,
Expand Down Expand Up @@ -335,6 +342,11 @@ data class PublisertRequest(
val publisert: Boolean,
)

@Serializable
data class SetApentForPameldingRequest(
val apentForPamelding: Boolean,
)

@Serializable
data class SetTilgjengligForArrangorRequest(
@Serializable(with = LocalDateSerializer::class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,14 @@ class TiltaksgjennomforingService(

fun setApentForPamelding(id: UUID, apentForPamelding: Boolean, bruker: EndretAv) = db.transaction { tx ->
tiltaksgjennomforinger.setApentForPamelding(tx, id, apentForPamelding)

val dto = getOrError(id, tx)
logEndring("Stengte for påmelding", dto, bruker, tx)
val operation = if (apentForPamelding) {
"Åpnet for påmelding"
} else {
"Stengte for påmelding"
}
logEndring(operation, dto, bruker, tx)
}

fun getEndringshistorikk(id: UUID): EndringshistorikkDto {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ data class TiltaksgjennomforingDbo(
val arrangorKontaktpersoner: List<UUID>,
val startDato: LocalDate,
val sluttDato: LocalDate?,
val apentForPamelding: Boolean,
val antallPlasser: Int,
val avtaleId: UUID,
val administratorer: List<NavIdent>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ class TiltaksgjennomforingRepository(private val db: Database) {
arrangor_id,
start_dato,
slutt_dato,
apent_for_pamelding,
antall_plasser,
avtale_id,
oppstart,
Expand All @@ -74,7 +73,6 @@ class TiltaksgjennomforingRepository(private val db: Database) {
:arrangor_id,
:start_dato,
:slutt_dato,
:apent_for_pamelding,
:antall_plasser,
:avtale_id,
:oppstart::tiltaksgjennomforing_oppstartstype,
Expand All @@ -94,7 +92,6 @@ class TiltaksgjennomforingRepository(private val db: Database) {
arrangor_id = excluded.arrangor_id,
start_dato = excluded.start_dato,
slutt_dato = excluded.slutt_dato,
apent_for_pamelding = excluded.apent_for_pamelding,
antall_plasser = excluded.antall_plasser,
avtale_id = excluded.avtale_id,
oppstart = excluded.oppstart,
Expand Down Expand Up @@ -601,7 +598,6 @@ class TiltaksgjennomforingRepository(private val db: Database) {
"arrangor_id" to arrangorId,
"start_dato" to startDato,
"slutt_dato" to sluttDato,
"apent_for_pamelding" to apentForPamelding,
"antall_plasser" to antallPlasser,
"avtale_id" to avtaleId,
"oppstart" to oppstart.name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ data class TiltaksgjennomforingDto(
arrangorKontaktpersoner = arrangor.kontaktpersoner.map { it.id },
startDato = startDato,
sluttDato = sluttDato,
apentForPamelding = apentForPamelding,
antallPlasser = antallPlasser ?: -1,
avtaleId = avtaleId ?: id,
administratorer = administratorer.map { it.navIdent },
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
alter table tiltaksgjennomforing
alter column apent_for_pamelding set default true;
27 changes: 24 additions & 3 deletions mulighetsrommet-api/src/main/resources/web/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,22 @@ paths:
200:
description: Update for 'tilgjengelig for veileder' was successful

/api/v1/intern/tiltaksgjennomforinger/{id}/apent-for-pamelding:
parameters:
- $ref: "#/components/parameters/ID"
put:
tags:
- Tiltaksgjennomforinger
operationId: setApentForPamelding
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SetApentForPameldingRequest"
responses:
200:
description: OK

/api/v1/intern/tiltaksgjennomforinger/{id}/tilgjengelig-for-arrangor:
parameters:
- $ref: "#/components/parameters/ID"
Expand Down Expand Up @@ -2674,8 +2690,6 @@ components:
type: string
oppstart:
$ref: "#/components/schemas/TiltaksgjennomforingOppstartstype"
apentForPamelding:
type: boolean
kontaktpersoner:
type: array
items:
Expand Down Expand Up @@ -2723,7 +2737,6 @@ components:
- navRegion
- navEnheter
- oppstart
- apentForPamelding
- kontaktpersoner
- stedForGjennomforing
- faneinnhold
Expand Down Expand Up @@ -4123,6 +4136,14 @@ components:
required:
- publisert

SetApentForPameldingRequest:
type: object
properties:
apentForPamelding:
type: boolean
required:
- apentForPamelding

SetTilgjengligForArrangorRequest:
type: object
properties:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,6 @@ class ArenaAdapterServiceTest :
it.arrangor.organisasjonsnummer shouldBe ArrangorFixtures.underenhet1.organisasjonsnummer
it.startDato shouldBe gjennomforing1.startDato
it.sluttDato shouldBe gjennomforing1.sluttDato
it.apentForPamelding shouldBe gjennomforing1.apentForPamelding
it.antallPlasser shouldBe gjennomforing1.antallPlasser
it.oppstart shouldBe gjennomforing1.oppstart
it.deltidsprosent shouldBe gjennomforing1.deltidsprosent
Expand Down
Loading

0 comments on commit 2615d5e

Please sign in to comment.