media img

This commit is contained in:
Ruidy Nemausat 2019-11-07 23:27:48 +01:00
parent 891101efdc
commit 7dead9d040
10 changed files with 162 additions and 12 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View file

@ -62,7 +62,7 @@ Le visiteur doit pouvoir :
## TO DO
* Formatter la page de remerciement (expliquer la suite)
* designer la page d'accueil
* remplir les détails des logements et ajouter les photos dynamiquement
* remplir les détails des logements et ajouter les photos
* Les photos de la page à propos
* Page service : navette + location
* écrire les mentions légales
@ -71,4 +71,4 @@ Le visiteur doit pouvoir :
* changer la couleur des liens hypertextes
* changer l'adresse de l'admin
* ajouter un diaporama en bas de page ?
* ajouter les témoignages
* ajouter les témoignages depuis Booking, AirBnb, ajouter le lien

BIN
media/img/social_media.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View file

@ -1,6 +1,6 @@
from django.db import models
from phonenumber_field.modelfields import PhoneNumberField
from villafleurie import settings
class Place(models.Model):
class Meta:
@ -10,7 +10,7 @@ class Place(models.Model):
return self.name
name=models.CharField(max_length=10, unique=True)
pictures=models.ImageField(upload_to="uploads/",null=True,blank=True)
pictures=models.ImageField(upload_to="img/",null=True,blank=True)
description=models.TextField(blank=True)
info=models.TextField(blank=True)
subname=models.CharField(max_length=100, blank=True)
@ -50,8 +50,11 @@ class Testimonial(models.Model):
verbose_name="Témoignage"
def __str__(self):
return self.title
return self.author
title=models.CharField(max_length=100)
reservation=models.OneToOneField(Reservation,on_delete=models.CASCADE)
author=models.CharField(max_length=100)
text=models.TextField()
picture=models.ImageField(upload_to='img/',null=True,blank=True)
link=models.URLField(null=True,blank=True)
guest=models.OneToOneField(Guest,on_delete=models.CASCADE,blank=True,null=True)
reservation=models.OneToOneField(Reservation,on_delete=models.CASCADE,blank=True,null=True)

View file

@ -33,4 +33,90 @@
</div>
</div>
<section class="section-services section-t8">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="title-wrap d-flex justify-content-between">
<div class="title-box">
<h2 class="title-a">Tout pour vous sentir comme chez vous</h2>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="card-box-c foo">
<div class="card-header-c d-flex">
<div class="card-box-ico">
<span class="fa fa-home"></span>
</div>
<div class="card-title-c align-self-center">
<h2 class="title-c">Gîte</h2>
</div>
</div>
<div class="card-body-c">
<p class="content-c">
Des superbes gîtes de vacances, tout équipés. Passer des vacances inoubliables,
sentez vous comme chez vous
</p>
</div>
<div class="card-footer-c">
<a href="#" class="link-c link-icon">En savoir plus
<span class="ion-ios-arrow-forward"></span>
</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card-box-c foo">
<div class="card-header-c d-flex">
<div class="card-box-ico">
<span class="fa fa-map"</span>
</div>
<div class="card-title-c align-self-center">
<h2 class="title-c">Transport</h2>
</div>
</div>
<div class="card-body-c">
<p class="content-c">
Votre séjour débute de la meilleure des façons.
Nous organisons une navette entre l'aéroport, la gare maritime, le port de croisière et VillaFleurie
</p>
</div>
<div class="card-footer-c">
<a href="#" class="link-c link-icon">En savoir plus
<span class="ion-ios-arrow-forward"></span>
</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card-box-c foo">
<div class="card-header-c d-flex">
<div class="card-box-ico">
<span class="fa fa-car"></span>
</div>
<div class="card-title-c align-self-center">
<h2 class="title-c">Voiture</h2>
</div>
</div>
<div class="card-body-c">
<p class="content-c">
La plage est à 10 minutes à pied … pour le reste nous proposons un véhicule de location au tarif maison
</p>
</div>
<div class="card-footer-c">
<a href="#" class="link-c link-icon">En savoir plus
<span class="ion-ios-arrow-forward"></span>
</a>
</div>
</div>
</div>
</div>
</div>
</section>
{% include 'rental/temoignage.html' %}
{% endblock %}

View file

@ -0,0 +1,43 @@
<section class="section-testimonials section-t8 nav-arrow-a">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="title-wrap d-flex justify-content-between">
<div class="title-box">
<h2 class="title-a">Témoignages</h2>
</div>
</div>
</div>
</div>
<div id="testimonial-carousel" class="owl-carousel owl-arrow">
{% for temoignage in temoignages %}
<div class="carousel-item-a">
<div class="testimonials-box">
<div class="row">
<div class="col-sm-12 col-md-6">
<div class="testimonial-img">
<img src="{{ temoignage.picture.url }}" alt="" class="img-fluid">
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="testimonial-ico">
<span class="ion-ios-quote"></span>
</div>
<div class="testimonials-content">
<p class="testimonial-text">
{{ temoignage.text }}
</p>
</div>
<div class="testimonial-author-box">
<img src="{{ temoignage.picture.url }}" alt="" class="testimonial-avatar">
<a href="{{ temoignage.link }}"><h5 class="testimonial-author">{{ temoignage.author }}</h5>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</section>

View file

@ -1,12 +1,18 @@
from django.urls import path
from . import views
from villafleurie import settings
from .models import Testimonial, Reservation, Guest, Place
from django.contrib.staticfiles.urls import static, staticfiles_urlpatterns
app_name = 'rental'
urlpatterns = [
path('', views.Accueil.as_view(), name='index'),
# path('', views.Accueil.as_view(), name='index'),
path('', views.index, name='index'),
path('hebergements/', views.ListeLocation.as_view(), name='list_place'),
# path('<place_name>/', views.Location.as_view(), name='detail_place'),
path('<place_name>/', views.location, name='detail_place'),
]
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View file

@ -7,10 +7,19 @@ from.forms import ReservationForm
from django.db import IntegrityError
class Accueil(ListView):
model = Place
template_name = 'rental/index.html'
context_object_name = 'places'
# class Accueil(ListView):
# model = Place
# template_name = 'rental/index.html'
# context_object_name = 'places'
def index(request):
places = Place.objects.all()
temoignages = Testimonial.objects.all()
context = {
'places' : places,
'temoignages' : temoignages
}
return render(request, 'rental/index.html', context)
class ListeLocation(ListView):

View file

@ -88,3 +88,6 @@ USE_TZ = True
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "rental", "static", "rental"),]
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'