diff options
author | shivam kohli <kohlishivam5522@gmail.com> | 2018-06-02 17:23:02 +0530 |
---|---|---|
committer | shivam kohli <kohlishivam5522@gmail.com> | 2018-06-02 17:23:02 +0530 |
commit | abafd12b235e4c10c410e0bf3a981d969ab3fd94 (patch) | |
tree | 0153a776ed6080e78c3636104081563e4f037990 /inventory | |
parent | 8fd1c575aa146f4c69e458dbdde4df08d9605553 (diff) | |
download | codeless-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.py | 61 | ||||
-rw-r--r-- | inventory/models.py | 43 | ||||
-rw-r--r-- | inventory/views.py | 66 |
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): |