def individual_stats(request): if request.method == 'GET': return render(request, 'individual_stats.html', {}) else: player_name = request.POST.get('player_name') player_type = request.POST.get('type') player_id = get_id(player_name) # print(player_name) try: data = fetch_data(player_name, player_id, player_type) if player_type == 'batting': battingPerf3d(player_name, player_id) batsmanAvgRunsGround(player_name, player_id) batsmanRunsLikelihood(player_name, player_id) batsmanAvgRunsOpposition(player_name, player_id) else: bowlerWktsFreqPercent(player_name, player_id) bowlerAvgWktsGround(player_name, player_id) bowlerMovingAverage(player_name, player_id) bowlerAvgWktsOpposition(player_name, player_id) except Exception as e: sweetify.sweetalert(request, "Data not found") print(data) context_data = { 'data': data, 'player_type': player_type, 'player_name': player_name } # return render(request, 'individual_stats.html', context_data) return render(request, 'individual_stats.html', context_data)
def approveSales(request): data = json.loads(request.body) pk = int(data['pk']) sales = Sales_Order.objects.get(pk=pk) for element in sales.sales_item_set.all(): if element.product.quantity < element.sales_quantity: sweetify.sweetalert( request, icon='error', title='Error', text="{} has {} items. You are selling {} items.".format( element.product.name, element.product.quantity, element.sales_quantity), persistent='Dismiss') return JsonResponse(0, safe=0) for element in sales.sales_item_set.all(): element.product.quantity -= element.sales_quantity element.product.total_cost -= element.total_cost element.product.save() sales.approved = True sales.save() return JsonResponse(0, safe=0)
def checkout_success(request, order_number): """ Handle successful checkouts """ save_info = request.session.get('save_info') order = get_object_or_404(Order, order_number=order_number) if request.user.is_authenticated: profile = UserProfile.objects.get(user=request.user) # Attach the user's profile to the order order.user_profile = profile order.save() sweetify.sweetalert( request, 'Order successful!', text= f'Your order number is {order_number}. A confirmation email will be sent to {order.email}.', persistent='Ok') if 'basket' in request.session: del request.session['basket'] template = 'checkout/checkout_success.html' context = { 'order': order, } return render(request, template, context)
def profile(request): """ Display the user's profile. """ profile = get_object_or_404(UserProfile, user=request.user) if request.method == 'POST': form = UserProfileForm(request.POST, instance=profile) if form.is_valid(): form.save() sweetify.sweetalert(request, 'Profile updated', timer=1000) else: sweetify.sweetalert( request, 'Update failed. Please ensure the form is vaild', timer=1000) else: form = UserProfileForm(instance=profile) orders = profile.orders.all() template = 'profiles/profile.html' context = { 'form': form, 'orders': orders, } return render(request, template, context)
def cache_checkout_data(request): """ Caches data in the checkout. """ try: pid = request.POST.get('client_secret').split('_secret')[0] stripe.api_key = settings.STRIPE_SECRET_KEY stripe.PaymentIntent.modify(pid, metadata={ 'bag': json.dumps( request.session.get('bag', {})), 'save_info': request.POST.get('save_info'), 'username': request.user, }) return HttpResponse(status=200) except Exception as e: sweetify.sweetalert(request, title='error', icon='error', text='Sorry, your payment cannot be \ processed right now. Please try again later.', timer=2000, timerProgressBar='true', persistent="Close") return HttpResponse(content=e, status=400)
def all_products(request): '''A view to show all of the products, including sorting and search queries''' products = Product.objects.all() query = None if request.GET: if 'searchfield' in request.GET: query = request.GET['searchfield'] if not query: sweetify.sweetalert( request, 'Search field empty', text='Please populate the search field before searching', persistent='Ok') return redirect(reverse('products')) queries = Q(name__icontains=query) | Q( description__icontains=query) products = products.filter(queries) context = { 'products': products, } return render(request, 'products/products.html', context)
def izlog(request, id, slug): if request.user.is_authenticated: userP = UserProfile.objects.get(userID=request.user) user = request.user auth = True if not userP.editovanProfil: sweetify.sweetalert(request, title="Molimo popunite svoj CV", icon="error") return redirect('editprofil') else: userP = None auth = False user = None elements = slug.split('-') pKey = elements[elements.__len__() - 1] izlog = Exhibition.objects.get(pk=pKey) return render(request, 'Izlog.html', { 'user': user, 'userP': userP, 'auth': auth, 'izlog': izlog })
def donate_product(request, pk=None): """Allows user to donate/create a product""" if request.method == "POST": product_form = CreateProductForm(request.POST, request.FILES) if product_form.is_valid(): product_form.save() sweetify.sweetalert(request, """Thank you for your contribution. Your product has been added to the shop!""", icon="success") return redirect("all_products") else: sweetify.sweetalert(request, """We could not submit your donation. Make sure you enter a correct price between 2€-100€.""", icon="error") product_form = CreateProductForm() else: product_form = CreateProductForm() return render(request, "create_product.html", {'product_form': product_form})
def bankUsluge(request): if request.user.is_authenticated: userP = UserProfile.objects.get(userID=request.user) if not userP.editovanProfil: sweetify.sweetalert(request, title="Molimo popunite svoj CV", icon="error") return redirect('editprofil') if Company.objects.filter(userID=request.user).exists(): user = request.user financije = Category.objects.get(name="Finansijske") userP = UserProfile.objects.get(userID=request.user) return render( request, 'bankarskeUsluge.html', { 'auth': True, 'usr': '******', 'user': user, 'userP': userP, 'financije': financije }) else: return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
def newpotraznja(request): if request.user.is_authenticated: userP = UserProfile.objects.get(userID=request.user) if not userP.editovanProfil: sweetify.sweetalert(request, title="Molimo popunite svoj CV", icon="error") return redirect('editprofil') if Company.objects.filter(userID=request.user): categories = Category.objects.filter(type=1).order_by('name') comp = Company.objects.get(userID=request.user) userP = UserProfile.objects.get(userID=request.user) return render( request, 'dodajPotraznju.html', { 'auth': True, 'usr': '******', 'cat': categories, 'comp': comp, 'user': request.user, 'userP': userP }) else: return redirect('home')
def newpost(request): if request.user.is_authenticated: userP = UserProfile.objects.get(userID=request.user) if not userP.editovanProfil: sweetify.sweetalert(request, title="Molimo popunite svoj CV", icon="error") return redirect('editprofil') if Company.objects.filter(userID=request.user).exists(): categories = Category.objects.filter(type=1).order_by('name') userP = UserProfile.objects.get(userID=request.user) return render( request, 'newpost.html', { 'auth': True, 'usr': '******', 'cat': categories, 'userP': userP, 'user': request.user }) else: return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
def logout(request): """Logs out the user""" auth.logout(request) sweetify.sweetalert(request, "You have successfully been logged out!", icon="success") return redirect(reverse('index'))
def remove_from_bag(request, product_id): """Remove the item from the shopping bag""" try: product = get_object_or_404(Product, pk=product_id) bag = request.session.get('bag', {}) bag.pop(product_id) sweetify.sweetalert(request, title='success', icon='success', text=f'Artwork {product.name.upper()} \ was removed from your bag.', timer=2000) request.session['bag'] = bag return HttpResponse(status=200) except Exception as e: sweetify.error(request, title='error', icon='error', text=f'Something went wrong removing {e}', timer=2000, timerProgressBar='true', persistent="Close") return HttpResponse(status=500)
def login(request): """Return the login.html file""" if request.user.is_authenticated: return redirect(reverse('index')) if request.method == "POST": login_form = UserLoginForm(request.POST) if login_form.is_valid(): user = auth.authenticate(username=request.POST['username'], password=request.POST['password']) if user: auth.login(user=user, request=request) sweetify.sweetalert(request, """You have successfully logged in!""", icon="success") return redirect(reverse('index')) else: login_form.add_error(None, "Your username or password is incorrect") else: login_form = UserLoginForm() return render(request, 'login.html', {"login_form": login_form})
def EditIzlog(request, id): if request.user.is_authenticated: if Company.objects.filter(userID=request.user).exists: userP = UserProfile.objects.get(userID=request.user) if not userP.editovanProfil: sweetify.sweetalert(request, title="Molimo popunite svoj CV", icon="error") return redirect('home') izlog = Exhibition.objects.get(id=id) return render( request, 'EditIzlog.html', { 'user': request.user, 'userP': userP, 'auth': True, 'izlog': izlog, 'usr': '******' }) return redirect('home')
def add(request): try: form = AddMachineForm(request.POST or None) form_ipmi = PowerTypeIPMIForm(request.POST or None) if form.is_valid() and form_ipmi.is_valid(): data = form.clean() ipmi_data = form_ipmi.clean() data.update({'commission': False, 'power_parameters': ipmi_data}) maas = MAAS() resp = maas.post("machines/", data=data) if resp.status_code in maas.ok: sweetify.success(request, _('Successfully added domain'), button='Ok', timer=2000) return redirect("maas:machines:index") sweetify.warning(request, _(resp.text), button='Ok', timer=10000) except (MAASError, ConnectionError, TimeoutError) as e: sweetify.sweetalert(request, 'Warning', icon='error', text=str(e), button='OK', timer=10000) form = None form_ipmi = None context = {'title': 'Add Machine', 'form': form, 'form_ipmi': form_ipmi} return render(request, "maas/machines/add-form.html", context)
def index(request): try: if settings.WITH_EX_RESPONSE: domains = load_document('domains.json') else: maas = MAAS() domains = maas.get("domains/").json() machine_file = open("hujan_ui/maas/ex_response/domains.json", "w") json.dump(domains, machine_file) machine_file.close() context = { 'title': 'DNS', 'domains': domains, 'menu_active': 'domains', } except (MAASError, ConnectionError, TimeoutError) as e: sweetify.sweetalert(request, 'Warning', text=str(e), button='OK', timer=5000) context = None return render(request, 'maas/dns/index.html', context)
def admin_settings(request): if request.user.is_admin: school = get_object_or_404(School, pk=request.user.school.pk) if request.method == 'POST': form = SettingsForm(request.POST, instance=school) if form.is_valid(): form.save() sweetify.sweetalert(request, "Success!", text="Settings saved.", icon='success') return redirect('admin-page') else: form = SettingsForm(instance=school) return render(request, 'admin_/settings.html', {"form": form}) else: user_admin = User.objects.get(school=request.user.school, is_admin=True) defaulter = Defaulters.objects.create(user=request.user, user_admin=user_admin, page=request.get_raw_uri()) defaulter.save() logout(request) sweetify.sweetalert( request, "Warning!", text="You tried accessing the settings page when you are" " not an administrator, Your account information has been " "sent to your admin. ", icon="warning", persistent=True) return redirect('home-login')
def add(request): form = AddDomainForm(request.POST or None) if form.is_valid(): try: resp = form.save() if resp.status_code == requests.codes.ok: sweetify.sweetalert(request, icon='success', text=_('Successfully added domain'), button='Ok', timer=2000) return redirect("maas:dns:index") sweetify.warning(request, _('Terjadi suatu kesalahan'), button='Ok', timer=2000) except (MAASError, ConnectionError, TimeoutError) as e: sweetify.sweetalert(request, 'Warning', text=str(e), button='Ok', timer=5000) context = { 'title': 'Add Domain', 'menu_active': 'domains', 'form': form, 'title_submit': 'Save Domain', 'col_size': '4' } return render(request, 'maas/form.html', context)
def profile(request): """ Display the user's profile. """ profile = get_object_or_404(UserProfile, user=request.user) social_media = SocialMedia.objects.all() if request.method == 'POST': form = UserProfileForm(request.POST, instance=profile) if form.is_valid(): form.save() sweetify.sweetalert(request, title='success', icon='success', text=f'Profile updated successfully.', timer=2000) else: sweetify.sweetalert( request, title='error', icon='error', text="Update failed. Please ensure the form is valid", timer=2000) else: form = UserProfileForm(instance=profile) orders = profile.orders.all().order_by('-purchase_date') template = 'profiles/profile.html' context = { 'form': form, 'orders': orders, 'all_social_media': social_media, } return render(request, template, context)
def edit(request, id): try: maas = MAAS() domain = maas.get(f"domains/{id}/").json() form = EditDomainForm(request.POST or None, initial=domain) if form.is_valid(): resp = form.save(domain['id']) if resp.status_code in maas.ok: sweetify.sweetalert(request, 'Success', text=_('Successfully edited domain'), button='Ok', timer=2000) return redirect("maas:dns:index") sweetify.warning(request, _(resp.text), button='Ok', timer=2000) context = { 'title': 'Edit Domain', 'menu_active': 'domains', 'form': form, 'title_submit': 'Save Domain', 'col_size': '4' } except (MAASError, ConnectionError, TimeoutError) as e: sweetify.sweetalert(request, 'Warning', text=str(e), button='Ok', timer=5000) context = None return render(request, 'maas/form.html', context)
def warehouse_save_process(request): if request.session.is_empty(): return redirect('/login/') name = request.GET['name'] address = request.GET['address'] user = User.objects.get(username=request.session.get('username')) warehouse = Warehouse() warehouse.name = name warehouse.address = address try: warehouse.save() user.branch.warehouse.add(warehouse) sweetify.sweetalert(request, icon='success', title='Added Warehouse Successfully!', persistent='Dismiss') except: sweetify.sweetalert(request, icon='error', title='YOU DID IT', text="YOU F****D IT UP", persistent='BRUH') return redirect('/')
def index(request): """ A view to return index page and render contact form which sends a message to default email address upon submission. """ about_section = About.objects.all() social_media = SocialMedia.objects.all() if request.method == 'POST': contact_form = ContactForm(request.POST) if contact_form.is_valid(): full_name = contact_form.cleaned_data['full_name'] user_email = contact_form.cleaned_data['email'] message = contact_form.cleaned_data['message'] try: send_mail( # captures user email in subject field f"Message from {full_name}, <{user_email}>", message, user_email, [settings.DEFAULT_FROM_EMAIL], fail_silently=False) sweetify.sweetalert( request, icon='success', title="Thank you! We have received your message!", text="Please expect to hear from us within 72hours.", timer=2000, timerProgressBar='true', persistent="Close") return redirect('home') except BadHeaderError: return HttpResponse('Invalid header found.') else: """ Attempt to prefill full_name and email fields for logged in user, if the info saved in their profile """ if request.user.is_authenticated: profile = UserProfile.objects.get(user=request.user) user_email = profile.user.email contact_form = ContactForm( initial={ 'full_name': profile.default_full_name, 'email': profile.user.email, }) else: contact_form = ContactForm() template = 'home/index.html' context = { 'about_section': about_section, 'contact_form': contact_form, 'all_social_media': social_media, } return render(request, template, context)
def test_general_sweetalert(self): title = 'Test Sweetify' sweetify.sweetalert(self.request, title) session_opts = json.loads(self.request.session['sweetify']) opts = sweetify.DEFAULT_OPTS.copy() opts.update({'title': title}) assert session_opts == opts
def purchaseProcess(request): data = json.loads(request.body) ref_id = data['ref_id'] date = data['date'] vendor = data['vendor'] lines = data['lines'] total_amount_due = data['total_amount_due'] myUsername = request.session.get('username') user = User.objects.get(username=myUsername) if vendor == '': sweetify.sweetalert(request, icon='error', title="Error", text='Vendor is empty', persistent="Dismiss") return JsonResponse(0, safe=False) if user.branch.purchase_order.filter(ref_id=ref_id).exists(): po = user.branch.purchase_order.latest('pk') listed_ref_id = po.ref_id.split('-') listed_date = str(now.today()).split('-') current_code = int(listed_ref_id[3]) if listed_ref_id[1] == listed_date[0] and listed_ref_id[2] == listed_date[1]: current_code += 1 ref_id = 'PO-{}-{}-{}'.format(listed_date[0], listed_date[1], str(current_code).zfill(4)) po = Purchase_Order() po.ref_id = ref_id po.date = date po.vendor = Vendor.objects.get(pk=vendor) po.total_amount_due = total_amount_due po.approved = False po.created_by = User.objects.get(username=myUsername) po.save() user.branch.purchase_order.add(po) for line in lines: pi = Purchase_Item() pi.product = Product.objects.get(pk=int(line['code'])) pi.purchase_order = po pi.remaining = int(line['remaining']) pi.purchase_quantity = int(line['quantity']) pi.cost_per_item = float(line['cost_per_item']) pi.total_cost = float(line['total_cost']) pi.save() sweetify.sweetalert(request, icon='success', title='Success!', persistent='Dismiss') return JsonResponse(0, safe=0)
def spoilageProcess(request): data = json.loads(request.body) ref_id = data['ref_id'] date = data['date'] lines = data['lines'] total_lost = data['total_lost'] myUsername = request.session.get('username') user = User.objects.get(username=request.session.get('username')) if user.branch.spoilage.filter(ref_id=ref_id).exists(): sp = user.branch.spoilage.latest('pk') listed_ref_id = sp.ref_id.split('-') listed_date = str(now.today()).split('-') current_code = int(listed_ref_id[3]) if listed_ref_id[1] == listed_date[0] and listed_ref_id[ 2] == listed_date[1]: current_code += 1 ref_id = 'SP-{}-{}-{}'.format(listed_date[0], listed_date[1], str(current_code).zfill(4)) sp = Spoilage() sp.ref_id = ref_id sp.date = date sp.total_lost = total_lost sp.approved = False sp.created_by = User.objects.get(username=myUsername) sp.save() user.branch.spoilage.add(sp) for line in lines: si = Spoilage_Item() si.product = Product.objects.get(pk=int(line['code'])) si.spoilage = sp si.remaining = int(line['remaining']) si.spoilage_quantity = int(line['quantity']) si.reason = line['reason'] si.cost_per_item = float(line['cost_per_item']) si.total_cost = float(line['total_cost']) si.save() sweetify.sweetalert(request, icon='success', title='Success!', persistent='Dismiss') return JsonResponse(0, safe=0)
def index(request): try: vlans = maas.get_vlans() except (MAASError, ConnectionError, TimeoutError) as e: vlans = None sweetify.sweetalert(request, 'Warning', icon='error', text=str(e), button='Ok', timer=5000) context = { 'title': 'Vlan List', 'vlans': vlans } return render(request, 'maas/vlans/index.html', context)
def delete_post(request, post_id): """ Delete a product from the store """ if not request.user.is_authenticated: sweetify.sweetalert(request, 'Please sign in to post on the form', persistent='Ok') return redirect(reverse('home')) post = get_object_or_404(Post, pk=post_id) post.delete() sweetify.sweetalert(request, 'Post deleted', timer=1000) return redirect(reverse('community'))
def detail(request, space_id): try: spaces = maas.get_spaces(space_id) context = { 'title': _('Detail Space'), 'space': spaces, 'subnets': maas.get_subnets() } except (MAASError, ConnectionError, TimeoutError) as e: sweetify.sweetalert(request, 'Warning', icon='error', text=str(e), button='Ok', timer=5000) return render(request, 'maas/spaces/detail.html', context)
def delete_product(request, product_id): """ Delete a product from the store """ if not request.user.is_superuser: sweetify.sweetalert(request, 'Sorry, only store owners can do that.', timer=1500) return redirect(reverse('home')) product = get_object_or_404(Product, pk=product_id) product.delete() sweetify.sweetalert(request, 'Product deleted', timer=1000) return redirect(reverse('products'))