示例#1
0
def login(request):
    data = {'base_url': get_base_url()}

    # If user is login redirect to overview
    if request.user.is_authenticated():
        return HttpResponseRedirect('/dashboard/')

    return render(request, 'login.html', data)
示例#2
0
def dashboard(request):
    current_user = request.user

    # Only go to overview if user is logged in
    if not current_user.is_authenticated():
        return HttpResponseRedirect('/login/')

    user_name = ''
    try:
        user_name = current_user.first_name + ' ' + current_user.last_name
    except:
        logout(request)

    database = {}
    database_connection = open_database_connection()
    mysql = database_connection.cursor()
    mysql.execute("SHOW DATABASES")

    exclude_list = [
        'information_schema', 'performance_schema', 'sys', 'mysql',
        'ktdemo$kt-database'
    ]

    # Make database list
    for database_name in mysql:
        database_name = database_name[0]
        if database_name not in exclude_list:
            database[str(database_name)] = {}

    # Get tables and columns
    for database_name in database:
        mysql.execute("USE `" + database_name + "`")
        mysql.execute("SHOW TABLES")

        columns = []

        for column in mysql:
            columns.append(str(column[0]))
            database[database_name] = columns

        database[database_name] = columns

    mysql.close()
    database_connection.close()

    # GET ALL QUERIES
    queries = Query.objects.all()

    data = {
        'base_url': get_base_url(),
        'username': current_user.username,
        'name': user_name,
        'database': database,
        'queries': json.dumps(models_to_dict(queries))
    }

    return render(request, 'dashboard.html', data)
示例#3
0
def register(request):
    data = {
        'base_url': get_base_url()
    }

    # If user is login redirect to overview
    if request.user.is_authenticated():
        return HttpResponseRedirect('/inventory/')

    return render(request, 'register.html', data)
示例#4
0
def forgot_password(request):
    data = {'base_url': get_base_url(), 'expired': False}

    # if 'code' in request.GET:
    #     current_user = User.objects.get(reset_link=request.GET['code'])
    #
    #     if (int(round(time.time())) - current_user.reset_date) > 86400:
    #         data['expired'] = True

    # If user is login redirect to overview
    if request.user.is_authenticated():
        return HttpResponseRedirect('/dashboard/')

    return render(request, 'forgot_password.html', data)
示例#5
0
def work_page(request, work_name):

    data = {
        'base_url': get_base_url(),
    }

    try:
        file_path = os.path.join(os.path.dirname(__file__),
                                 'static_data/work.json')
        creations = json.loads(open(file_path).read())
    except:
        return render(request, '500.html', {})

    try:
        data['template'] = json.dumps(creations[work_name])
        data['title_name'] = creations[work_name]['title_name']
    except:
        return render(request, '404.html', {})

    return render(request, 'work_page.html', data)
示例#6
0
def dashboard(request):
    current_user = request.user

    classes = list(Class.objects.filter(user=current_user))
    class_list = {}

    for current_class in classes:
        roster = []
        link_students = current_class.student_classes.all()
        attendance_list = {}
        attendance_obj = Attendance.objects.filter(classroom=current_class)

        if len(attendance_obj):
            for attendance in attendance_obj:
                attendance_list[str(attendance.time)] = attendance.attendance

        for student in link_students:
            roster.append(student.id)
        current_class = model_to_dict(current_class)
        current_class['roster'] = roster
        current_class['attendance'] = attendance_list
        class_list[current_class['id']] = current_class

    students = array_to_dict(
        list(Student.objects.filter(user=current_user).values()))

    data = {
        'base_url': get_base_url(),
        'name': current_user.first_name + ' ' + current_user.last_name,
        'classes': json.dumps(class_list),
        'students': json.dumps(students),
        'student_length': len(students),
        'start_of_day': str(int(time.time() / 86400) * 86400)
    }

    # Only go to dashboard if user is logged in
    if not current_user.is_authenticated():
        return HttpResponseRedirect('/login/')

    return render(request, 'dashboard.html', data)
示例#7
0
def employee(request):
    current_user = request.user

    # If user is login redirect to overview
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login/')

    current_boss = get_boss(current_user)
    user_type = 'boss'
    if not current_user.boss:
        user_type = current_user.employee.type

    user_business = current_boss.business
    stores = user_business.stores.all().values()
    store_dict = {}

    for current_store in stores:
        store_id = str(current_store['id'])
        store_dict[store_id] = current_store
        employees = Employee.objects.filter(boss=current_boss, store=store_id).order_by('-type')
        employees_dict = {}

        for current_employee in employees:
            employee_user = User.objects.get(employee_id=current_employee.id)
            employee_id = current_employee.id
            employees_dict[employee_id] = {'first_name': employee_user.first_name, 'last_name': employee_user.last_name,
            'type': current_employee.type, 'username': employee_user.username, 'email': employee_user.email,
            'id': employee_id}

        store_dict[store_id]['employees'] = employees_dict

    data = {
        'base_url': get_base_url(),
        'name': current_user.first_name + " " + current_user.last_name,
        'stores': json.dumps(store_dict),
        'user_type': user_type,
        'username': current_user.username
    }

    return render(request, 'employee.html', data)
示例#8
0
def server_error(request):
    data = {'base_url': get_base_url()}

    return render(request, '500.html', data)
示例#9
0
def omnislash(request):
    data = {'base_url': get_base_url()}

    return render(request, 'omnislash.html', data)
示例#10
0
def outlier(request):
    data = {'base_url': get_base_url()}

    return render(request, 'outlier.html', data)
示例#11
0
def blog(request, blog_name):
    data = {'base_url': get_base_url()}

    blog_name = blog_name.strip().lower().replace('-', '_')

    return render(request, blog_name + '.html', data)
示例#12
0
def work(request):
    data = {'base_url': get_base_url()}

    return render(request, 'work.html', data)
示例#13
0
def privacy_policy(request):
    data = {'base_url': get_base_url()}

    return render(request, 'privacy_policy.html', data)
示例#14
0
def overview(request):
    current_user = request.user

    # If not login go to login page
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login/')

    current_boss = get_boss(current_user)

    user_business = current_boss.business
    # user_settings['business_tax'] = decimal_format(float(user_business.tax)*100, 3, False)
    stores = user_business.stores.all().values()
    store_dict = {}

    for current_store in stores:
        store_id = str(current_store['id'])
        store_dict[store_id] = current_store
        store_dict[store_id]['transactions'] = []
        transactions = models_to_dict(Transaction.objects.filter(store_id=store_id).order_by('-date'))

        ordered_transactions = []
        datetime_holder = ''
        t_dict = None

        for t in transactions:
            item_discount = 0
            current_datetime = epoch_strftime(t['date'], "%A %B %d, %Y")
            epoch_date = time.mktime(time.strptime(current_datetime, "%A %B %d, %Y"))

            # Calculations
            t_tax = round(float(t['tax'])*float(t['subtotal'])*100)/100
            t_total = float(t['subtotal']) + t_tax - float(item_discount)
            # Data: Tax, Discount, Total
            t['timestamp'] = epoch_strftime(t['date'], '%b %#d, %Y %I:%M%p')
            t['tax'] = '{0:.2f}'.format(t_tax)
            t['discount'] = '{0:.2f}'.format(item_discount)
            t['total'] = '{0:.2f}'.format(t_total)

            # Split different dates
            if datetime_holder == current_datetime:
                t_dict['transactions'].append(t)
            else:
                if t_dict is not None:
                    ordered_transactions.append(t_dict)
                t_dict = {'datetime': current_datetime, 'epoch': epoch_date, 'transactions': []}
                datetime_holder = current_datetime
                t_dict['transactions'].append(t)
        # Append the last date
        if t_dict is not None:
            ordered_transactions.append(t_dict)

        store_dict[store_id]['transactions'] = ordered_transactions

    data = {
        'base_url': get_base_url(),
        'name': current_user.first_name + " " + current_user.last_name,
        'username': current_user.username,
        'business_id': user_business.id,
        'business_name': user_business.name,
        'stores': json.dumps(store_dict)
    }

    # if len(user_business.inventory):
    #     user_settings['example_item'] = next(iter(user_business.inventory.items()))[1]

    return render(request, 'overview.html', data)
示例#15
0
def inventory(request):
    current_user = request.user

    # Only go to overview if user is logged in
    if not current_user.is_authenticated():
        return HttpResponseRedirect('/login/')

    current_boss = get_boss(current_user)
    user_type = 'boss'
    if not current_user.boss:
        user_type = current_user.employee.type

    user_business = current_boss.business
    stores = user_business.stores.all().values()
    store_dict = {}

    if len(stores):
        active_store = str(stores.first()['id'])
    else:
        active_store = ''

    for current_store in stores:
        store_id = str(current_store['id'])
        store_dict[store_id] = current_store
        store_inventory = current_store['inventory']

        if current_store['order_by'] != 'none':
            current_store['inventory'] = sorted(store_inventory.items(), key=lambda (k, v): v[current_store['order_by']], reverse=current_store['reverse'])
        else:
            current_store['inventory'] = sorted(store_inventory.items(), key=lambda (k, v): int(k), reverse=False)

        store_log = list(ItemLog.objects.filter(store_id=store_id).order_by('-date').values(
            'user__first_name', 'user__last_name', 'action', 'operation', 'item_name', 'change', 'previous_value',
            'date', 'details', 'id'))

        ordered_logs = []
        datetime_holder = ''
        l_dict = None

        for l in store_log:
            current_datetime = epoch_strftime(l['date'], "%A %B %d, %Y")
            # Data: Tax, Discount, Total
            l['timestamp'] = epoch_strftime(l['date'], '%b %#d, %I:%M%p')

            # Split different dates
            if datetime_holder == current_datetime:
                l_dict['logs'].append(l)
            else:
                if l_dict is not None:
                    ordered_logs.append(l_dict)

                l_dict = {'datetime': current_datetime, 'logs': []}
                datetime_holder = current_datetime
                l_dict['logs'].append(l)

        # Append the last date
        if l_dict is not None:
            ordered_logs.append(l_dict)

        current_store['item_log'] = ordered_logs

    data = {
        'base_url': get_base_url(),
        'business_id': user_business.id,
        'business_name': user_business.name,
        'active_store': active_store,
        'name': current_user.first_name + " " + current_user.last_name,
        'username': current_user.username,
        'stores': json.dumps(store_dict),
        'user_type': user_type
    }

    return render(request, 'inventory.html', data)
示例#16
0
def contact(request):
    data = {'base_url': get_base_url()}

    return render(request, 'contact.html', data)
示例#17
0
def home(request):
    data = {'base_url': get_base_url()}

    return render(request, 'home.html', data)
示例#18
0
def error_page(request):
    data = {'base_url': get_base_url()}

    return render(request, '404.html', data)
示例#19
0
def about(request):
    data = {'base_url': get_base_url()}

    return render(request, 'about.html', data)