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 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)