Services page done. Switched timezone
|
|
@ -46,6 +46,7 @@ Le visiteur doit pouvoir :
|
|||
|
||||
5. Page contact
|
||||
6. Page légale
|
||||
7. Page services
|
||||
|
||||
### Données
|
||||
|
||||
|
|
@ -78,10 +79,8 @@ Le visiteur doit pouvoir :
|
|||
|
||||
## TO DO
|
||||
|
||||
- Page service : navette + location
|
||||
- Gestion du calendrier
|
||||
..\_ Synchroniser avec Google calendar (qd Calendar mis à jour => update db et quand db mise à jour => update calendrier)
|
||||
..\_ Afficher les disponibilités (Présentation à la hauteur)
|
||||
..\_ Synchroniser avec Google calendar (qd Calendar mis à jour => update db et quand db mise à jour => update calendrier) service worker ?
|
||||
..\_ Ajouter un date picker dans le formulaire de réservation
|
||||
- Envoyer devis réservation par mail et notification aux hôtes
|
||||
- Ajout page/module de paiement
|
||||
|
|
@ -97,6 +96,9 @@ Le visiteur doit pouvoir :
|
|||
- Mixpanel et Google Analytics
|
||||
- Récrire les mentions légales
|
||||
- configure nginx server to serve media files
|
||||
- Centrer Bouton "Reserver" page location
|
||||
- Ajouter un titre "Disponibilités" au dessus du calendrier
|
||||
- page réservation : égayer avec des petites photos …
|
||||
|
||||
## BUGS
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 525 KiB After Width: | Height: | Size: 525 KiB |
|
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 275 KiB |
|
Before Width: | Height: | Size: 767 KiB After Width: | Height: | Size: 767 KiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 538 KiB After Width: | Height: | Size: 538 KiB |
|
Before Width: | Height: | Size: 334 KiB After Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 454 KiB After Width: | Height: | Size: 454 KiB |
|
Before Width: | Height: | Size: 4 MiB After Width: | Height: | Size: 4 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
|
@ -1,6 +1,5 @@
|
|||
from django import forms
|
||||
from .models import Reservation, Place, Guest
|
||||
# from _field.modelfields import Field
|
||||
|
||||
|
||||
class ReservationForm(forms.Form):
|
||||
|
|
@ -10,12 +9,16 @@ class ReservationForm(forms.Form):
|
|||
max_length=100,
|
||||
min_length=4,
|
||||
widget=forms.TextInput(attrs={
|
||||
'class': 'form-control form-control-lg form-control-a', 'placeholder': 'Nom *'}),
|
||||
'class': 'form-control form-control-lg form-control-a',
|
||||
'placeholder': 'Nom *'
|
||||
}),
|
||||
required=True)
|
||||
email = forms.EmailField(
|
||||
label='',
|
||||
widget=forms.EmailInput(attrs={
|
||||
'class': 'form-control form-control-lg form-control-a', 'placeholder': 'Email *'}),
|
||||
'class': 'form-control form-control-lg form-control-a',
|
||||
'placeholder': 'Email *'
|
||||
}),
|
||||
required=True
|
||||
)
|
||||
phone = forms.CharField(
|
||||
|
|
@ -23,7 +26,9 @@ class ReservationForm(forms.Form):
|
|||
max_length=30,
|
||||
min_length=4,
|
||||
widget=forms.TextInput(attrs={
|
||||
'class': 'form-control form-control-lg form-control-a', 'placeholder': 'Téléphone *'}),
|
||||
'class': 'form-control form-control-lg form-control-a',
|
||||
'placeholder': 'Téléphone *'
|
||||
}),
|
||||
required=True)
|
||||
place = forms.ChoiceField(
|
||||
label='',
|
||||
|
|
@ -36,7 +41,11 @@ class ReservationForm(forms.Form):
|
|||
# max_length=100,
|
||||
min_length=4,
|
||||
widget=forms.Textarea(attrs={
|
||||
'class': 'form-control', 'cols': '45', 'rows': '8', 'placeholder': 'Message *'}),
|
||||
'class': 'form-control',
|
||||
'cols': '45',
|
||||
'rows': '8',
|
||||
'placeholder': 'Message *'
|
||||
}),
|
||||
required=True)
|
||||
start = forms.DateField(
|
||||
label='',
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
Fully working PHP/AJAX contact form is available in the pro version.
|
||||
You can buy it from: https://bootstrapmade.com/real-estate-agency-bootstrap-template/
|
||||
|
|
@ -1,8 +1,3 @@
|
|||
/*!
|
||||
* Bootstrap v4.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@
|
|||
>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'reservation' %}">Réservation</a>
|
||||
<a class="nav-link" href="{% url 'services' %}">Services</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'about' %}">À propos</a>
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a class="btn btn-b" href="{% url 'rental:list_place' %}">
|
||||
<a class="btn btn-b" href="{% url 'reservation' %}">
|
||||
Réserver
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -27,9 +27,8 @@
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!--/ Intro Single End /-->
|
||||
|
||||
<!--/ Contact Star /-->
|
||||
|
||||
<section class="contact">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<p style="text-align: center;"><strong>Un système de réservation en ligne sera bientôt mis en place. Patience !</strong></p>
|
||||
<p style="text-align: justify;">Bien entendu, il est possible de réserver votre séjour à VillaFleurie via diverses plateformes de réservations en ligne :</p>
|
||||
<ul style="text-align: justify;">
|
||||
<li><a href="http://www.booking.com/hotel/gp/villafleurie.html" target="_blank" rel="noopener">Booking.com</a></li>
|
||||
<li><a href="https://www.booking.com/hotel/gp/villafleurie.html" target="_blank" rel="noopener">Booking.com</a></li>
|
||||
<li>AirBnB : <a href="https://www.airbnb.fr/rooms/11583356" target="_blank" rel="noopener">T2</a> et <a href="https://www.airbnb.fr/rooms/12584994?preview_for_ml=true" target="_blank" rel="noopener">T3</a></li>
|
||||
<li>TripAdvisor : <a href="https://www.tripadvisor.fr/VacationRentalReview-g644387-d9744507-Location_T2_calme_dans_le_bourg-Le_Gosier_Grande_Terre_Island_Guadeloupe.html" target="_blank" rel="noopener">T2</a> et <a href="https://www.tripadvisor.fr/VacationRentalReview-g644387-d9751497-Location_T3_calme_dans_le_bourg-Le_Gosier_Grande_Terre_Island_Guadeloupe.html" target="_blank" rel="noopener">T3</a>.</li>
|
||||
</ul>
|
||||
|
|
@ -51,6 +51,7 @@
|
|||
<div class="col-md-12 col-lg-6">
|
||||
<div class="property-contact">
|
||||
<h4 class="title-agent">Formulaire de réservation</h4>
|
||||
<p style="text-align: justify;">Les champs marqués d'un * sont obligatoires.</p>
|
||||
<form class="form-a" method='post'>
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-1">
|
||||
|
|
|
|||
|
|
@ -1,13 +1,95 @@
|
|||
{% extends 'rental/base.html' %}
|
||||
{% load static %}
|
||||
{% extends 'rental/base.html' %} {% load static %} {%block content%}
|
||||
|
||||
<section class="intro-single">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-8">
|
||||
<div class="title-single-box">
|
||||
<h1 class="title-single">Découvrez la ville du Gosier</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 col-lg-4">
|
||||
<nav
|
||||
aria-label="breadcrumb"
|
||||
class="breadcrumb-box d-flex justify-content-lg-end"
|
||||
>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="{% url 'rental:index' %}">Accueil</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current="page">
|
||||
Services
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<h2>La ville du Gosier</h2>
|
||||
<p style="text-align: justify;">Vous avez accès aux <strong>plages de sable fin</strong> du bourg et de la Pointe de la Verdure. L’embarcadère pour le romantique <strong>Îlet du Gosier</strong> avec son <strong>phare</strong> est à deux pas.<br />La plage de <strong>la Datcha</strong>, éclairée toute la nuit invite à la <strong>baignade nocturne</strong>.<br />Plusieurs <strong>bars de plage</strong> proposent de la <strong>musique</strong> « live » et des <strong>plats savoureux</strong>. Le <strong>Casino du Gosier</strong> offre des tables et machines à sous, ainsi qu’un restaurant et un <strong>programme d’animations</strong>.</p>
|
||||
<p style="text-align: justify;"><strong>Idéalement situé</strong> les commerces, boulangeries avec bistrot-café le matin, la Poste, plusieurs banques, pharmacies, marché aux fruits et légumes (tous les vendredis dès 15h), hôtels, bars, restaurants créole et français, coiffeur, esthéticienne sont à deux pas.</p>
|
||||
<p style="text-align: justify;">La situation de notre établissement vous donne la possibilité, si vous le souhaitez, de passer un <strong>séjour sans véhicule</strong>.</p>
|
||||
<section class="contact">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="entry-content">
|
||||
<p style="text-align: justify;">
|
||||
Vous avez accès aux <strong>plages de sable fin</strong> du bourg et
|
||||
de la Pointe de la Verdure. L’embarcadère pour le romantique
|
||||
<strong>Îlet du Gosier</strong> avec son <strong>phare</strong> est
|
||||
à deux pas.<br />La plage de <strong>la Datcha</strong>, éclairée
|
||||
toute la nuit invite à la
|
||||
<strong>baignade nocturne</strong>.<br />Plusieurs
|
||||
<strong>bars de plage</strong> proposent de la
|
||||
<strong>musique</strong> « live » et des
|
||||
<strong>plats savoureux</strong>. Le
|
||||
<strong>Casino du Gosier</strong> offre des tables et machines à
|
||||
sous, ainsi qu’un restaurant et un
|
||||
<strong>programme d’animations</strong>.
|
||||
</p>
|
||||
<p style="text-align: justify;">
|
||||
<strong>Idéalement situé</strong> les commerces, boulangeries avec
|
||||
bistrot-café le matin, la Poste, plusieurs banques, pharmacies,
|
||||
marché aux fruits et légumes (tous les vendredis dès 15h), hôtels,
|
||||
bars, restaurants créole et français, coiffeur, esthéticienne sont à
|
||||
deux pas.
|
||||
</p>
|
||||
<p style="text-align: justify;">
|
||||
La situation de notre établissement vous donne la possibilité, si
|
||||
vous le souhaitez, de passer un
|
||||
<strong>séjour sans véhicule</strong>.
|
||||
</p>
|
||||
<h2>Aux alentours</h2>
|
||||
<p style="text-align: justify;">Le Gosier étant au milieu des 2 ailes de notre papillon, vous avez un <strong>large choix d’excursions</strong>, d'événements ludiques, sportifs et éducatifs.<br />Puisque certaines de ces activités nécessitent l’utilisation d’un véhicule, nous vous offrons la possibilité d’en louer un.<br />Toutefois, les <strong>arrêts de bus</strong> dans les deux directions sont situés au bout de la rue à <strong>moins de 2 minutes à pied</strong>.</p>
|
||||
<p style="text-align: justify;">Vos hôtes connaissent leur Île sur le bout des doigts. Ils se feront donc un plaisir de vous <strong>conseiller sur des sorties</strong> diurnes et nocturnes, des excursions, des randonnées, <strong>des musées</strong>, des plans "sports", les <strong>meilleures plages de l’Archipel</strong>, …</p>
|
||||
<p style="text-align: justify;">Pour plus de tranquillité, <strong>si vous le souhaitez</strong>, nous vous <strong>accueillerons à l’aéroport </strong>(20 €)<strong> ou au port maritime</strong> (15 €).</p>
|
||||
<p style="text-align: justify;">Nous parlons créole, français et anglais.</p>
|
||||
<p style="text-align: justify;">
|
||||
Le Gosier étant au milieu des 2 ailes de notre papillon, vous avez
|
||||
un
|
||||
<strong>large choix d’excursions</strong>, d'événements ludiques,
|
||||
sportifs et éducatifs.<br />Puisque certaines de ces activités
|
||||
nécessitent l’utilisation d’un véhicule, nous vous offrons la
|
||||
possibilité d’en louer un.<br />Toutefois, les
|
||||
<strong>arrêts de bus</strong> dans les deux directions sont situés
|
||||
au bout de la rue à <strong>moins de 2 minutes à pied</strong>.
|
||||
</p>
|
||||
<p style="text-align: justify;">
|
||||
Vos hôtes connaissent leur Île sur le bout des doigts. Ils se feront
|
||||
donc un plaisir de vous
|
||||
<strong>conseiller sur des sorties</strong> diurnes et nocturnes,
|
||||
des excursions, des randonnées, <strong>des musées</strong>, des
|
||||
plans "sports", les
|
||||
<strong>meilleures plages de l’Archipel</strong>, …
|
||||
</p>
|
||||
<p style="text-align: justify;">
|
||||
Pour plus de tranquillité, <strong>si vous le souhaitez</strong>,
|
||||
nous vous <strong>accueillerons à l’aéroport </strong>(20 €)<strong>
|
||||
ou au port maritime</strong
|
||||
>
|
||||
(15 €).
|
||||
</p>
|
||||
<p style="text-align: justify;">
|
||||
Nous parlons créole, français et anglais.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock%}
|
||||
|
|
|
|||
|
|
@ -171,6 +171,10 @@ class Partners(TemplateView):
|
|||
template_name = 'rental/partners.html'
|
||||
|
||||
|
||||
class Services(TemplateView):
|
||||
template_name = 'rental/service.html'
|
||||
|
||||
|
||||
def handler404(request, exception):
|
||||
return render(request, 'rental/404.html', status=404)
|
||||
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@
|
|||
"model": "rental.image",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"img": "img/villafleurie_t2_salon_1_wl81yXI.jpg",
|
||||
"img": "img/villafleurie_t2_salon_1.jpg",
|
||||
"alt": "villafleurie T2 salon"
|
||||
}
|
||||
},
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
"model": "rental.image",
|
||||
"pk": 3,
|
||||
"fields": {
|
||||
"img": "img/villafleurie_t2_sallle_de_bain.jpg",
|
||||
"img": "img/villafleurie_t2_salle_de_bain.jpg",
|
||||
"alt": "villafleurie T2 sallle de bain"
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
import dj_database_url
|
||||
# import dj_database_url
|
||||
import os
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
|
||||
|
||||
SECRET_KEY = os.environ.get('SECRET_KEY')
|
||||
SECRET_KEY = 'q00_4wqdc^n=7)p2lm)!gy&fms8md_b4#1aqysllvqq==2c9!$'
|
||||
|
||||
if os.environ.get('ENV') == 'PRODUCTION':
|
||||
DEBUG = False
|
||||
|
|
@ -119,7 +120,7 @@ AUTH_PASSWORD_VALIDATORS = [
|
|||
]
|
||||
|
||||
LANGUAGE_CODE = 'fr'
|
||||
TIME_ZONE = 'UTC'
|
||||
TIME_ZONE = 'America/Guadeloupe'
|
||||
USE_I18N = True
|
||||
USE_L10N = True
|
||||
USE_TZ = True
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ urlpatterns = [
|
|||
path('reservation/', views.reservation, name='reservation'),
|
||||
path('legal/', views.Legal.as_view(), name='legal'),
|
||||
path('partenaires/', views.Partners.as_view(), name='partners'),
|
||||
path('services/', views.Services.as_view(), name='services'),
|
||||
path('', include('rental.urls', namespace='rental')),
|
||||
]
|
||||
|
||||
|
|
|
|||