villafleurie/rental/models.py

88 lines
2.8 KiB
Python

from django.db import models
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)
calendar = models.CharField(max_length=350, blank=True, null=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=False)
phone = models.CharField(max_length=30, 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()
price = models.DecimalField(max_digits=6, decimal_places=2, null=True)
class Testimonial(models.Model):
class Meta:
verbose_name = "Témoignage"
def __str__(self):
return f"Témoignage de {self.author}"
author = models.CharField(max_length=200)
text = models.TextField(max_length=1000)
picture = models.ImageField(
max_length=200, upload_to='img/', null=True, blank=True)
link = models.URLField(max_length=200, 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)
class Contact(models.Model):
def __str__(self):
return f"Message de {self.name}, le {self.date}"
name = models.CharField(max_length=50)
email = models.EmailField(max_length=50)
subject = models.EmailField(max_length=50)
message = models.TextField(max_length=50)
date = models.DateTimeField(auto_now_add=True)