diff --git a/django/didgeridoo/webshop/admin.py b/django/didgeridoo/webshop/admin.py index d33327f..df6a60f 100644 --- a/django/didgeridoo/webshop/admin.py +++ b/django/didgeridoo/webshop/admin.py @@ -1,19 +1,26 @@ from django.contrib import admin +from django.contrib.auth.admin import UserAdmin as BaseUserAdmin +from django.contrib.auth.models import User # Register your models here. -from .models import Article -from .models import Order -from .models import Person -from .models import City -from .models import Picture -from .models import OrderOfGoods -from .models import Category -from .models import Option -from .models import Settings +from .models import (Article, Order, Person, City, Picture, OrderOfGoods, + Category, Option, Settings) + +class PersonInline(admin.StackedInline): + model = Person + can_delete = False + verbose_name_plural = 'person' + + +class UserAdmin(BaseUserAdmin): + inlines = (PersonInline, ) + + +admin.site.unregister(User) +admin.site.register(User, UserAdmin) admin.site.register(Article) admin.site.register(Order) -admin.site.register(Person) admin.site.register(City) admin.site.register(Picture) admin.site.register(OrderOfGoods) diff --git a/django/didgeridoo/webshop/models.py b/django/didgeridoo/webshop/models.py index 56799c3..e8008ac 100644 --- a/django/didgeridoo/webshop/models.py +++ b/django/didgeridoo/webshop/models.py @@ -4,81 +4,100 @@ from django.contrib.auth.models import User # Create your models here. class Category(models.Model): name = models.CharField(max_length=200, unique=True) - article_id = models.ForeignKey('self') + article = models.ForeignKey('self') + def __str__(self): + return self.name class Option(models.Model): name = models.CharField(max_length=200, unique=True) value = models.IntegerField(default=5) + def __str__(self): + return self.name class Settings(models.Model): - option_id = models.ForeignKey(Option, on_delete=models.CASCADE) + option = models.ForeignKey(Option, on_delete=models.CASCADE) enabled = models.BooleanField(default=False) -class DeliveryStatus(models.Model): - name = models.CharField(max_length=50, unique=True) - - class ArticleStatus(models.Model): name = models.CharField(max_length=50, unique=True) + def __str__(self): + return self.name class ExchangeRate(models.Model): name = models.CharField(max_length=200, unique=True) exchange_rate_to_chf = models.FloatField(max_length=5) + def __str__(self): + return self.name class Article(models.Model): name = models.CharField(max_length=200) description = models.CharField(max_length=2000) stock = models.FloatField(max_length=5) - status_id = models.ForeignKey(ArticleStatus, on_delete=models.CASCADE) + status = models.ForeignKey(ArticleStatus) price_in_chf = models.DecimalField(max_digits=19, decimal_places=2) - - -class OrderOfGoods(models.Model): - article_id = models.ForeignKey(Article, on_delete=models.CASCADE) - amount = models.FloatField(max_length=5) - delivery_date = models.DateField() - order_date = models.DateTimeField(auto_now_add=True) - - -class Picture(models.Model): - name = models.CharField(max_length=200, unique=True) - article_id = models.ForeignKey(Article, on_delete=models.CASCADE) + def __str__(self): + return self.name class OrderStatus(models.Model): name = models.CharField(max_length=200, unique=True) + def __str__(self): + return self.name + + +class OrderOfGoods(models.Model): + article = models.ForeignKey(Article) + amount = models.FloatField(max_length=5) + delivery_date = models.DateField() + order_date = models.DateTimeField(auto_now_add=True) + order_status = models.ForeignKey(OrderStatus) + + +class Picture(models.Model): + name = models.CharField(max_length=200, unique=True) + article = models.ForeignKey(Article, on_delete=models.CASCADE) + def __str__(self): + return self.name class Order(models.Model): - user_id = models.ForeignKey(User, on_delete=models.CASCADE) - article_id = models.ManyToManyField(Article) - order_status_id = models.ForeignKey(OrderStatus) + user = models.ForeignKey(User, on_delete=models.CASCADE) + article = models.ManyToManyField(Article) + order_status = models.ForeignKey(OrderStatus) class ShoppingCart(models.Model): name = models.CharField(max_length=200) - user_id = models.ForeignKey(User, on_delete=models.CASCADE) - article_id = models.ManyToManyField(Article) + user = models.ForeignKey(User, on_delete=models.CASCADE) + article = models.ManyToManyField(Article) + def __str__(self): + return self.name class City(models.Model): name = models.CharField(max_length=200) - plz = models.PositiveSmallIntegerField() + zip_code = models.PositiveSmallIntegerField() + def __str__(self): + return self.name -class Salution(models.Model): +class Salutation(models.Model): name = models.CharField(max_length=20) class Person(models.Model): first_name = models.CharField(max_length=200) last_name = models.CharField(max_length=200) - salution_id= models.ForeignKey(Salution) - city_id= models.ForeignKey(City) + salutation = models.ForeignKey(Salutation) + city = models.ForeignKey(City) street_name = models.CharField(max_length=200) street_number = models.CharField(max_length=4) + user = models.OneToOneField(User, on_delete=models.CASCADE) + def __str__(self): + return self.last_name +