diff --git a/src/bar/__init__.py b/src/bar/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/bar/admin.py b/src/bar/admin.py new file mode 100644 index 00000000..337ee768 --- /dev/null +++ b/src/bar/admin.py @@ -0,0 +1,16 @@ +from django.contrib import admin + +from .models import ProductCategory, Product + + +@admin.register(ProductCategory) +class ProductCategoryAdmin(admin.ModelAdmin): + pass + + +@admin.register(Product) +class ProductAdmin(admin.ModelAdmin): + list_display = ['name', 'price', 'category', 'in_stock'] + list_editable = ['in_stock'] + + diff --git a/src/bar/apps.py b/src/bar/apps.py new file mode 100644 index 00000000..7a6c111b --- /dev/null +++ b/src/bar/apps.py @@ -0,0 +1,7 @@ + + +from django.apps import AppConfig + + +class BarConfig(AppConfig): + name = 'bar' diff --git a/src/bar/migrations/0001_initial.py b/src/bar/migrations/0001_initial.py new file mode 100644 index 00000000..3712a867 --- /dev/null +++ b/src/bar/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2017-08-25 23:28 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('camps', '0022_camp_colour'), + ] + + operations = [ + migrations.CreateModel( + name='Product', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('price', models.IntegerField()), + ('in_stock', models.BooleanField(default=True)), + ], + ), + migrations.CreateModel( + name='ProductCategory', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', models.DateTimeField(auto_now_add=True)), + ('updated', models.DateTimeField(auto_now=True)), + ('name', models.CharField(max_length=255)), + ('camp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='camps.Camp')), + ], + options={ + 'abstract': False, + }, + ), + migrations.AddField( + model_name='product', + name='category', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bar.ProductCategory'), + ), + ] diff --git a/src/bar/migrations/__init__.py b/src/bar/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/bar/models.py b/src/bar/models.py new file mode 100644 index 00000000..238b3520 --- /dev/null +++ b/src/bar/models.py @@ -0,0 +1,21 @@ +from django.db import models + +from utils.models import CampRelatedModel + + +class ProductCategory(CampRelatedModel): + name = models.CharField(max_length=255) + camp = models.ForeignKey('camps.Camp') + + def __str__(self): + return self.name + + +class Product(models.Model): + name = models.CharField(max_length=255) + price = models.IntegerField() + category = models.ForeignKey(ProductCategory, related_name="products") + in_stock = models.BooleanField(default=True) + + def __str__(self): + return self.name diff --git a/src/bar/templates/bar_menu.html b/src/bar/templates/bar_menu.html new file mode 100644 index 00000000..59e0040f --- /dev/null +++ b/src/bar/templates/bar_menu.html @@ -0,0 +1,54 @@ +{% load static from staticfiles %} +{% load bootstrap3 %} +{% load menubutton %} +{% static "" as baseurl %} + + + +
+ + + + +