Commit 72f31a6c authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Merge branch 'master' into alc-scindage-donnees-pj

# Conflicts:
#	.gitignore
#	composer.json
#	composer.lock
#	docker-compose.yml
#	vite.config.mjs
parents d6eabd5c de7a9f45
Loading
Loading
Loading
Loading

.env.example

0 → 100644
+46 −0
Original line number Diff line number Diff line
#---------------------------#
#        Application        #
#---------------------------#
# nom de l'application, utilisé pour les conteneurs entres autres.
# pas de caractères spéciaux autorisés
APP_NAME=ose

# Nom d'hôte de l'application (monapp.mondomaine.fr)
APP_HOST=ose.localhost.unicaen.fr

# Nom visible de l'application, à l'affichage
#APP_LABEL=OSE

# Fuseau horaire de l'application
#APP_TZ=Europe/Paris

# Environnement, 3 valeurs possibles : dev, test, prod
APP_ENV=dev

# ID d'utilisateur de la machine hôte
DEV_HOST_USER_ID=1000

# Port utilisé pour la partie front
#APP_FRONT_PORT=80

# Port utilisé pour Vite (front moderne en mode dev)
#APP_VITE_PORT=5133

#---------------------------#
#        Config Proxy       #
#---------------------------#
# à configurer uniquement sur les serveurs (règle valable pour Unicaen)
#HTTP_PROXY=
#HTTPS_PROXY=
#NO_PROXY=

#---------------------------#
#            Mail           #
#---------------------------#
# Si MAIL_ENABLED=true et les paramètres de mail sont vides, alors un conteneur local sera cré pour héberger un mail catcher
# MAIL_MAILDEV_PORT est réservé aux environnements de dév/test
MAIL_ENABLED=true
#MAIL_MAILDEV_PORT=1080
#MAIL_SMTP_HOST=
#MAIL_SMTP_PORT=25
#MAIL_FROM="ne-pas-repondre@xxx.fr"
 No newline at end of file
+2 −3
Original line number Diff line number Diff line
.env
config.local.php
config/autoload/*.local.php
vendor/*
public/vendor/*
public/unicaen/*
node_modules/*
cache/*
data/fichiers
@@ -14,5 +14,4 @@ composer.phar
.phpunit.result.cache
.idea
/.php-cs-fixer.cache
deployments/*
Makefile
supervisord.*
 No newline at end of file
+33 −9
Original line number Diff line number Diff line
# Version stable

OSE 24.6](#ose-246-17062025)
OSE 24.7](#ose-247-08072025)


# OSE 25 (à venir fin juillet 2025)
# OSE 25 (à venir)

## Nouveautés

@@ -17,9 +17,6 @@ OSE 24.6](#ose-246-17062025)
* Pièces justificatives
  * Possibilité de collecter les pièces justificatives en deux étapes : en cours de recrutement et finalisation après recrutement

* Saisie de service d'enseignement
  * Possibilité de renseigner précisément l'étape d'enseignement en cas d'élément pédagogique mutualisé 

* Possibilité d'exploiter 2 états de sortie différents via le menu "Services"

## Corrections
@@ -31,23 +28,50 @@ OSE 24.6](#ose-246-17062025)
Passage à PHP 8.4 : Une fois passé en version 25, Vous devrez monter en version 8.4 de PHP.


# OSE 24.7 (à venir)

# OSE 24.8 (à venir juillet 2025)

## Nouveautés

* Saisie de service d'enseignement
    * Possibilité de renseigner précisément l'étape d'enseignement en cas d'élément pédagogique mutualisé (#53620)

## Corrections

* Le report de paramétrages sur les années suivantes fonctionne de nouveau pour les statuts & les taux
* Les taux personnalisés par mission sont maintenant correctement exploités dans les contrats de travail
* Dans la page de demande de mise en paiement, tenir compte de l'historisation de la table centre_cout_structure, pour filtrer les centres de coûts proposés (#62665)

# OSE 24.7 (08/07/2025)

## Améliorations

* Nouvelle formule de calcul pour Savoie Mont Blanc
* Nouvelle version de la formule de calcul du Havre
* Nouvelle version de la formule de Dauphine
* Nouvelle version de la formule de Paris 8
* Nouvelle version de la formule de La Rochelle
* Nouvelle version de la formule de Brest

## Corrections

* Lors de l'ajout d'une première heure d'enseignement depuis l'application, les formules se recalculent de nouveau correctement 
* [Problème sur 27 tableurs de formules de calcul : lé détection de structure université ne fonctionnait pas. Impact limité au téléversement de feuilles de calcul sur l'IHM de test.](https://git.unicaen.fr/open-source/OSE/-/commit/2c458ff613f295e2399ea053b83f11b4c3820ccc)
* Correction de la formule de calcul du Havre
* Lors de l'ajout d'une première heure d'enseignement depuis l'application, les formules se recalculent de nouveau correctement : le problème empêchait les feuilles de route de se mettre à jour. 
* [Problème sur 27 tableurs de formules de calcul : la détection de structure université ne fonctionnait pas. Impact limité au téléversement de feuilles de calcul sur l'IHM de test.](https://git.unicaen.fr/open-source/OSE/-/commit/2c458ff613f295e2399ea053b83f11b4c3820ccc)
* Correction privilege visualisation des candidatures d'une offre d'emploi (#59099) 
* Pouvoir refuser une candidature même si l'étudiant n'a pas renseigné à 100% ses données persos et ses pièces justificatives (#62327)
* En mode "utiliser les centres de coûts de la composante d'affectation" pour les paiements, dans le cas des vacataires, la composante d'enseignement reste celle utilisée (#62447)

## Notes de mise à jour

Note à destination des administrateurs fonctionnels.
En ce qui concerne le souci de report de paramétrages sur les années suivantes pour les statuts & les taux,
ce denier ne concerne que les établissements ayant installé OSE durant les deux dernières années (à partir d'une base de données vide, donc).
Pour vous, il se peut que les paramétrages faits pour l'année 2024/2025 n'aient pas été répertutés sur les années suivantes.
Nous vous invitons :
 - à migrer en version 24.7 si vous êtes en version 23 ou 24 ;
 - à vous positionner sur l'année 2025/2026 ;
 - à bien vérifier que vos paramétrages sont corrects, au niveau des statuts & des taux ;
 - à modifier vos paramétrages s'ils ne sont pas bons : la résolution du problème fait que vos actions seront bien répercutées sur les années à venir.


# OSE 24.6 (17/06/2025)

Dockerfile

deleted100644 → 0
+0 −50
Original line number Diff line number Diff line
###########################################################################################
#
#                               Image pour le dev.
#
#         Montage des sources attendu dans le volume "/app" du container.
#
###########################################################################################

ARG PHP_VERSION

FROM unicaen-dev-php${PHP_VERSION}-apache

ARG APPLICATION_ENV

LABEL maintainer="Laurent LÉCLUSE <laurent.lecluse at unicaen.fr>"

ENV APACHE_CONF_DIR=/etc/apache2 \
    PHP_CONF_DIR=/etc/php/${PHP_VERSION}

## Installation de packages requis.
RUN apt-get update -y
RUN apt-get upgrade -y
RUN apt-get install -y unoconv gawk

# Nettoyage
RUN apt-get autoremove -y && apt-get clean && rm -rf /tmp/* /var/tmp/*

# Symlink apache access and error logs to stdout/stderr so Docker logs shows them
RUN ln -sf /dev/stdout /var/log/apache2/access.log
RUN ln -sf /dev/stdout /var/log/apache2/other_vhosts_access.log
RUN ln -sf /dev/stderr /var/log/apache2/error.log

# Lien pour l'exécutable interne de OSE
RUN ln -sf /app/bin/ose /usr/local/bin/ose
RUN ln -sf /app/bin/ose-test /usr/local/bin/ose-test
RUN ln -sf /app/bin/ose-code /usr/local/bin/ose-code

# Config PHP.
ADD docker/${APPLICATION_ENV}/php.conf ${PHP_CONF_DIR}/fpm/conf.d/app.ini
ADD docker/${APPLICATION_ENV}/php.conf ${PHP_CONF_DIR}/cli/conf.d/app.ini

# Configuration Apache et FPM
ADD docker/${APPLICATION_ENV}/apache-ports.conf    ${APACHE_CONF_DIR}/ports.conf
ADD docker/${APPLICATION_ENV}/apache-site.conf     ${APACHE_CONF_DIR}/sites-available/app.conf
ADD docker/${APPLICATION_ENV}/fpm/pool.d/app.conf  ${PHP_CONF_DIR}/fpm/pool.d/app.conf

COPY /docker/${APPLICATION_ENV}/entrypoint.d /entrypoint.d/

RUN a2ensite app && \
    service php${PHP_VERSION}-fpm reload
 No newline at end of file

Makefile

0 → 100644
+130 −0
Original line number Diff line number Diff line
# On s'appuie sur le .env
include .env

ifeq ($(APP_ENV),dev)
    PROFILS := --profile dev
else
    PROFILS := --profile prod
endif

ifeq ($(MAIL_ENABLED),true)
    ifeq ($(MAIL_SMTP_HOST),)
        # Si le MAIL_SMTP_HOST n'est pas renseigné, alors on va utiliser un mailer local pour récupérer les mails
        # S'il est renseigné, alors on considère qu'on va utiliser un serveur SMTP externe
        PROFILS += --profile mail
    endif
endif

ALL_PROFILS := --profile dev --profile prod --profile bdd --profile mail



# Commandes
help:
	@echo "Commandes disponibles:"
	@echo ""
	@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
	@echo ""
	@echo "Utilisez 'make <commande>' avec une des commandes ci-dessus."
.PHONY: help



install: ## Build des conteneurs de l'application
	docker compose $(PROFILS) up -d
.PHONY: install



uninstall: ## Désinstallation
	docker compose $(ALL_PROFILS) down --rmi all --volumes --remove-orphans
	docker network rm $(APP_NAME)-network -f
.PHONY: uninstall



start: ## Démarre les conteneurs de l'application
	docker compose $(PROFILS) start
.PHONY: start



stop: ## Stoppe les conteneurs de l'application
	docker compose $(PROFILS) stop
.PHONY: stop



bash: ## Entrer dans le bash du container php
	docker exec -it $(APP_NAME)-php /bin/bash
.PHONY: bash



bash-apache: ## Entrer dans le container Apache
	docker exec -it $(APP_NAME)-apache /bin/sh
.PHONY: bash-apache



bash-node: ## Entrer dans le container Node.js
	docker exec -it $(APP_NAME)-nodejs /bin/sh
.PHONY: bash-node



logs: ## Afficher les logs des containers docker
	docker compose $(PROFILS) logs -f --tail=100
.PHONY: logs



update-bdd: ## Mise à jour de la base de données
	docker exec -it $(APP_NAME)-php /var/www/html/bin/ose-code test6 update-bdd
.PHONY: update-bdd



update-ddl: ## Mise à jour des définitions de la base de données
	docker exec -it $(APP_NAME)-php /var/www/html/bin/ose update-ddl
	docker exec -it $(APP_NAME)-php chown -R $(DEV_HOST_USER_ID):$(DEV_HOST_USER_ID) *
.PHONY: update-bdd



clear-cache: ## Vide le cache de l'application
	docker exec -it $(APP_NAME)-php /var/www/html/bin/ose clear-cache
.PHONY: clear-cache



rebuild: ## Reconstruit tous les conteneurs
	docker compose $(ALL_PROFILS) down -v
	docker compose $(PROFILS) build --no-cache
	docker compose $(PROFILS) up -d
.PHONY: rebuild



clean: ## Vide les caches Docker
	@echo "==========================================================="
	@echo "  /!\ ATTENTION: DESTRUCTIVE Docker cleanup operation /!\  "
	@echo "==========================================================="
	@echo "Cette opération va supprimer tous les objets suivants de votre instance Docker:"
	@echo "  - Tous les containers non utilisés"
	@echo "  - Tous les réseaux non utilisés"
	@echo "  - Toutes les images dockers non utilisées"
	@echo "  - Tous les volumes non utilisés"
	@echo "  - Tous les caches seront vidés"
	@echo ""
	@echo "CETTE ACTION NE POURRA PAS ÊTRE ANNULÉE!"
	@echo ""
	@read -p "Confirmez-vous ce nettoyage complet ? [o/N] " confirm; \
	if [ "$$confirm" = "o" ] || [ "$$confirm" = "O" ]; then \
		docker compose $(PROFILS) down -v; \
		docker system prune -af --volumes; \
		echo "Ménage fait"; \
	else \
		echo "Ménage annulé"; \
	fi
.PHONY: clean
 No newline at end of file
Loading