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)
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)
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)
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)
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)
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)
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)
def server_error(request): data = {'base_url': get_base_url()} return render(request, '500.html', data)
def omnislash(request): data = {'base_url': get_base_url()} return render(request, 'omnislash.html', data)
def outlier(request): data = {'base_url': get_base_url()} return render(request, 'outlier.html', data)
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)
def work(request): data = {'base_url': get_base_url()} return render(request, 'work.html', data)
def privacy_policy(request): data = {'base_url': get_base_url()} return render(request, 'privacy_policy.html', data)
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)
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)
def contact(request): data = {'base_url': get_base_url()} return render(request, 'contact.html', data)
def home(request): data = {'base_url': get_base_url()} return render(request, 'home.html', data)
def error_page(request): data = {'base_url': get_base_url()} return render(request, '404.html', data)
def about(request): data = {'base_url': get_base_url()} return render(request, 'about.html', data)