Source code for core.views
from django.template import loader
from django.http.response import HttpResponse, HttpResponsePermanentRedirect
from django.shortcuts import render,redirect
from django.contrib.auth.decorators import login_required
from django.contrib.auth import get_user_model
from django.contrib.auth.views import LoginView
from django.urls import reverse_lazy
from django.http import HttpResponse
from django.views.generic import FormView, TemplateView,RedirectView
from django.contrib.auth import get_user_model
from django.core.mail import send_mail
from django.db.models import F
from django.contrib import messages
from django.utils.safestring import mark_safe
from datetime import date,timedelta
from core.models import Addition,Image,Account,Location
from django.contrib.flatpages.models import FlatPage
from core.functions import addition_check,get_account_name
from core.forms import RegisterForm,UploadImageForm,Add_Location_Form
# Create your views here. - working
[docs]
class IndexView(TemplateView):
template_name = 'index.html'
# Re-direct based on user.role
# try and re-direct
[docs]
@login_required(login_url='/accounts/login/')
def home(request):
#
#
#
#Added account 8 June
account_name = get_account_name(request)
account_id= Account.objects.get(account=account_name)
owner_id= int(account_id.id)
# Check for putaways and display message
my_message =''
my_flag = ''
my_url = "<form action='/reports/put_away_list'><input type='submit' value='Put Away' /></form>"
received_ct = Addition.objects.filter(addition_status ='Received',account=account_id).count()
part_ct = Addition.objects.filter(addition_status ='Part Allocated',account=account_id).count()
putaway_ct = int(received_ct) + int(part_ct)
if putaway_ct > 0:
if putaway_ct == 1:
my_message = '1 wine to put away.'+ my_url
else:
my_message = str(putaway_ct) + ' wines to put away.'+ my_url
message = my_message
messages.warning(request,mark_safe(message))
#check for Addition table errors - display message if errors
addition_status,errors = addition_check(owner_id)
if addition_status == "errors":
my_url = "<form action='/reports/addition_errors'><input type='submit' value='Show Errors' /></form>"
message = 'Warning - discrepancies in your cellar list found. These should be corrected'
message = message + my_url
messages.warning(request,mark_safe(message))
return render(request, "index.html",
{'my_message' : my_message,
'my_flag' : my_flag,
'errors' : errors,
})
from django.contrib.auth.decorators import login_required
[docs]
def upload_image(request):
if request.method == 'POST':
form=UploadImageForm(request.POST,request.FILES)
if form.is_valid():
form.save()
else:
context = {'form':form}
return render(request,'core/uploadform.html',context)
context = {'form':UploadImageForm()}
return render(request,'core/uploadform.html',context)
from django.contrib.auth.decorators import login_required
[docs]
def gallery(request):
images = Image.objects.all()
context = {'images':images}
return render(request,'core/gallery2.html',context)
[docs]
def info_list(request):
fpages = FlatPage.objects.all()
context = {'fpages':fpages}
return render(request,'core/flat_index.html',context)
from django.contrib.auth.decorators import login_required
[docs]
def add_location(request):
#Added for account release 9 June
account_name = get_account_name(request)
account_id= Account.objects.get(account=account_name)
context ={}
# create object of form
form = Add_Location_Form(request.POST or None, request.FILES or None,
initial={'account': account_id})
print('account id = ',account_id)
if request.method == 'POST':
print ('values posted =',request.POST)
t=request.POST['type']
n=request.POST["name"]
a=account_id.id
location_check = Location.objects.filter(type=t,name=n,account=a)
if location_check:
# Location records exist with this name - raise error
msg="A location for this type, with this name already exists - please use another location name"
location_err=1
context = {'location_err' : location_err,
'msg' : msg,
'form' : form}
#context['form']= form
return render(request, "core/add_location.html", context)
# check if form data is valid
if form.is_valid():
# save the form data to model
try:
new_location=form.save(commit=False)
new_location.account = account_id
new_location.save()
msg = 'New Location : ' + form.cleaned_data.get('name') + ' saved.'
messages.success(request, msg)
response = redirect('')
return response
except:
print('Add Location error')
else:
print('Invalid Form')
context['form']= form
return render(request, "core/add_location.html", context)