web_AI-5/django/didgeridoo/webshop/models.py

116 lines
2.9 KiB
Python
Raw Normal View History

2017-11-18 09:18:06 +01:00
#!/usr/bin/python3
2017-11-12 21:35:59 +01:00
from django.db import models
2017-11-13 22:55:20 +01:00
from django.contrib.auth.models import User
2017-11-12 21:35:59 +01:00
2017-11-18 09:18:06 +01:00
2017-11-12 21:35:59 +01:00
# Create your models here.
2017-11-13 22:55:20 +01:00
class Category(models.Model):
name = models.CharField(max_length=200, unique=True)
2017-11-14 21:26:44 +01:00
article = models.ForeignKey('self')
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class Option(models.Model):
name = models.CharField(max_length=200, unique=True)
value = models.IntegerField(default=5)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class Settings(models.Model):
2017-11-14 21:26:44 +01:00
option = models.ForeignKey(Option, on_delete=models.CASCADE)
2017-11-13 22:55:20 +01:00
enabled = models.BooleanField(default=False)
class ArticleStatus(models.Model):
name = models.CharField(max_length=50, unique=True)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class ExchangeRate(models.Model):
name = models.CharField(max_length=200, unique=True)
exchange_rate_to_chf = models.FloatField(max_length=5)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class Article(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
stock = models.FloatField(max_length=5)
2017-11-14 21:26:44 +01:00
status = models.ForeignKey(ArticleStatus)
2017-11-13 22:55:20 +01:00
price_in_chf = models.DecimalField(max_digits=19, decimal_places=2)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
class OrderStatus(models.Model):
name = models.CharField(max_length=200, unique=True)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class OrderOfGoods(models.Model):
2017-11-14 21:26:44 +01:00
article = models.ForeignKey(Article)
2017-11-13 22:55:20 +01:00
amount = models.FloatField(max_length=5)
delivery_date = models.DateField()
order_date = models.DateTimeField(auto_now_add=True)
2017-11-14 21:26:44 +01:00
order_status = models.ForeignKey(OrderStatus)
2017-11-13 22:55:20 +01:00
class Picture(models.Model):
name = models.CharField(max_length=200, unique=True)
2017-11-14 21:26:44 +01:00
article = models.ForeignKey(Article, on_delete=models.CASCADE)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class Order(models.Model):
2017-11-14 21:26:44 +01:00
user = models.ForeignKey(User, on_delete=models.CASCADE)
article = models.ManyToManyField(Article)
order_status = models.ForeignKey(OrderStatus)
2017-11-13 22:55:20 +01:00
class ShoppingCart(models.Model):
name = models.CharField(max_length=200)
2017-11-14 21:26:44 +01:00
user = models.ForeignKey(User, on_delete=models.CASCADE)
article = models.ManyToManyField(Article)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.name
2017-11-13 22:55:20 +01:00
class City(models.Model):
2017-11-18 09:18:06 +01:00
name = models.CharField(max_length=200)
zip_code = models.PositiveSmallIntegerField()
def __str__(self):
2017-11-14 21:26:44 +01:00
return self.name
2017-11-13 22:55:20 +01:00
2017-11-14 21:26:44 +01:00
class Salutation(models.Model):
2017-11-13 22:55:20 +01:00
name = models.CharField(max_length=20)
class Person(models.Model):
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
2017-11-14 21:26:44 +01:00
salutation = models.ForeignKey(Salutation)
city = models.ForeignKey(City)
2017-11-13 22:55:20 +01:00
street_name = models.CharField(max_length=200)
street_number = models.CharField(max_length=4)
2017-11-14 21:26:44 +01:00
user = models.OneToOneField(User, on_delete=models.CASCADE)
2017-11-18 09:18:06 +01:00
2017-11-14 21:26:44 +01:00
def __str__(self):
return self.last_name