diff --git a/back/api/application/controllers/application.js b/back/api/application/controllers/application.js
index 75939ab..7849a4d 100644
--- a/back/api/application/controllers/application.js
+++ b/back/api/application/controllers/application.js
@@ -18,9 +18,9 @@ module.exports = {
const query =
type === 'place'
? {
- ...initialQuery,
- 'disponibility.espace.users_permissions_user.id': id,
- }
+ ...initialQuery,
+ 'disponibility.espace.users_permissions_user.id': id,
+ }
: { ...initialQuery, company: id }
const populate =
type === 'place'
@@ -59,6 +59,7 @@ module.exports = {
'creation_file',
'campaign',
'company',
+ 'espace',
],
)
diff --git a/back/extensions/documentation/documentation/1.0.0/full_documentation.json b/back/extensions/documentation/documentation/1.0.0/full_documentation.json
index a5563b5..3863c63 100644
--- a/back/extensions/documentation/documentation/1.0.0/full_documentation.json
+++ b/back/extensions/documentation/documentation/1.0.0/full_documentation.json
@@ -14,7 +14,7 @@
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
},
- "x-generation-date": "03/10/2024 10:56:56 PM"
+ "x-generation-date": "03/18/2024 6:34:37 PM"
},
"x-strapi-config": {
"path": "/documentation",
diff --git a/web/components/Account/AccountMenu.tsx b/web/components/Account/AccountMenu.tsx
index 9ae93bf..c7cf88d 100644
--- a/web/components/Account/AccountMenu.tsx
+++ b/web/components/Account/AccountMenu.tsx
@@ -160,7 +160,9 @@ const AccountMenu = ({ user }: { user: UsersPermissionsUser }) => {
currentCampaign.mode !== 'closed')
const hideApplication =
- currentCampaign?.mode === 'preselections' &&
+ ['waiting_preselections', 'preselections'].includes(
+ currentCampaign?.mode,
+ ) &&
!applications?.length &&
user?.type === 'company'
diff --git a/web/components/Campaign/CampaignProvider.tsx b/web/components/Campaign/CampaignProvider.tsx
index 8cecfe5..14683b1 100644
--- a/web/components/Campaign/CampaignProvider.tsx
+++ b/web/components/Campaign/CampaignProvider.tsx
@@ -56,6 +56,11 @@ const CampaignProvider = ({ children }: ICampaignProvider) => {
today <= getEndDateTime(campaign.application_end)
) {
return 'applications'
+ } else if (
+ today > getEndDateTime(campaign.application_end) &&
+ today < getStartDateTime(campaign.preselection_start)
+ ) {
+ return 'waiting_preselections'
} else if (
today >= getStartDateTime(campaign.preselection_start) &&
today <= getEndDateTime(campaign.preselection_end)
@@ -64,6 +69,7 @@ const CampaignProvider = ({ children }: ICampaignProvider) => {
} else if (today >= getEndDateTime(campaign.preselection_end)) {
return 'closed'
}
+
return null
}
diff --git a/web/components/Campaign/Home/ApplicationsCampaignInsert.tsx b/web/components/Campaign/Home/ApplicationsCampaignInsert.tsx
index df1ac0b..c90c51d 100644
--- a/web/components/Campaign/Home/ApplicationsCampaignInsert.tsx
+++ b/web/components/Campaign/Home/ApplicationsCampaignInsert.tsx
@@ -1,14 +1,14 @@
-import { VStack, Text, Box, Button, HStack, Stack } from '@chakra-ui/react'
-import Hands from 'public/assets/img/hands-outline.svg'
-import theme from '~theme'
+import { Box, Button, HStack, Stack, Text, VStack } from '@chakra-ui/react'
+import { motion } from 'framer-motion'
import { useTranslation } from 'next-i18next'
-import { ROUTE_PLACES } from '~constants'
-import Tag from '~components/Tag'
-import Link from '~components/Link'
+import Hands from 'public/assets/img/hands-outline.svg'
+import ApplicationCounter from '~components/Campaign/ApplicationCounter'
import useCampaignContext from '~components/Campaign/useCampaignContext'
+import Link from '~components/Link'
+import Tag from '~components/Tag'
+import { ROUTE_PLACES } from '~constants'
+import theme from '~theme'
import { format } from '~utils/date'
-import ApplicationCounter from '~components/Campaign/ApplicationCounter'
-import { motion } from 'framer-motion'
const ApplicationsCampaignInsert = () => {
const { currentCampaign } = useCampaignContext()
@@ -28,7 +28,9 @@ const ApplicationsCampaignInsert = () => {
transition="3s linear"
>
- {t(`campaign.title`,{title: currentCampaign?.title})}
+
+ {t(`campaign.title`, { title: currentCampaign?.title })}
+
diff --git a/web/components/Place/PlacesCampaignTabs.tsx b/web/components/Place/PlacesCampaignTabs.tsx
index 7659536..2d7f2c4 100644
--- a/web/components/Place/PlacesCampaignTabs.tsx
+++ b/web/components/Place/PlacesCampaignTabs.tsx
@@ -1,20 +1,20 @@
-import React, { useEffect, useState } from 'react'
import {
- Tabs,
- TabPanels,
- TabPanel,
- TabList,
- Tab,
+ Box,
HStack,
+ Tab,
+ TabList,
+ TabPanel,
+ TabPanels,
+ Tabs,
Text,
- Box,
} from '@chakra-ui/react'
-import { format } from '~utils/date'
-import Tag from '~components/Tag'
import { useTranslation } from 'next-i18next'
-import PlacesPage from '~components/Place/PlacesPage'
-import useCampaignContext from '~components/Campaign/useCampaignContext'
import { useRouter } from 'next/router'
+import { useEffect, useState } from 'react'
+import useCampaignContext from '~components/Campaign/useCampaignContext'
+import PlacesPage from '~components/Place/PlacesPage'
+import Tag from '~components/Tag'
+import { format } from '~utils/date'
const PlacesCampaignTabs = () => {
const router = useRouter()
@@ -87,7 +87,7 @@ const PlacesCampaignTabs = () => {
paddingY={2}
borderRadius="12px"
>
- {t(`campaign.title`,{title: currentCampaign?.title})}
+ {t(`campaign.title`, { title: currentCampaign?.title })}
diff --git a/web/pages/api/pdfs/selected/[id].tsx b/web/pages/api/pdfs/selected/[id].tsx
index 6e8a5ff..1468ddf 100644
--- a/web/pages/api/pdfs/selected/[id].tsx
+++ b/web/pages/api/pdfs/selected/[id].tsx
@@ -4,6 +4,7 @@ import AdmZip from 'adm-zip'
import { getSession } from 'next-auth/client'
import { client } from '~api/client-api'
import ApplicationDocument from '~components/pdfs/ApplicationDocument'
+import { format } from '~utils/date'
import { formatCampaignZipName, getBufferFromStream } from '~utils/pdf'
const SelectedCampaignApplications = async (req, res) => {
@@ -18,7 +19,7 @@ const SelectedCampaignApplications = async (req, res) => {
const zip = new AdmZip()
const { data: campaign } = await client.campaigns.campaignsDetail(campaignId)
- console.log({jwt:session.user.jwt})
+ console.log({ jwt: session.user.jwt })
try {
const {
@@ -32,7 +33,6 @@ const SelectedCampaignApplications = async (req, res) => {
},
)
-
// Group by place
const groupedApplications = selectedApplications.reduce(
(grouped, application) => {
@@ -64,6 +64,7 @@ const SelectedCampaignApplications = async (req, res) => {
for (const userId of userIds) {
const applications = groupedApplications[userId]
+
const place =
applications[0]?.disponibility?.espace?.users_permissions_user
const name = place?.structureName
@@ -76,9 +77,17 @@ const SelectedCampaignApplications = async (req, res) => {
)
const refLabel = `Ref. ${application.id}`
+
+ const disponibilityLabel = `${format(
+ application.disponibility?.start,
+ 'dd-MM',
+ )} au ${format(application.disponibility?.end, 'dd-MM')}`
+
+ const subFolder = `${application?.espace?.name} - ${disponibilityLabel} - ${refLabel} - ${structureName}`
+
const streamBuffer = await getBufferFromStream(stream)
await zip.addFile(
- `${name}/${refLabel} - ${structureName}/${refLabel} - Candidature.pdf`,
+ `${name}/${subFolder}/${refLabel} - Candidature.pdf`,
streamBuffer,
)
@@ -88,7 +97,7 @@ const SelectedCampaignApplications = async (req, res) => {
const creationFileArrayBuffer = await creationFile.buffer()
await zip.addFile(
- `${name}/${refLabel} - ${structureName}/${refLabel} - Dossier artistique.pdf`,
+ `${name}/${subFolder}/${refLabel} - Dossier artistique.pdf`,
creationFileArrayBuffer,
)
}
diff --git a/web/pages/compte/mes-candidatures/index.tsx b/web/pages/compte/mes-candidatures/index.tsx
index efcea90..efe4300 100644
--- a/web/pages/compte/mes-candidatures/index.tsx
+++ b/web/pages/compte/mes-candidatures/index.tsx
@@ -45,7 +45,12 @@ const CompanyApplications = ({ user }: Props) => {
return null
}
- if (currentCampaign?.mode === 'preselections' && applications?.length === 0) {
+ if (
+ ['preselections', 'waiting_preselections'].includes(
+ currentCampaign?.mode,
+ ) &&
+ applications?.length === 0
+ ) {
router.push(ROUTE_ACCOUNT)
return null
}