inital commit

This commit is contained in:
Thu Trang Pham
2020-10-31 14:24:45 -07:00
commit 220e9d8b41
24 changed files with 513 additions and 0 deletions
View File
+23
View File
@@ -0,0 +1,23 @@
from django.contrib import admin
from admin_confirm.admin import AdminConfirmMixin
from .models import Item, Inventory, Shop
class ItemAdmin(AdminConfirmMixin, admin.ModelAdmin):
list_display = ('name', 'price', 'currency')
change_needs_confirmation = True
class InventoryAdmin(admin.ModelAdmin):
list_display = ('shop', 'item', 'quantity')
class ShopAdmin(admin.ModelAdmin):
pass
admin.site.register(Item, ItemAdmin)
admin.site.register(Inventory, InventoryAdmin)
admin.site.register(Shop, ShopAdmin)
+5
View File
@@ -0,0 +1,5 @@
from django.apps import AppConfig
class MarketConfig(AppConfig):
name = 'market'
+32
View File
@@ -0,0 +1,32 @@
# Generated by Django 3.0.10 on 2020-10-31 20:41
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Item',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=120)),
('price', models.DecimalField(decimal_places=2, max_digits=5)),
('currency', models.CharField(choices=[('CAD', 'CAD'), ('USD', 'USD')], max_length=3)),
],
),
migrations.CreateModel(
name='Stock',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('quantity', models.PositiveIntegerField()),
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='all_stock', to='market.Item')),
],
),
]
@@ -0,0 +1,44 @@
# Generated by Django 3.0.10 on 2020-10-31 20:57
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('market', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Inventory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('quantity', models.PositiveIntegerField()),
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='market.Item')),
],
options={
'ordering': ['shop', 'item__name'],
},
),
migrations.CreateModel(
name='Shop',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=120)),
],
),
migrations.DeleteModel(
name='Stock',
),
migrations.AddField(
model_name='inventory',
name='shop',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='inventory', to='market.Shop'),
),
migrations.AlterUniqueTogether(
name='inventory',
unique_together={('shop', 'item')},
),
]
View File
+31
View File
@@ -0,0 +1,31 @@
from django.db import models
class Item(models.Model):
VALID_CURRENCIES = (
('CAD', 'CAD'),
('USD', 'USD'),
)
name = models.CharField(max_length=120)
price = models.DecimalField(max_digits=5, decimal_places=2)
currency = models.CharField(max_length=3, choices=VALID_CURRENCIES)
def __str__(self):
return self.name
class Shop(models.Model):
name = models.CharField(max_length=120)
def __str__(self):
return self.name
class Inventory(models.Model):
class Meta:
unique_together = ['shop', 'item']
ordering = ['shop', 'item__name']
shop = models.ForeignKey(to=Shop, on_delete=models.CASCADE, related_name='inventory')
item = models.ForeignKey(to=Item, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField()
+3
View File
@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.
+3
View File
@@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.