diff --git a/.gitignore b/.gitignore index 229b0a877ab83569c54016a43366479aaa6136f6..8a71686d5de68165c88a5b4603a3178eaa08f36f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ node_modules/ .data/ #photos .public/uploads/* +public/uploads/ + diff --git a/public/uploads/.gitkeep b/public/uploads/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/public/uploads/1696621135015-appar.jpg b/public/uploads/1696621135015-appar.jpg deleted file mode 100644 index 6f630107b28dc89eed19f9609bf212c1fb1de234..0000000000000000000000000000000000000000 Binary files a/public/uploads/1696621135015-appar.jpg and /dev/null differ diff --git a/public/uploads/1696623043023-appar.jpg b/public/uploads/1696623043023-appar.jpg deleted file mode 100644 index 6f630107b28dc89eed19f9609bf212c1fb1de234..0000000000000000000000000000000000000000 Binary files a/public/uploads/1696623043023-appar.jpg and /dev/null differ diff --git a/public/uploads/1696623420829-286915653.jpg b/public/uploads/1696623420829-286915653.jpg deleted file mode 100644 index 3f745995da3696eb2e71c376b65ca83f6d3e2dd9..0000000000000000000000000000000000000000 Binary files a/public/uploads/1696623420829-286915653.jpg and /dev/null differ diff --git a/public/uploads/1696623501746-286915653.jpg b/public/uploads/1696623501746-286915653.jpg deleted file mode 100644 index 3f745995da3696eb2e71c376b65ca83f6d3e2dd9..0000000000000000000000000000000000000000 Binary files a/public/uploads/1696623501746-286915653.jpg and /dev/null differ diff --git a/public/uploads/1696623515042-appar.jpg b/public/uploads/1696623515042-appar.jpg deleted file mode 100644 index 6f630107b28dc89eed19f9609bf212c1fb1de234..0000000000000000000000000000000000000000 Binary files a/public/uploads/1696623515042-appar.jpg and /dev/null differ diff --git a/routes/announcement.js b/routes/announcement.js index 6f7dd02858b5025eaddc2c573bbc1592ec2de820..55efdc0719964b833278b80932d3172938e26a1b 100644 --- a/routes/announcement.js +++ b/routes/announcement.js @@ -118,6 +118,21 @@ router.post('/update/:id', isAuthenticated, upload.array('photos', ), async (req } }); +router.get('/delete/:id', isAuthenticated, async (req, res) => { + try { + const announcementId = req.params.id; + const deletedAnnouncement = await Announcement.findByIdAndRemove(announcementId); + console.log(deletedAnnouncement,'-------------') + if (!deletedAnnouncement) { + return res.status(404).json({ message: 'annonce non trouvée' }); + } + + res.redirect('/announcements'); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}); + module.exports = router; diff --git a/views/announcement_details.pug b/views/announcement_details.pug index fa4b098f3303c171878dd018cb78b2cfbb26fcf0..89c622872ec7f5bfa8b551266d9cc6f32e3c8357 100644 --- a/views/announcement_details.pug +++ b/views/announcement_details.pug @@ -14,7 +14,7 @@ block content p.card-text Statut Bien: #{announcement.propertyStatus} - var date = new Date(announcement.availabilityDate); - var options = { year: 'numeric', month: 'long', day: 'numeric' }; - - var frenchDate = date.toLocaleDateString('fr-FR', options); + - var frenchDate = date.toLocaleDateString('fr-FR', options) p.card-text Date de Disponibilité: #{frenchDate} if announcement.photos.length > 0 @@ -22,3 +22,4 @@ block content img.card-img-top(src=`/uploads/${photo}`, alt=announcement.title) a.btn.btn-primary(href=`/announcements/update/${announcement._id}`) Modifier l'annonce + a.btn.btn-danger(href=`/announcements/delete/${announcement._id}`) Supprimer l'annonce diff --git a/views/update_announcement.pug b/views/update_announcement.pug index 8c0ff1a00b06195bdd8ad90ff21aa8b5fa4c4d88..c596303d935f2d3e009079161cf941a63211b30c 100644 --- a/views/update_announcement.pug +++ b/views/update_announcement.pug @@ -12,13 +12,15 @@ block content .form-group label(for="propertyType") Type de Bien - input#propertyType.form-control(type="text", name="propertyType", required, value=announcement.propertyType) + select#propertyType.form-control(name="propertyType", required) + option(value="À la vente", selected=announcement.propertyType === "À la vente") À la vente + option(value="À la location", selected=announcement.propertyType === "À la location") À la location .form-group label(for="price") Prix input#price.form-control(type="text", name="price", required, pattern="[0-9]+(\.[0-9]{1,2})?", title='Veuillez entrer un nombre', value=announcement.price) - .form-group + .form-group label(for="availabilityDate") Date de disponibilité input#availabilityDate.form-control(type="date", name="availabilityDate", required, value=announcement.availabilityDate) @@ -28,11 +30,16 @@ block content .form-group label(for="publicationStatus") Statut Publication - input#publicationStatus.form-control(type="text", name="publicationStatus", required, value=announcement.publicationStatus) + select#publicationStatus.form-control(name="publicationStatus", required) + option(value="Publiée", selected=announcement.publicationStatus === "Publiée") Publiée + option(value="Non publiée", selected=announcement.publicationStatus === "Non publiée") Non publiée .form-group label(for="propertyStatus") Statut Bien - input#propertyStatus.form-control(type="text", name="propertyStatus", required, value=announcement.propertyStatus) + select#propertyStatus.form-control(name="propertyStatus", required) + option(value="Disponible", selected=announcement.propertyStatus === "Disponible") Disponible + option(value="Loué", selected=announcement.propertyStatus === "Loué") Loué + option(value="Vendu", selected=announcement.propertyStatus === "Vendu") Vendu .form-group label(for="photos") Photos