summaryrefslogtreecommitdiff
path: root/inventory
diff options
context:
space:
mode:
authorshivam kohli <kohlishivam5522@gmail.com>2018-06-02 17:23:02 +0530
committershivam kohli <kohlishivam5522@gmail.com>2018-06-02 17:23:02 +0530
commitabafd12b235e4c10c410e0bf3a981d969ab3fd94 (patch)
tree0153a776ed6080e78c3636104081563e4f037990 /inventory
parent8fd1c575aa146f4c69e458dbdde4df08d9605553 (diff)
downloadcodeless-abafd12b235e4c10c410e0bf3a981d969ab3fd94.tar.gz
codeless-abafd12b235e4c10c410e0bf3a981d969ab3fd94.tar.bz2
codeless-abafd12b235e4c10c410e0bf3a981d969ab3fd94.zip
overview page and add product functinality
Diffstat (limited to 'inventory')
-rw-r--r--inventory/migrations/0001_initial.py61
-rw-r--r--inventory/models.py43
-rw-r--r--inventory/views.py66
3 files changed, 117 insertions, 53 deletions
diff --git a/inventory/migrations/0001_initial.py b/inventory/migrations/0001_initial.py
index cca4181..88a7471 100644
--- a/inventory/migrations/0001_initial.py
+++ b/inventory/migrations/0001_initial.py
@@ -15,63 +15,68 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='Merchant',
fields=[
- ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('address', models.TextField()),
- ('pay_url', models.URLField(max_length=250, default='NULL')),
+ ('pay_url', models.URLField(default=b'NULL', max_length=250)),
('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='Order',
fields=[
- ('order_id', models.AutoField(primary_key=True, serialize=False)),
- ('description', models.CharField(max_length=300, blank=True, null=True)),
+ ('order_id', models.AutoField(serialize=False, primary_key=True)),
+ ('description', models.CharField(max_length=300, null=True, blank=True)),
('order_date', models.DateTimeField(auto_now=True)),
- ('address', models.CharField(max_length=250, blank=True, null=True)),
- ('fulfillment_url', models.URLField(default='NULL')),
- ('merchant_id', models.ForeignKey(to='inventory.Merchant')),
+ ('address', models.CharField(max_length=250, null=True, blank=True)),
+ ('fulfillment_url', models.URLField(default=b'NULL')),
],
),
migrations.CreateModel(
name='PaymentButton',
fields=[
- ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
- ('text', models.CharField(max_length=100, blank=True, null=True)),
- ('font_size', models.CharField(max_length=50, blank=True, null=True)),
- ('color', models.CharField(max_length=50, blank=True, null=True)),
- ('background_color', models.CharField(max_length=50, blank=True, null=True)),
- ('border_radius', models.CharField(max_length=50, blank=True, null=True)),
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('text', models.CharField(max_length=100, null=True, blank=True)),
+ ('font_size', models.CharField(max_length=50, null=True, blank=True)),
+ ('color', models.CharField(max_length=50, null=True, blank=True)),
+ ('background_color', models.CharField(max_length=50, null=True, blank=True)),
+ ('border_radius', models.CharField(max_length=50, null=True, blank=True)),
],
),
migrations.CreateModel(
name='Product',
fields=[
- ('product_id', models.AutoField(primary_key=True, serialize=False)),
- ('name', models.CharField(max_length=50, blank=True, null=True)),
- ('description', models.CharField(max_length=300, blank=True, null=True)),
- ('price', models.IntegerField(blank=True, null=True)),
+ ('product_id', models.AutoField(serialize=False, primary_key=True)),
+ ('name', models.CharField(max_length=50, null=True, blank=True)),
+ ('description', models.CharField(max_length=300, null=True, blank=True)),
+ ('price', models.CharField(max_length=50, null=True, blank=True)),
('delivery_date', models.DateTimeField(auto_now=True)),
- ('starting_inventory', models.IntegerField(blank=True, null=True)),
- ('minimuma_required', models.IntegerField(blank=True, null=True)),
- ('inventory_on_hand', models.IntegerField(blank=True, null=True)),
- ('inventory_recieved', models.IntegerField(blank=True, null=True)),
- ('inventory_shipped', models.IntegerField(blank=True, null=True)),
+ ('starting_inventory', models.IntegerField(null=True, blank=True)),
+ ('minimum_required', models.IntegerField(null=True, blank=True)),
+ ('inventory_on_hand', models.IntegerField(null=True, blank=True)),
+ ('inventory_recieved', models.IntegerField(null=True, blank=True)),
+ ('inventory_shipped', models.IntegerField(null=True, blank=True)),
+ ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, null=True)),
],
),
migrations.CreateModel(
name='Purchase',
fields=[
- ('purchase_id', models.AutoField(primary_key=True, serialize=False)),
- ('description', models.CharField(max_length=300, blank=True, null=True)),
+ ('purchase_id', models.AutoField(serialize=False, primary_key=True)),
+ ('description', models.CharField(max_length=300, null=True, blank=True)),
('purchase_date', models.DateTimeField(auto_now=True)),
- ('product_recieved', models.IntegerField(blank=True, null=True)),
- ('supplier', models.CharField(max_length=50, blank=True, null=True)),
- ('product_id', models.ManyToManyField(null=True, to='inventory.Product')),
+ ('product_recieved', models.IntegerField(null=True, blank=True)),
+ ('supplier', models.CharField(max_length=50, null=True, blank=True)),
+ ('product_id', models.ManyToManyField(to='inventory.Product', null=True)),
],
),
migrations.AddField(
model_name='order',
name='product_id',
- field=models.ManyToManyField(null=True, to='inventory.Product'),
+ field=models.ManyToManyField(to='inventory.Product', null=True),
+ ),
+ migrations.AddField(
+ model_name='order',
+ name='user',
+ field=models.ForeignKey(to=settings.AUTH_USER_MODEL),
),
]
diff --git a/inventory/models.py b/inventory/models.py
index 4de9f1c..21ba7fa 100644
--- a/inventory/models.py
+++ b/inventory/models.py
@@ -7,6 +7,18 @@ from django.db.models.signals import post_save
from django.dispatch import receiver
+class Merchant(models.Model):
+ """ Extending the default Django User Model.
+ This will hold a One-To-One relationship with the existing User Model.
+ """
+ user = models.OneToOneField(User, on_delete=models.CASCADE)
+ address = models.TextField()
+ pay_url = models.URLField(max_length=250, default='NULL')
+
+ def __str__(self):
+ return self.user.username
+
+
class Product(models.Model):
""" The details of the product is described in this table.
This table tracks the inventory of the product.
@@ -14,31 +26,20 @@ class Product(models.Model):
product_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50, blank=True, null=True)
description = models.CharField(max_length=300, blank=True, null=True)
- price = models.IntegerField(blank=True, null=True)
+ price = models.CharField(max_length=50, blank=True, null=True)
delivery_date = models.DateTimeField(auto_now=True)
starting_inventory = models.IntegerField(blank=True, null=True)
- minimuma_required = models.IntegerField(blank=True, null=True)
+ minimum_required = models.IntegerField(blank=True, null=True)
# inventory_on_hand is updated by purchase and outgoing orders.
inventory_on_hand = models.IntegerField(blank=True, null=True)
inventory_recieved = models.IntegerField(blank=True, null=True)
inventory_shipped = models.IntegerField(blank=True, null=True)
+ user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.name
-class Merchant(models.Model):
- """ Extending the default Django User Model.
- This will hold a One-To-One relationship with the existing User Model.
- """
- user = models.OneToOneField(User, on_delete=models.CASCADE)
- address = models.TextField()
- pay_url = models.URLField(max_length=250, default='NULL')
-
- def __str__(self):
- return self.user.username
-
-
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
""" Hooking the create_user_profile method to
@@ -48,12 +49,12 @@ def create_user_profile(sender, instance, created, **kwargs):
Merchant.objects.create(user=instance)
-@receiver(post_save, sender=User)
-def save_user_profile(sender, instance, **kwargs):
- """ Hooking the save_user_profile method to
- the User model, whenever a save event occurs
- """
- instance.Merchant.save()
+# @receiver(post_save, sender=User)
+# def save_user_profile(sender, instance, **kwargs):
+# """ Hooking the save_user_profile method to
+# the User model, whenever a save event occurs
+# """
+# instance.Merchant.save()
class Order(models.Model):
@@ -65,7 +66,7 @@ class Order(models.Model):
description = models.CharField(max_length=300, blank=True, null=True)
order_date = models.DateTimeField(auto_now=True)
address = models.CharField(max_length=250, blank=True, null=True)
- merchant_id = models.ForeignKey(Merchant, on_delete=models.CASCADE)
+ user = models.ForeignKey(User, on_delete=models.CASCADE)
fulfillment_url = models.URLField(max_length=200, default='NULL')
def __str__(self):
diff --git a/inventory/views.py b/inventory/views.py
index 80be28e..157bf35 100644
--- a/inventory/views.py
+++ b/inventory/views.py
@@ -2,7 +2,8 @@
# -*- coding: utf-8 -*-
from inventory.forms import SignUpForm, MerchantDetailForm, LoginForm
-from inventory.models import Merchant
+from inventory.models import Merchant, Product
+from django.contrib.auth.models import User
from django.contrib.auth import authenticate
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout
@@ -11,12 +12,69 @@ from django.contrib.auth.decorators import login_required
from django.shortcuts import render, redirect
from django.core.urlresolvers import resolve
-# Create your views here.
-
@login_required
def home(request):
- return render(request, 'inventory/home.html')
+ user_instance = User.objects.get(username=request.user.username)
+ product = Product.objects.filter(user=user_instance)
+ context_dict = {}
+ array = []
+ for i in product:
+ data = {}
+ data['name'] = i.name
+ data['description'] = i.description
+ data['price'] = i.price
+ data['inventory_on_hand'] = i.starting_inventory
+ data['url'] = '/home/product/' + str(i.product_id)
+ array.append(data)
+ context_dict['data'] = array
+ return render(request, 'inventory/home.html', context_dict)
+
+
+@login_required
+def add_product(request):
+ name = request.POST.get('name')
+ product_instance = Product.objects.get_or_create(name=name)[0]
+ description = request.POST.get('description')
+ product_instance.description = description
+ price = request.POST.get('price')
+ product_instance.price = price
+ starting_inventory = request.POST.get('starting_inventory')
+ product_instance.starting_inventory = starting_inventory
+ minimum_required = request.POST.get('minimum_required')
+ product_instance.minimum_required = minimum_required
+ user_instance = User.objects.get(username=request.user.username)
+ product_instance.user = user_instance
+ product_instance.save()
+ product = Product.objects.filter(user=user_instance)
+ context_dict = {}
+ array = []
+ for i in product:
+ data = {}
+ data['name'] = i.name
+ data['description'] = i.description
+ data['price'] = i.price
+ data['inventory_on_hand'] = i.starting_inventory
+ data['url'] = '/home/product/' + str(i.product_id)
+ array.append(data)
+ context_dict['data'] = array
+ return render(request, 'inventory/home.html', context_dict)
+
+
+@login_required
+def product(request, uid):
+ product_instance = Product.objects.get_or_create(product_id=uid)[0]
+ context_dict = {}
+ context_dict['name'] = product_instance.name
+ context_dict['description'] = product_instance.description
+ context_dict['price'] = product_instance.price
+ context_dict['inventory_on_hand'] = product_instance.starting_inventory
+ return render(request, 'inventory/product.html', context_dict)
+
+
+@login_required
+def new_product(request):
+ return render(request, 'inventory/new_product.html')
def signup(request):