Services page done. Switched timezone

This commit is contained in:
Ruidy Nemausat 2019-12-15 09:26:35 +01:00
parent 03555b2f89
commit 3a33d1f34d
22 changed files with 128 additions and 36 deletions

View file

@ -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

View file

Before

Width:  |  Height:  |  Size: 525 KiB

After

Width:  |  Height:  |  Size: 525 KiB

View file

Before

Width:  |  Height:  |  Size: 275 KiB

After

Width:  |  Height:  |  Size: 275 KiB

View file

Before

Width:  |  Height:  |  Size: 767 KiB

After

Width:  |  Height:  |  Size: 767 KiB

View file

Before

Width:  |  Height:  |  Size: 272 KiB

After

Width:  |  Height:  |  Size: 272 KiB

View file

Before

Width:  |  Height:  |  Size: 538 KiB

After

Width:  |  Height:  |  Size: 538 KiB

View file

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 334 KiB

View file

Before

Width:  |  Height:  |  Size: 454 KiB

After

Width:  |  Height:  |  Size: 454 KiB

View file

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 4 MiB

View file

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

@ -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='',

View file

@ -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/

View file

@ -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) :

View file

@ -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>

View file

@ -27,9 +27,8 @@
</div>
</div>
</section>
<!--/ Intro Single End /-->
<!--/ Contact Star /-->
<section class="contact">
<div class="container">
<div class="row">

View file

@ -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">

View file

@ -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. Lembarcadè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 quun restaurant et un <strong>programme danimations</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 dexcursions</strong>, d'événements ludiques, sportifs et éducatifs.<br />Puisque certaines de ces activités nécessitent lutilisation dun véhicule, nous vous offrons la possibilité den 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 lArchipel</strong>, …</p>
<p style="text-align: justify;">Pour plus de tranquillité, <strong>si vous le souhaitez</strong>, nous vous <strong>accueillerons à laé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>
<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. Lembarcadè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 quun restaurant et un
<strong>programme danimations</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 dexcursions</strong>, d'événements ludiques,
sportifs et éducatifs.<br />Puisque certaines de ces activités
nécessitent lutilisation dun véhicule, nous vous offrons la
possibilité den 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 lArchipel</strong>, …
</p>
<p style="text-align: justify;">
Pour plus de tranquillité, <strong>si vous le souhaitez</strong>,
nous vous <strong>accueillerons à laé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%}

View file

@ -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)

View file

@ -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"
}
},

View file

@ -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

View file

@ -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')),
]