Loading README.md +1 −1 Changes for README.md: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -195,7 +195,7 @@ Note : Les propriétés non obligatoires peuvent être omises, mais il est préf | `COD_CMP` | `string` | Oui | Code composante | | `COD_VET` | `string` | Oui | Code formation | | `LIB_ELP` | `string` | Oui | Libelle cour | | `NBR_CRD_ELP` | `string` | Oui | Crédits | | `NBR_CRD_ELP` | `string` | Oui | Crédits ECTS, deux décimales (`"2.50"`) | | `LIB_RDE` | `string` | Non | Domaine, permet de mieux categoriser les cours | | `LIB_CMT_ELP` | `string` | Non | Libelle/Commentaires anglais | | `S1` | `string` | Non | "S1" ou vide ou boolean | Loading api/migrations/Version20261008190552.php 0 → 100644 +26 −0 Changes for api/migrations/Version20261008190552.php: 26 added lines, 0 removed lines. Original line number Diff line number Diff line <?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20261008190552 extends AbstractMigration { public function getDescription(): string { return 'APOGEE : crédits ECTS des cours avec deux décimales (2,5 était arrondi à 3)'; } public function up(Schema $schema): void { $this->addSql('ALTER TABLE cour ALTER nbr_crd_elp TYPE NUMERIC(6, 2)'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE cour ALTER nbr_crd_elp TYPE NUMERIC(10, 0)'); } } api/src/Entity/Cour.php +1 −1 Changes for api/src/Entity/Cour.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ class Cour private ?string $LANGUE_ENSEIGNEMENT = null; #[Groups('read')] #[ORM\Column(type: 'decimal', precision: 10, scale: 0)] #[ORM\Column(type: 'decimal', precision: 6, scale: 2)] private string $NBR_CRD_ELP; #[Groups('read')] Loading api/tests/Api/CollectionsTest.php +17 −3 Changes for api/tests/Api/CollectionsTest.php: 17 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -84,6 +84,19 @@ class CollectionsTest extends ApiTestCase $this->assertEquals(24.5, $membre['NBR_VOL_ELP']); } /** * Vérifie que les demi-crédits ECTS d'APOGEE ne sont pas arrondis. */ public function testCreditsDecimaux(): void { $client = $this->creerClient(); $this->insererCours(1, 2.5); $membre = $this->lireCollection($client, '/cours')['hydra:member'][0]; $this->assertEquals(2.5, $membre['NBR_CRD_ELP']); } /** * Vérifie la pagination suivie par Smile et smileplus : 100 éléments par page et lien hydra:next. */ Loading Loading @@ -146,13 +159,14 @@ class CollectionsTest extends ApiTestCase * Insère des cours comme le fait app:import-data. * * @param int $nombre nombre de cours à insérer * @param float $credits crédits ECTS de chaque cours */ private function insererCours(int $nombre): void private function insererCours(int $nombre, float $credits = 6): void { for ($i = 1; $i <= $nombre; ++$i) { $this->connexion()->executeStatement( "INSERT INTO cour (id, cod_elp, cod_cmp, cod_vet, lib_elp, lib_rde, lib_cmt_elp, s1, s2, langue_enseignement, nbr_crd_elp, nbr_vol_elp) VALUES (nextval('cour_id_seq'), :code, 'SCI', 'LINFO', :libelle, 'Informatique', :commentaire, 'S1', NULL, 'Français', 6, 24.5)", ['code' => sprintf('ELP%05d', $i), 'libelle' => 'Cours '.$i, 'commentaire' => 'Course '.$i] "INSERT INTO cour (id, cod_elp, cod_cmp, cod_vet, lib_elp, lib_rde, lib_cmt_elp, s1, s2, langue_enseignement, nbr_crd_elp, nbr_vol_elp) VALUES (nextval('cour_id_seq'), :code, 'SCI', 'LINFO', :libelle, 'Informatique', :commentaire, 'S1', NULL, 'Français', :credits, 24.5)", ['code' => sprintf('ELP%05d', $i), 'libelle' => 'Cours '.$i, 'commentaire' => 'Course '.$i, 'credits' => $credits] ); } } Loading Loading
README.md +1 −1 Changes for README.md: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -195,7 +195,7 @@ Note : Les propriétés non obligatoires peuvent être omises, mais il est préf | `COD_CMP` | `string` | Oui | Code composante | | `COD_VET` | `string` | Oui | Code formation | | `LIB_ELP` | `string` | Oui | Libelle cour | | `NBR_CRD_ELP` | `string` | Oui | Crédits | | `NBR_CRD_ELP` | `string` | Oui | Crédits ECTS, deux décimales (`"2.50"`) | | `LIB_RDE` | `string` | Non | Domaine, permet de mieux categoriser les cours | | `LIB_CMT_ELP` | `string` | Non | Libelle/Commentaires anglais | | `S1` | `string` | Non | "S1" ou vide ou boolean | Loading
api/migrations/Version20261008190552.php 0 → 100644 +26 −0 Changes for api/migrations/Version20261008190552.php: 26 added lines, 0 removed lines. Original line number Diff line number Diff line <?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20261008190552 extends AbstractMigration { public function getDescription(): string { return 'APOGEE : crédits ECTS des cours avec deux décimales (2,5 était arrondi à 3)'; } public function up(Schema $schema): void { $this->addSql('ALTER TABLE cour ALTER nbr_crd_elp TYPE NUMERIC(6, 2)'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE cour ALTER nbr_crd_elp TYPE NUMERIC(10, 0)'); } }
api/src/Entity/Cour.php +1 −1 Changes for api/src/Entity/Cour.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ class Cour private ?string $LANGUE_ENSEIGNEMENT = null; #[Groups('read')] #[ORM\Column(type: 'decimal', precision: 10, scale: 0)] #[ORM\Column(type: 'decimal', precision: 6, scale: 2)] private string $NBR_CRD_ELP; #[Groups('read')] Loading
api/tests/Api/CollectionsTest.php +17 −3 Changes for api/tests/Api/CollectionsTest.php: 17 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -84,6 +84,19 @@ class CollectionsTest extends ApiTestCase $this->assertEquals(24.5, $membre['NBR_VOL_ELP']); } /** * Vérifie que les demi-crédits ECTS d'APOGEE ne sont pas arrondis. */ public function testCreditsDecimaux(): void { $client = $this->creerClient(); $this->insererCours(1, 2.5); $membre = $this->lireCollection($client, '/cours')['hydra:member'][0]; $this->assertEquals(2.5, $membre['NBR_CRD_ELP']); } /** * Vérifie la pagination suivie par Smile et smileplus : 100 éléments par page et lien hydra:next. */ Loading Loading @@ -146,13 +159,14 @@ class CollectionsTest extends ApiTestCase * Insère des cours comme le fait app:import-data. * * @param int $nombre nombre de cours à insérer * @param float $credits crédits ECTS de chaque cours */ private function insererCours(int $nombre): void private function insererCours(int $nombre, float $credits = 6): void { for ($i = 1; $i <= $nombre; ++$i) { $this->connexion()->executeStatement( "INSERT INTO cour (id, cod_elp, cod_cmp, cod_vet, lib_elp, lib_rde, lib_cmt_elp, s1, s2, langue_enseignement, nbr_crd_elp, nbr_vol_elp) VALUES (nextval('cour_id_seq'), :code, 'SCI', 'LINFO', :libelle, 'Informatique', :commentaire, 'S1', NULL, 'Français', 6, 24.5)", ['code' => sprintf('ELP%05d', $i), 'libelle' => 'Cours '.$i, 'commentaire' => 'Course '.$i] "INSERT INTO cour (id, cod_elp, cod_cmp, cod_vet, lib_elp, lib_rde, lib_cmt_elp, s1, s2, langue_enseignement, nbr_crd_elp, nbr_vol_elp) VALUES (nextval('cour_id_seq'), :code, 'SCI', 'LINFO', :libelle, 'Informatique', :commentaire, 'S1', NULL, 'Français', :credits, 24.5)", ['code' => sprintf('ELP%05d', $i), 'libelle' => 'Cours '.$i, 'commentaire' => 'Course '.$i, 'credits' => $credits] ); } } Loading