Skip to content

Commit

Permalink
EP-4536
Browse files Browse the repository at this point in the history
  • Loading branch information
oplekal committed Dec 17, 2024
1 parent 2776519 commit a90e391
Show file tree
Hide file tree
Showing 11 changed files with 114 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@ public UserDetailsService users() {
DevSecurityRole.ylops().crud().oid("1.2.246.562.10.68534785412").build(),
DevSecurityRole.ylops().crud().oid("1.2.246.562.10.83037752777").build(),
DevSecurityRole.ylops().crud().oid("1.2.246.562.28.11332956371").build(),
DevSecurityRole.ylops().crud().oid("1.2.246.562.10.81269623245").build()
DevSecurityRole.ylops().crud().oid("1.2.246.562.10.81269623245").build(),
DevSecurityRole.ylops().crud().oid("1.2.246.562.10.35005580424").build()
)
.build();
UserDetails ylops_helsinki = User.withDefaultPasswordEncoder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ public class OpetussuunnitelmaExportDto extends OpetussuunnitelmaBaseDto {
private PerusteInfoDto peruste;
private OpetussuunnitelmaNimiDto pohja;
private TekstiKappaleViiteExportDto.Puu tekstit;
private boolean sisaltaaPerusteenTekstit;
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,14 @@
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TekstiKappaleViiteExportDto {

private TekstiKappaleViiteExportDto original;

private Long id;

private TekstiKappaleDto tekstiKappale;

@Deprecated
private TekstiKappaleViiteExportDto original;
private TekstiKappaleViiteExportDto pohjanTeksti;
private TekstiKappaleDto perusteenTekstikappale;

private Omistussuhde omistussuhde;
private boolean pakollinen;
private boolean valmis;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ public static LokalisoituTekstiDto of(String value, Kieli kieli) {
return new LokalisoituTekstiDto(null, null, map);
}

public static LokalisoituTekstiDto of(Map<Kieli, String> tekstit) {
return new LokalisoituTekstiDto(null, null, tekstit);
}

public LokalisoituTekstiDto(Long id, Map<Kieli, String> values) {
this(id, null, values);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import fi.vm.sade.eperusteet.ylops.domain.Tila;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

Expand All @@ -12,6 +13,7 @@
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TekstiKappaleDto {
private Long id;
private Date luotu;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ public ResponseEntity<TekstiKappaleViiteDto.Matala> getTekstiKappaleViiteOrigina
public ResponseEntity<List<TekstiKappaleViiteDto.Matala>> getTekstiKappaleViiteOriginals(
@PathVariable("opsId") final Long opsId,
@PathVariable("viiteId") final Long viiteId) {
List<TekstiKappaleViiteDto.Matala> dtos = tekstiKappaleViiteService.getTekstiKappaleViiteOriginals(opsId, viiteId);
List<TekstiKappaleViiteDto.Matala> dtos = tekstiKappaleViiteService.getPohjanTekstikappaleViite(opsId, viiteId);
return new ResponseEntity<>(dtos, HttpStatus.OK);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ TekstiKappaleViiteDto.Matala addTekstiKappaleViite(@P("opsId") Long opsId,
TekstiKappaleViiteDto.Matala getTekstiKappaleViiteOriginal(@P("opsId") Long opsId, Long viiteId);

@PreAuthorize("hasPermission(#opsId, 'opetussuunnitelma', 'LUKU')")
List<TekstiKappaleViiteDto.Matala> getTekstiKappaleViiteOriginals(@P("opsId") Long opsId, Long viiteId);
List<TekstiKappaleViiteDto.Matala> getPohjanTekstikappaleViite(@P("opsId") Long opsId, Long viiteId);

@PreAuthorize("hasPermission(#opsId, 'opetussuunnitelma', 'LUKU')")
<T> List<T> getTekstiKappaleViiteOriginals(@P("opsId") Long opsId, Long viiteId, Class<T> clazz);
<T> List<T> getPohjanTekstikappaleViite(@P("opsId") Long opsId, Long viiteId, Class<T> clazz);

@PreAuthorize("hasPermission(#opsId, 'opetussuunnitelma', 'LUKU')")
Integer alaOpetussuunnitelmaLukumaaraTekstikappaleTunniste(Long opsId, UUID tunniste);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import fi.vm.sade.eperusteet.ylops.dto.OpetussuunnitelmaExportDto;
import fi.vm.sade.eperusteet.ylops.dto.TekstiKappaleViiteExportDto;
import fi.vm.sade.eperusteet.ylops.dto.peruste.PerusteInfoDto;
import fi.vm.sade.eperusteet.ylops.dto.teksti.LokalisoituTekstiDto;
import fi.vm.sade.eperusteet.ylops.dto.teksti.TekstiKappaleDto;
import fi.vm.sade.eperusteet.ylops.repository.ops.OpetussuunnitelmaRepository;
import fi.vm.sade.eperusteet.ylops.service.lops2019.Lops2019Service;
import fi.vm.sade.eperusteet.ylops.service.mapping.DtoMapper;
Expand All @@ -14,6 +16,7 @@
import fi.vm.sade.eperusteet.ylops.service.ops.OpsExport;
import fi.vm.sade.eperusteet.ylops.service.ops.TekstiKappaleViiteService;
import fi.vm.sade.eperusteet.ylops.service.util.CollectionUtil;
import fi.vm.sade.eperusteet.ylops.service.util.JulkaisuUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
Expand Down Expand Up @@ -59,11 +62,27 @@ public <T extends OpetussuunnitelmaExportDto> T export(Long opsId, Class<T> clz)
CollectionUtil.treeToStream(dto.getTekstit(), TekstiKappaleViiteExportDto.Puu::getLapset)
.filter(viite -> viite.getTekstiKappale() != null)
.forEach(tekstiKappaleViite -> {
List<TekstiKappaleViiteExportDto> viiteExports = tekstiKappaleViiteService.getTekstiKappaleViiteOriginals(opsId, tekstiKappaleViite.getId(), TekstiKappaleViiteExportDto.class);
List<TekstiKappaleViiteExportDto> viiteExports = tekstiKappaleViiteService.getPohjanTekstikappaleViite(opsId, tekstiKappaleViite.getId(), TekstiKappaleViiteExportDto.class);
if (!viiteExports.isEmpty()) {
tekstiKappaleViite.setOriginal(viiteExports.get(0));
tekstiKappaleViite.setPohjanTeksti(viiteExports.get(0));
if (viiteExports.size() == 2) {
tekstiKappaleViite.getOriginal().setOriginal(viiteExports.get(1));
tekstiKappaleViite.getPohjanTeksti().setPohjanTeksti(viiteExports.get(1));
}
}

if (JulkaisuUtil.opetussuunnitelmanPerusteDataMergeTuettu(dto)) {
dto.setSisaltaaPerusteenTekstit(true);

fi.vm.sade.eperusteet.ylops.service.external.impl.perustedto.TekstiKappaleViiteDto perusteenTekstikappaleViiteDto = tekstiKappaleViiteService.getPerusteTekstikappale(opsId, tekstiKappaleViite.getId());
if (perusteenTekstikappaleViiteDto != null && perusteenTekstikappaleViiteDto.getTekstiKappale() != null) {
TekstiKappaleDto perusteenTekstikappelDto = new TekstiKappaleDto();
perusteenTekstikappelDto.setNimi(LokalisoituTekstiDto.of(perusteenTekstikappaleViiteDto.getTekstiKappale().getNimi().getTekstit()));

if (perusteenTekstikappaleViiteDto.getTekstiKappale().getTeksti() != null) {
perusteenTekstikappelDto.setTeksti(LokalisoituTekstiDto.of(perusteenTekstikappaleViiteDto.getTekstiKappale().getTeksti().getTekstit()));
}

tekstiKappaleViite.setPerusteenTekstikappale(perusteenTekstikappelDto);
}
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -417,12 +417,12 @@ public TekstiKappaleViiteDto.Matala getTekstiKappaleViiteOriginal(Long opsId, Lo
}

@Override
public List<TekstiKappaleViiteDto.Matala> getTekstiKappaleViiteOriginals(Long opsId, Long viiteId) {
return getTekstiKappaleViiteOriginals(opsId, viiteId, TekstiKappaleViiteDto.Matala.class);
public List<TekstiKappaleViiteDto.Matala> getPohjanTekstikappaleViite(Long opsId, Long viiteId) {
return getPohjanTekstikappaleViite(opsId, viiteId, TekstiKappaleViiteDto.Matala.class);
}

@Override
public <T> List<T> getTekstiKappaleViiteOriginals(Long opsId, Long viiteId, Class<T> clazz) {
public <T> List<T> getPohjanTekstikappaleViite(Long opsId, Long viiteId, Class<T> clazz) {
List<T> viiteList = new ArrayList<>();
Opetussuunnitelma opetussuunnitelma = opetussuunnitelmaRepository.findOne(opsId);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package fi.vm.sade.eperusteet.ylops.service.util;

import fi.vm.sade.eperusteet.ylops.domain.KoulutusTyyppi;
import fi.vm.sade.eperusteet.ylops.dto.OpetussuunnitelmaExportDto;
import lombok.experimental.UtilityClass;

import java.util.Collection;
import java.util.List;

@UtilityClass
public class JulkaisuUtil {

private static final Collection<KoulutusTyyppi> PERUSTE_MERGE_TUETTU = List.of(KoulutusTyyppi.ESIOPETUS, KoulutusTyyppi.VARHAISKASVATUS);

public static boolean opetussuunnitelmanPerusteDataMergeTuettu(OpetussuunnitelmaExportDto exportDto) {
return PERUSTE_MERGE_TUETTU.contains(exportDto.getKoulutustyyppi());
}
}
97 changes: 53 additions & 44 deletions generated/ylops.spec.json
Original file line number Diff line number Diff line change
Expand Up @@ -8949,7 +8949,7 @@
},
"kohde" : {
"type" : "string",
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi" ]
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi", "peruste" ]
},
"luotu" : {
"type" : "string",
Expand Down Expand Up @@ -8991,7 +8991,7 @@
},
"type" : {
"type" : "string",
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi" ]
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi", "peruste" ]
},
"meta" : {
"type" : "object",
Expand Down Expand Up @@ -9635,6 +9635,9 @@
},
"tekstit" : {
"$ref" : "#/definitions/Puu"
},
"sisaltaaPerusteenTekstit" : {
"type" : "boolean"
}
}
},
Expand Down Expand Up @@ -10428,7 +10431,7 @@
},
"kohde" : {
"type" : "string",
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi" ]
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi", "peruste" ]
},
"luotu" : {
"type" : "string",
Expand Down Expand Up @@ -10457,7 +10460,7 @@
"properties" : {
"kohde" : {
"type" : "string",
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi" ]
"enum" : [ "root", "tiedot", "viite", "liitteet", "liite", "laajaalaiset", "laajaalainen", "oppiaineet", "oppimaarat", "oppiaine", "poppiaine", "lukiooppiaineet_2015", "lukiooppimaarat_2015", "lukiooppiaine_2015", "lukiokurssit", "lukiokurssi", "moduulit", "moduuli", "opintojaksot", "opintojakso", "opetussuunnitelma", "opetussuunnitelma_rakenne", "termi", "kommentti", "perusopetusoppiaineet", "perusopetusoppiaine", "perusopetuspaikallinenoppiaine", "valinnaisetoppiaineet", "vuosiluokkakokonaisuus", "oppiaineenvuosiluokka", "tavoitteet_sisallot_arviointi", "peruste" ]
},
"kohdeId" : {
"type" : "integer",
Expand Down Expand Up @@ -11056,9 +11059,8 @@
"type" : "integer",
"format" : "int64"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
"first" : {
"type" : "boolean"
},
"size" : {
"type" : "integer",
Expand All @@ -11077,14 +11079,15 @@
"sort" : {
"$ref" : "#/definitions/Sort"
},
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"last" : {
"type" : "boolean"
},
"first" : {
"type" : "boolean"
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
},
"empty" : {
"type" : "boolean"
Expand All @@ -11102,9 +11105,8 @@
"type" : "integer",
"format" : "int64"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
"first" : {
"type" : "boolean"
},
"size" : {
"type" : "integer",
Expand All @@ -11123,14 +11125,15 @@
"sort" : {
"$ref" : "#/definitions/Sort"
},
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"last" : {
"type" : "boolean"
},
"first" : {
"type" : "boolean"
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
},
"empty" : {
"type" : "boolean"
Expand All @@ -11148,9 +11151,8 @@
"type" : "integer",
"format" : "int64"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
"first" : {
"type" : "boolean"
},
"size" : {
"type" : "integer",
Expand All @@ -11169,14 +11171,15 @@
"sort" : {
"$ref" : "#/definitions/Sort"
},
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"last" : {
"type" : "boolean"
},
"first" : {
"type" : "boolean"
"pageable" : {
"$ref" : "#/definitions/Pageable"
},
"numberOfElements" : {
"type" : "integer",
"format" : "int32"
},
"empty" : {
"type" : "boolean"
Expand All @@ -11186,12 +11189,12 @@
"Pageable" : {
"type" : "object",
"properties" : {
"unpaged" : {
"type" : "boolean"
},
"pageSize" : {
"offset" : {
"type" : "integer",
"format" : "int32"
"format" : "int64"
},
"sort" : {
"$ref" : "#/definitions/Sort"
},
"paged" : {
"type" : "boolean"
Expand All @@ -11200,12 +11203,12 @@
"type" : "integer",
"format" : "int32"
},
"offset" : {
"type" : "integer",
"format" : "int64"
"unpaged" : {
"type" : "boolean"
},
"sort" : {
"$ref" : "#/definitions/Sort"
"pageSize" : {
"type" : "integer",
"format" : "int32"
}
}
},
Expand Down Expand Up @@ -12061,13 +12064,13 @@
"Sort" : {
"type" : "object",
"properties" : {
"unsorted" : {
"empty" : {
"type" : "boolean"
},
"sorted" : {
"unsorted" : {
"type" : "boolean"
},
"empty" : {
"sorted" : {
"type" : "boolean"
}
}
Expand Down Expand Up @@ -12213,16 +12216,22 @@
"TekstiKappaleViiteExportDto" : {
"type" : "object",
"properties" : {
"original" : {
"$ref" : "#/definitions/TekstiKappaleViiteExportDto"
},
"id" : {
"type" : "integer",
"format" : "int64"
},
"tekstiKappale" : {
"$ref" : "#/definitions/TekstiKappaleDto"
},
"original" : {
"$ref" : "#/definitions/TekstiKappaleViiteExportDto"
},
"pohjanTeksti" : {
"$ref" : "#/definitions/TekstiKappaleViiteExportDto"
},
"perusteenTekstikappale" : {
"$ref" : "#/definitions/TekstiKappaleDto"
},
"omistussuhde" : {
"type" : "string",
"enum" : [ "OMA", "LAINATTU" ]
Expand Down

0 comments on commit a90e391

Please sign in to comment.