mirror of
https://github.com/rjNemo/villafleurie
synced 2026-06-06 02:16:47 +00:00
71 lines
2.2 KiB
Python
71 lines
2.2 KiB
Python
from django.db import models
|
|
from phonenumber_field.modelfields import PhoneNumberField
|
|
|
|
|
|
class Image(models.Model):
|
|
def __str__(self):
|
|
return self.alt
|
|
|
|
img=models.ImageField(upload_to='img/', null=True,blank=True)
|
|
alt=models.CharField(max_length=100)
|
|
|
|
|
|
class Place(models.Model):
|
|
class Meta:
|
|
verbose_name = "Appartement"
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
name=models.CharField(max_length=10, unique=True)
|
|
description=models.TextField(blank=True)
|
|
info=models.TextField(blank=True)
|
|
subname=models.CharField(max_length=100, blank=True)
|
|
tagline=models.CharField(max_length=100, blank=True)
|
|
price=models.DecimalField(max_digits=6, decimal_places=2, null=True)
|
|
surface=models.IntegerField(null=True,blank=True)
|
|
beds=models.IntegerField(null=True,blank=True)
|
|
max_occupation=models.IntegerField(null=True,blank=True)
|
|
thumbnail=models.ForeignKey(Image, on_delete=models.CASCADE, blank=True, null=True)
|
|
images=models.ManyToManyField(Image, related_name = "places", blank=True)
|
|
|
|
|
|
class Guest(models.Model):
|
|
class Meta:
|
|
verbose_name = "Voyageur"
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
name=models.CharField(max_length=100)
|
|
email=models.EmailField(unique=True)
|
|
phone=PhoneNumberField(blank=True)
|
|
|
|
|
|
class Reservation(models.Model):
|
|
class Meta:
|
|
verbose_name = 'Réservation'
|
|
|
|
def __str__(self):
|
|
return "Réservation du {} par {}".format(self.place, self.guest)
|
|
|
|
place=models.ForeignKey(Place,on_delete=models.CASCADE)
|
|
guest=models.ForeignKey(Guest,on_delete=models.CASCADE)
|
|
message=models.TextField(blank=True)
|
|
start=models.DateField()
|
|
end=models.DateField()
|
|
|
|
|
|
class Testimonial(models.Model):
|
|
class Meta:
|
|
verbose_name="Témoignage"
|
|
|
|
def __str__(self):
|
|
return self.author
|
|
|
|
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)
|