Example #1
0
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)
Example #2
0
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)
Example #4
0
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)
Example #6
0
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)
Example #7
0
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})
Example #9
0
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', '/'))
Example #10
0
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')
Example #11
0
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'))
Example #13
0
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})
Example #15
0
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')
Example #16
0
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)
Example #17
0
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)
Example #18
0
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')
Example #19
0
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)
Example #20
0
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)
Example #21
0
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)
Example #22
0
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
Example #25
0
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)
Example #26
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)
Example #27
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'))
Example #29
0
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)
Example #30
0
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'))