generated from gitea_admin/default
dev
This commit is contained in:
BIN
app/assets/img/illustrations/orchestre_3 copie.jpg
Normal file
BIN
app/assets/img/illustrations/orchestre_3 copie.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 254 KiB |
BIN
app/assets/img/illustrations/orchestre_3.jpg
Normal file
BIN
app/assets/img/illustrations/orchestre_3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 254 KiB |
BIN
app/assets/img/illustrations/orchestre_4.jpg
Normal file
BIN
app/assets/img/illustrations/orchestre_4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 299 KiB |
@@ -1,7 +1,7 @@
|
|||||||
.fiche_header_simple_wp {
|
.fiche_header_simple_wp {
|
||||||
display: grid;
|
display: grid;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding-bottom: 100px;
|
padding-bottom: 60px;
|
||||||
|
|
||||||
|
|
||||||
@media (min-width: 0px) and (max-width: 600px) {
|
@media (min-width: 0px) and (max-width: 600px) {
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
.rounded-card-list {
|
.rounded-card-list {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: var(--gap-cards);
|
gap: 13px;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
margin-left: 30px;
|
margin-left: 13px;
|
||||||
}
|
}
|
||||||
@media (max-width: 572px) {
|
@media (max-width: 572px) {
|
||||||
.rounded-card-list {
|
.rounded-card-list {
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
@media (min-width: 1100px) {
|
@media (min-width: 1100px) {
|
||||||
.rounded-card-list > .rounded-card {
|
.rounded-card-list > .rounded-card {
|
||||||
max-width: 300px;
|
max-width: 270px;
|
||||||
flex: 1 1 300px;
|
flex: 1 1 300px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
Professionnels
|
Professionnels
|
||||||
<ul class="header_nav_topbar_submenu">
|
<ul class="header_nav_topbar_submenu">
|
||||||
<li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/programmer-orchestre">Programmer l'Orchestre</NuxtLink></li>
|
<li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/programmer-orchestre">Programmer l'Orchestre</NuxtLink></li>
|
||||||
<li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/studio">Le studio et les espaces</NuxtLink></li>
|
<li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/studio">Le Studio et les espaces</NuxtLink></li>
|
||||||
<li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/parc">Louer des instruments</NuxtLink></li>
|
<li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/parc">Louer des instruments</NuxtLink></li>
|
||||||
<!-- <li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/recrutement">Recrutement / Concours</NuxtLink></li> -->
|
<!-- <li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/recrutement">Recrutement / Concours</NuxtLink></li> -->
|
||||||
<!-- <li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/candidats">Espace candidats</NuxtLink></li> -->
|
<!-- <li class="header_nav_topbar_submenu_item"><NuxtLink to="/professionnels/candidats">Espace candidats</NuxtLink></li> -->
|
||||||
|
|||||||
@@ -24,12 +24,41 @@ export function useStrapi(endpoint, options = {}) {
|
|||||||
return query.toString()
|
return query.toString()
|
||||||
})
|
})
|
||||||
|
|
||||||
const { data, pending, error, refresh } = useFetch(
|
const fetchAll = computed(() => Boolean(unref(options.fetchAll)))
|
||||||
() => `${endpoint}?${queryString.value}`,
|
|
||||||
|
const asyncDataKey = computed(() => `${endpoint}:${queryString.value}:fetchAll=${fetchAll.value}`)
|
||||||
|
|
||||||
|
const { data, pending, error, refresh } = useAsyncData(
|
||||||
|
asyncDataKey,
|
||||||
|
async () => {
|
||||||
|
const baseUrl = `${endpoint}?${queryString.value}`
|
||||||
|
|
||||||
|
if (!fetchAll.value) {
|
||||||
|
return await $fetch(baseUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
const firstPage = await $fetch(addPageParam(baseUrl, 1))
|
||||||
|
const pageCount = Number(firstPage?.meta?.pagination?.pageCount || 1)
|
||||||
|
|
||||||
|
if (pageCount <= 1) {
|
||||||
|
return firstPage
|
||||||
|
}
|
||||||
|
|
||||||
|
const otherPages = await Promise.all(
|
||||||
|
Array.from({ length: pageCount - 1 }, (_, index) => $fetch(addPageParam(baseUrl, index + 2)))
|
||||||
|
)
|
||||||
|
|
||||||
|
return {
|
||||||
|
...firstPage,
|
||||||
|
data: [
|
||||||
|
...(Array.isArray(firstPage?.data) ? firstPage.data : []),
|
||||||
|
...otherPages.flatMap((page) => (Array.isArray(page?.data) ? page.data : [])),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
server: true,
|
server: true,
|
||||||
key: () => `${endpoint}:${queryString.value}`,
|
watch: [queryString, fetchAll],
|
||||||
watch: [queryString],
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -58,6 +87,11 @@ export function useStrapi(endpoint, options = {}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addPageParam(url, page) {
|
||||||
|
const separator = url.includes("?") ? "&" : "?"
|
||||||
|
return `${url}${separator}pagination[page]=${page}`
|
||||||
|
}
|
||||||
|
|
||||||
function appendPopulate(query, populate, prefix = "populate") {
|
function appendPopulate(query, populate, prefix = "populate") {
|
||||||
Object.entries(populate).forEach(([key, value]) => {
|
Object.entries(populate).forEach(([key, value]) => {
|
||||||
if (value === true) {
|
if (value === true) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<PageSection tone="jaune" content-size="default">
|
<PageSection tone="jaune" content-size="default">
|
||||||
<SectionTitle tone="invert" pad="md">
|
<SectionTitle tone="invert" pad="md">
|
||||||
LA SAISON 2025/2026 POUR LES JEUNES
|
LA SAISON POUR LES JEUNES
|
||||||
</SectionTitle>
|
</SectionTitle>
|
||||||
</PageSection>
|
</PageSection>
|
||||||
<PageSection padded_size="md" content-size="default" class="remonter_concert_list">
|
<PageSection padded_size="md" content-size="default" class="remonter_concert_list">
|
||||||
@@ -34,9 +34,42 @@
|
|||||||
import { onMounted } from "vue"
|
import { onMounted } from "vue"
|
||||||
import { formatDateLong } from "@/utils/dateFormat.js"
|
import { formatDateLong } from "@/utils/dateFormat.js"
|
||||||
const runtimeConfig = useRuntimeConfig()
|
const runtimeConfig = useRuntimeConfig()
|
||||||
|
const saisonCourante = String(runtimeConfig.public.saison || "").trim()
|
||||||
|
const saisonPrecedente = String(runtimeConfig.public.saisonmoins1 || "").trim()
|
||||||
|
// PRISE EN COMPTE DE LA DOUBLE SAISON ENTRE L'ANNONCE DE LA NOUVELLE SAISON ET LA FIN DE LA SAISON EN COURS
|
||||||
|
// de janvier à août inclus, saisonmoins1 est ajoutée au filtre via $or
|
||||||
|
// de septembre à décembre, seule runtimeConfig.public.saison est utilisée
|
||||||
|
const inclureSaisonPrecedente = new Date().getMonth() <= 7
|
||||||
|
const saisonFilter = inclureSaisonPrecedente && saisonPrecedente
|
||||||
|
? {
|
||||||
|
$or: [
|
||||||
|
{
|
||||||
|
saison_concert: {
|
||||||
|
nom_saison: {
|
||||||
|
$eq: saisonCourante,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
saison_concert: {
|
||||||
|
nom_saison: {
|
||||||
|
$eq: saisonPrecedente,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
saison_concert: {
|
||||||
|
nom_saison: {
|
||||||
|
$eq: saisonCourante,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
const { concerts, refresh } = useConcerts({
|
const { concerts, refresh } = useConcerts({
|
||||||
locale: "fr-FR",
|
locale: "fr-FR",
|
||||||
|
pageSize: 200,
|
||||||
populate: {
|
populate: {
|
||||||
saison_concert: true,
|
saison_concert: true,
|
||||||
genre_concert: true,
|
genre_concert: true,
|
||||||
@@ -55,13 +88,7 @@
|
|||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
$and: [
|
$and: [
|
||||||
{
|
saisonFilter,
|
||||||
saison_concert: {
|
|
||||||
nom_saison: {
|
|
||||||
$eq: String(runtimeConfig.public.saison),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
$or: [
|
$or: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
import DsMedia from '@root/design-system/primitives/DsMedia.vue'
|
import DsMedia from '@root/design-system/primitives/DsMedia.vue'
|
||||||
import DsButton from '@root/design-system/primitives/DsButton.vue'
|
import DsButton from '@root/design-system/primitives/DsButton.vue'
|
||||||
import DsButtonArrow from '@root/design-system/primitives/DsButtonArrow.vue'
|
import DsButtonArrow from '@root/design-system/primitives/DsButtonArrow.vue'
|
||||||
import orchestre_img from '@/assets/img/illustrations/orchestre_1.jpg'
|
import orchestre_img from '@/assets/img/illustrations/orchestre_3.jpg'
|
||||||
import ppt_img from '@/assets/img/illustrations/map_idf.jpg'
|
import ppt_img from '@/assets/img/illustrations/map_idf.jpg'
|
||||||
import DsCard from '@root/design-system/components/DsCard.vue'
|
import DsCard from '@root/design-system/components/DsCard.vue'
|
||||||
|
|
||||||
|
|||||||
@@ -658,7 +658,8 @@
|
|||||||
{
|
{
|
||||||
locale: "fr-FR",
|
locale: "fr-FR",
|
||||||
populate: populateInstruments,
|
populate: populateInstruments,
|
||||||
pageSize: 500,
|
pageSize: 100,
|
||||||
|
fetchAll: true,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -685,7 +686,14 @@
|
|||||||
groups.get(categoryName).instruments_list.push(instrument)
|
groups.get(categoryName).instruments_list.push(instrument)
|
||||||
}
|
}
|
||||||
|
|
||||||
return Array.from(groups.values())
|
return Array.from(groups.values()).map((category) => ({
|
||||||
|
...category,
|
||||||
|
instruments_list: category.instruments_list.sort((a, b) =>
|
||||||
|
String(a.instrument_nom || "").localeCompare(String(b.instrument_nom || ""), "fr", {
|
||||||
|
sensitivity: "base",
|
||||||
|
})
|
||||||
|
),
|
||||||
|
}))
|
||||||
})
|
})
|
||||||
|
|
||||||
const openedInstrumentDescriptions = ref({})
|
const openedInstrumentDescriptions = ref({})
|
||||||
|
|||||||
@@ -311,7 +311,7 @@
|
|||||||
:key="categorie.id"
|
:key="categorie.id"
|
||||||
class="space-y-4"
|
class="space-y-4"
|
||||||
>
|
>
|
||||||
<div class="flex items-center justify-between mb-8">
|
<div class="flex items-center mb-8">
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
<h3 v-if="categorie.nom_categorie" class="text-2xl font-bold tracking-tight">
|
<h3 v-if="categorie.nom_categorie" class="text-2xl font-bold tracking-tight">
|
||||||
{{ categorie.nom_categorie }}
|
{{ categorie.nom_categorie }}
|
||||||
@@ -556,9 +556,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function formatKoToMo(sizeInKo) {
|
function formatKoToMo(sizeInKo) {
|
||||||
if (typeof sizeInKo !== "number") return ""
|
const size = Number(sizeInKo)
|
||||||
|
|
||||||
return `${(sizeInKo / 1024).toFixed(1)} Mo`
|
if (!Number.isFinite(size)) return ""
|
||||||
|
if (size < 1024) return `${Math.round(size)} Ko`
|
||||||
|
|
||||||
|
return `${(size / 1024).toFixed(1)} Mo`
|
||||||
}
|
}
|
||||||
|
|
||||||
function getInitials(fullName) {
|
function getInitials(fullName) {
|
||||||
|
|||||||
@@ -474,31 +474,11 @@
|
|||||||
<PageSection tone="" content-size="default" padded_size="md">
|
<PageSection tone="" content-size="default" padded_size="md">
|
||||||
<SectionContent class="fiche_description strapi-blocks">
|
<SectionContent class="fiche_description strapi-blocks">
|
||||||
<div>
|
<div>
|
||||||
<div class="mb-8"><iframe src="https://maps.google.com/maps?width=781&height=538&hl=en&q=1,%20rue%20du%20Capitaine%20Alfred-Dreyfus%20Alfortvillle+(Parc%20instrumental)&t=&z=14&ie=UTF8&iwloc=B&output=embed" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe></div>
|
<div class="mb-8"><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d70672.55028389905!2d2.3463168575299274!3d48.83180674769099!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47e6730f74558a15%3A0xc9a8bbf42df731e5!2sOrchestre%20national%20d'%C3%8Ele-de-France!5e0!3m2!1sfr!2sfr!4v1678109834196!5m2!1sfr!2sfr" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe></div>
|
||||||
<div>
|
<div>
|
||||||
<h1>Comment venir ?</h1>
|
<h1>Comment venir ?</h1>
|
||||||
<h2>Accès par la route</h2>
|
|
||||||
<h3>Depuis Paris</h3>
|
<h2>RER ligne D</h2>
|
||||||
<ul>
|
|
||||||
<li>À la Porte de Bercy, prendre A4 direction Metz/Nancy</li>
|
|
||||||
<li>Quitter l’A4 à la première sortie, direction Maisons-Alfort, Alfortville</li>
|
|
||||||
<li>Serrer sur la droite et après le pont de Charenton, prendre à droite direction Ivry, Alfortville</li>
|
|
||||||
<li>Continuer tout droit, au quatrième feu, prendre à gauche direction Choisy-le-Roi (ne pas traverser le pont d’Ivry)</li>
|
|
||||||
<li>Longer la Seine sur plus d’1 kilomètre</li>
|
|
||||||
<li>Après la station service Total, prendre la première rue à gauche : la rue Jules-Guesdes. Au bout de cette rue, prendre à droite dans la rue Victor-Hugo, puis, au rond-point, tourner immédiatement à droite dans la rue du 14-juillet. Prendre la première à droite, rue Lafayette, puis la première à gauche : c’est la rue des Écoles</li>
|
|
||||||
<li>La Maison de l’Orchestre se trouve à 100 mètres sur la droite</li>
|
|
||||||
</ul>
|
|
||||||
<h3>Depuis l’A86 (entre Créteil et Versailles)</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Sortir de l’A86, direction Alfortville–Vitry-sur-Seine</li>
|
|
||||||
<li>Serrer sur la droite et suivre indication Alfortville</li>
|
|
||||||
<li>Au deuxième feu, prendre en face et longer la Seine (qui se trouve sur votre droite)</li>
|
|
||||||
<li>Au niveau du Centre Leclerc, prendre à droite direction Alfortville et passer le pont de Vitry sur la file de gauche, pour tourner à gauche après le pont</li>
|
|
||||||
<li>Longer les quais de Seine, au 2e feu à droite prendre la rue du 14-juillet qui vous amènera directement à la rue des Écoles</li>
|
|
||||||
<li>Prendre à gauche, la Maison de l’Orchestre se trouve à 100 mètres sur la droite</li>
|
|
||||||
</ul>
|
|
||||||
<h2>Accès par les transports en commun</h2>
|
|
||||||
<h3>RER ligne D</h3>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Descendre station Maisons-Alfort, Alfortville et sortir côté Alfortville</li>
|
<li>Descendre station Maisons-Alfort, Alfortville et sortir côté Alfortville</li>
|
||||||
<li>Prendre à droite en sortant de la gare : avenue Malleret-Joinville sur 500 mètres environ</li>
|
<li>Prendre à droite en sortant de la gare : avenue Malleret-Joinville sur 500 mètres environ</li>
|
||||||
@@ -506,7 +486,7 @@
|
|||||||
<li>Arrivé sur la place Jean-Jaurès (rond-point), continuer en face (entre magasin de téléphonie et Crédit Lyonnais) : rue Victor-Hugo. Tourner dans la première rue à gauche : rue des Écoles</li>
|
<li>Arrivé sur la place Jean-Jaurès (rond-point), continuer en face (entre magasin de téléphonie et Crédit Lyonnais) : rue Victor-Hugo. Tourner dans la première rue à gauche : rue des Écoles</li>
|
||||||
<li>À environ 150 mètres sur la droite se trouve le bâtiment de l’Orchestre</li>
|
<li>À environ 150 mètres sur la droite se trouve le bâtiment de l’Orchestre</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3>Métro ligne 8</h3>
|
<h2>Métro ligne 8</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Descendre station École vétérinaire de Maisons-Alfort</li>
|
<li>Descendre station École vétérinaire de Maisons-Alfort</li>
|
||||||
<li>Prendre le bus 103 en sortant du métro. Descendre à la station Mairie d’Alfortville</li>
|
<li>Prendre le bus 103 en sortant du métro. Descendre à la station Mairie d’Alfortville</li>
|
||||||
@@ -530,7 +510,7 @@
|
|||||||
nom="Maria Birioukova"
|
nom="Maria Birioukova"
|
||||||
poste="Responsable des productions et du personnel artistique "
|
poste="Responsable des productions et du personnel artistique "
|
||||||
numero="06 77 11 24 74"
|
numero="06 77 11 24 74"
|
||||||
mail="lmaria.birioukova@orchestre-ile.com"
|
mail="maria.birioukova@orchestre-ile.com"
|
||||||
adresse="19 rue des Écoles 94140 Alfortvillle"
|
adresse="19 rue des Écoles 94140 Alfortvillle"
|
||||||
/>
|
/>
|
||||||
</PageSection>
|
</PageSection>
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export default defineNuxtConfig({
|
|||||||
public: {
|
public: {
|
||||||
strapiUrl: '',
|
strapiUrl: '',
|
||||||
saison: '',
|
saison: '',
|
||||||
|
saisonmoins1: '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user