diff --git a/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/domain/oppiaine/Oppiaine.java b/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/domain/oppiaine/Oppiaine.java index 7cbc78ee5..d3a949f37 100644 --- a/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/domain/oppiaine/Oppiaine.java +++ b/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/domain/oppiaine/Oppiaine.java @@ -334,8 +334,7 @@ public void setOppiaine(Oppiaine oppiaine) { } } - public void asetaPohjanOppiaine(Oppiaine pohjanOppiaine) { - this.pohjanOppiaine = pohjanOppiaine; + public void tyhjennaTiedot() { setTehtava(new Tekstiosa()); setTavoitteet(new Tekstiosa()); setArviointi(new Tekstiosa()); diff --git a/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/repository/ops/OppiaineRepository.java b/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/repository/ops/OppiaineRepository.java index 57697389b..c150fb33e 100644 --- a/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/repository/ops/OppiaineRepository.java +++ b/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/repository/ops/OppiaineRepository.java @@ -44,6 +44,4 @@ public interface OppiaineRepository extends JpaWithVersioningRepository findOtherOpetussuunnitelmasContainingOpsOppiaine(long oppiaineId, long exceptOpsId); - - Set findByPohjanOppiaine(Oppiaine pohjanOppiaine); } diff --git a/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/service/ops/impl/OppiaineServiceImpl.java b/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/service/ops/impl/OppiaineServiceImpl.java index 1d88c05ac..3df5eaabf 100644 --- a/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/service/ops/impl/OppiaineServiceImpl.java +++ b/eperusteet-ylops-service/src/main/java/fi/vm/sade/eperusteet/ylops/service/ops/impl/OppiaineServiceImpl.java @@ -65,6 +65,7 @@ import fi.vm.sade.eperusteet.ylops.service.ops.OpsOppiaineCtx; import fi.vm.sade.eperusteet.ylops.service.ops.PoistoService; import fi.vm.sade.eperusteet.ylops.service.ops.VuosiluokkakokonaisuusService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -93,6 +94,7 @@ import static java.util.stream.Collectors.toMap; import static java.util.stream.Collectors.toSet; +@Slf4j @Service @Transactional public class OppiaineServiceImpl extends AbstractLockService implements OppiaineService { @@ -405,7 +407,7 @@ private void addOppiaineToChildOpetussuunnitelmat(Long opetussuunnitelmaId, Oppi } Oppiaine newOppiaine = oppiaineet.save(Oppiaine.copyOf(oppiaine)); - newOppiaine.asetaPohjanOppiaine(oppiaine); + newOppiaine.tyhjennaTiedot(); newOppiaine.setLiittyvaOppiaine(Optional.ofNullable(oppiaine.getLiittyvaOppiaine()) .map(liittyva -> oppiaineet.findOneByOpsIdAndTunniste(opetussuunnitelma.getId(), liittyva.getTunniste())).orElse(null)); @@ -420,7 +422,6 @@ private void addOppiaineToChildOpetussuunnitelmat(Long opetussuunnitelmaId, Oppi } else { Oppiaine parentOppiaine = oppiaineet.findOneByOpsIdAndTunniste(opetussuunnitelma.getId(), parentOppiaineTunniste); Boolean isParentOma = oppiaineet.isOma(opetussuunnitelma.getId(), parentOppiaine.getId()); - if (!isParentOma) { kopioiMuokattavaksi(opetussuunnitelma.getId(), parentOppiaine.getId(), true); } else { @@ -799,16 +800,9 @@ public OpsOppiaineDto kopioiMuokattavaksi(Long opsId, Long id, boolean asetaPohj Oppiaine newOppiaine = oppiaineet.save(Oppiaine.copyOf(oppiaine)); if (asetaPohjanOppiaine) { - newOppiaine.asetaPohjanOppiaine(oppiaine); + newOppiaine.tyhjennaTiedot(); if (newOppiaine.getOppimaarat() != null) { - newOppiaine.getOppimaarat().forEach(newoppimaara -> { - Optional optOppimaara = oppiaine.getOppimaarat().stream() - .filter(oppimaara -> oppimaara.getKoodiUri().equals(newoppimaara.getKoodiUri())) - .findFirst(); - if (optOppimaara.isPresent()) { - newoppimaara.asetaPohjanOppiaine(optOppimaara.get()); - } - }); + newOppiaine.getOppimaarat().forEach(Oppiaine::tyhjennaTiedot); } } @@ -907,11 +901,6 @@ public PoistettuOppiaineDto delete(Long opsId, Long oppiaineId) { .findByOppiaineIds(oppiaine.maarineen().map(Oppiaine::getId).collect(toSet()))); oppiaineLukiokurssiRepository.deleteAll(oppiaineLukiokurssiRepository.findByOpsAndOppiaine(opsId, oppiaineId)); - oppiaineet.findByPohjanOppiaine(oppiaine).forEach(pohjanOppiainettaKayttavaOppiaine -> { - pohjanOppiainettaKayttavaOppiaine.asetaPohjanOppiaine(null); - oppiaineet.save(pohjanOppiainettaKayttavaOppiaine); - }); - poistaOppiaineAlaOpetussuunnitelmista(opsId, oppiaine); muokkaustietoService.addOpsMuokkausTieto(ops, oppiaine, MuokkausTapahtuma.POISTO); diff --git a/eperusteet-ylops-service/src/main/resources/db/migration/V1_20241014120400__drop_pohjan_oppiaine.sql b/eperusteet-ylops-service/src/main/resources/db/migration/V1_20241014120400__drop_pohjan_oppiaine.sql new file mode 100644 index 000000000..977569d31 --- /dev/null +++ b/eperusteet-ylops-service/src/main/resources/db/migration/V1_20241014120400__drop_pohjan_oppiaine.sql @@ -0,0 +1,2 @@ +ALTER TABLE oppiaine DROP COLUMN pohjan_oppiaine_id; +ALTER TABLE oppiaine_aud DROP COLUMN pohjan_oppiaine_id; \ No newline at end of file diff --git a/eperusteet-ylops-service/src/test/java/fi/vm/sade/eperusteet/ylops/service/ops/OppiaineServiceIT.java b/eperusteet-ylops-service/src/test/java/fi/vm/sade/eperusteet/ylops/service/ops/OppiaineServiceIT.java index 76d3f7309..97e096f76 100644 --- a/eperusteet-ylops-service/src/test/java/fi/vm/sade/eperusteet/ylops/service/ops/OppiaineServiceIT.java +++ b/eperusteet-ylops-service/src/test/java/fi/vm/sade/eperusteet/ylops/service/ops/OppiaineServiceIT.java @@ -283,8 +283,8 @@ public void testMuokattavaksiKopioiminen() { OpsOppiaineDto opsOppiaine = oppiaineService.kopioiMuokattavaksi(alaOps.getId(), oppiaine.getId(), true); assertNotEquals("Oppiaineet ovat samat", opsOppiaine.getOppiaine().getId(), oppiaine.getId()); - assertEquals("Väärä pohja", opsOppiaine.getOppiaine().getPohjanOppiaine().getId(), oppiaine.getId()); assertNull(opsOppiaine.getOppiaine().getTehtava().getTeksti()); + assertEquals(opsOppiaine.getOppiaine().getTunniste(), oppiaine.getTunniste()); opsOppiaine.getOppiaine().getVuosiluokkakokonaisuudet().forEach(vlk -> { assertNull(vlk.getArviointi().getTeksti()); assertNull(vlk.getOhjaus().getTeksti());