| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- #from django.shortcuts import render
- from django.shortcuts import render, redirect
- # Create your views here.
- from django.contrib.auth import login, authenticate
- from django.contrib.auth.forms import UserCreationForm
- from django.urls import reverse
- from django.contrib.auth.decorators import login_required
- from fruit.models import Store, Product, Photo, ProductSKU
- from .forms import StoreForm, ProductForm, PhotoFormSet, InlinePhotoFormset, ProductSKUForm
- from django.contrib import messages
- def index(request):
- return render(request, 'fruit/index.html')
- @login_required
- def mystore(request):
- stores = request.user.store_created.all().order_by("-created_at")
- products = stores[0].product_set.all().order_by("-created_at")
- if request.method == "POST":
- if 'createStore' in request.POST:
- print("create store")
- name = request.POST.get('name', None)
- store = Store()
- store.name = name
- store.created_by = request.user
- store.save()
- if 'updateStore' in request.POST:
- print("update store")
- storeForm = StoreForm(request.POST, instance=stores[0])
- if storeForm.is_valid():
- storeForm.save()
- return redirect("fruit:mystore")
- #print("Create Store")
- else:
- storeForm = StoreForm(instance=stores[0])
- #print(dir(request.user))
- return render(request, 'fruit/mystore_index.html', {'stores': stores, 'storeForm': storeForm, 'products': products, 'mystore': True})
- @login_required
- def product_index(request):
- stores = request.user.store_created.all().order_by("-created_at")
- products = stores[0].product_set.all().order_by("-created_at")
- return render(request, 'fruit/product_index.html', {'products': products, 'product': True})
- @login_required
- def create_product(request):
- stores = request.user.store_created.all().order_by("-created_at")
- form = ProductForm()
- form2 = InlinePhotoFormset()
- if request.method == "POST":
- form = ProductForm(request.POST)
- form2 = InlinePhotoFormset(request.POST, request.FILES)
- if form.is_valid() and form2.is_valid():
- instance1 = form.save(commit=False)
- instance1.created_by = request.user
- instance1.store = stores[0]
- instance1.save()
- instances = form2.save(commit=False)
- print(instances)
- for s in instances:
- s.product = instance1
- s.created_by = request.user
- s.save()
- messages.success(request, "Product Save")
- else:
- if form.errors:
- messages.error(request, form.errors)
- if form2.errors:
- messages.error(request, form2.errors)
- print("Invalid ")
- return redirect("fruit:product_edit", pk=int(instance1.id))
- return render(request, 'fruit/product_form.html', {'product': True, 'form': form, 'form2': form2 })
- @login_required
- def create_sku(request, pk):
- p = Product.objects.get(pk=pk)
- form = ProductSKUForm(initial={'product':p, 'created_by': request.user})
- if request.method == "POST":
- form = ProductSKUForm(request.POST)
- if form.is_valid():
- i = form.save()
- messages.success(request, "Product Save")
- return redirect("fruit:edit_sku", pk=i.pk)
- else:
- message.error(request, "SKU created failed")
- return redirect("fruit:create_sku", pk=int(pk))
- return render(request, 'fruit/sku_form.html', {'form': form})
- @login_required
- def edit_sku(request, pk):
- p = ProductSKU.objects.get(pk=pk)
- form = ProductSKUForm(instance=p)
- if request.method == "POST":
- form = ProductSKUForm(request.POST)
- if form.is_valid():
- i = form.save()
- messages.success(request, "Product Save")
- return redirect("fruit:edit_sku", pk=i.pk)
- else:
- message.error(request, "SKU created failed")
- return redirect("fruit:create_sku", pk=int(pk))
- return render(request, 'fruit/sku_form.html', {'form': form})
- @login_required
- def product_edit(request, pk):
- stores = request.user.store_created.all().order_by("-created_at")
- product = Product.objects.get(pk=pk)
- form = ProductForm(instance = product)
- form2 = InlinePhotoFormset(instance = product)
- if request.method == "POST":
- form = ProductForm(request.POST)
- form2 = InlinePhotoFormset(request.POST, request.FILES, instance = product)
- if form.is_valid() and form2.is_valid():
- instance1 = form.save(commit=False)
- instance1.created_by = request.user
- instance1.store = stores[0]
- instance1.save()
- instances = form2.save(commit=True)
- '''
- print(instances)
- for s in instances:
- s.product = instance1
- s.save()
- '''
- messages.success(request, "Product Save")
- else:
- print("Invalid ")
- print(form.errors)
- print(form2.errors)
- if form.errors:
- messages.error(request, form.errors)
- if form2.errors:
- messages.error(request, form2.errors)
- return redirect("fruit:product_edit", pk = int(pk))
- return render(request, 'fruit/product_form.html', {'product': True, 'form': form, 'form2': form2, 'object': product })
- def signup(request):
- if request.method == 'POST':
- form = UserCreationForm(request.POST)
- if form.is_valid():
- form.save()
- username = form.cleaned_data.get('username')
- raw_password = form.cleaned_data.get('password1')
- user = authenticate(username=username, password=raw_password)
- login(request, user)
- return redirect('front:index')
- else:
- form = UserCreationForm()
- return render(request, 'fruit/signup.html', {'form': form})
|