#\controllers\register.py import config, re, json, datetime from bottle import template, route, request, redirect from models import customerdb, bicycledb, registerdb config.kargs['sortIndex'] = 0 @route('/register') def displayRegister(): config.kargs['registers'] = json.dumps(registerdb.select()) return template('register', data=config.kargs) @route('/registerForm') def getRegisterForm(): config.kargs['bicycles'] = json.dumps(bicycledb.select()) config.kargs['customers'] = json.dumps(customerdb.select()) return template('registerform', data=config.kargs) @route('/register', method="POST") def insertToRegister(): brand = json.loads(request.forms.get("fbikelist")) customer = json.loads(request.forms.get("fcustomerlist")) bicycledb.amountMinus(brand[0]) registerdb.insert(brand[0], customer[1], brand[1], (datetime.date.today()).strftime('%Y-%m-%d'), '1990-07-30') redirect('/register') @route('/register/returndate/<id>/<bikeid>') def editReturnDate(id, bikeid): registerdb.setReturnDate((datetime.date.today()).strftime('%Y-%m-%d'), id) bicycledb.amountPlus(bikeid) redirect('/register') @route('/register/delete/<id>') def deleteRegister(id): registerdb.delete(id) redirect('/register') @route("/register/<key>/<index>") def sortCustomer(key, index): config.kargs['registers'] = json.dumps(registerdb.sort(key)) config.kargs['sortIndex'] = index return template('register', data=config.kargs)
#\models\registerdb.py import sqlite3 def insert(*register): conn = sqlite3.connect('sqlite.db') cursor = conn.cursor() sql ='''CREATE TABLE IF NOT EXISTS REGISTER( ID INT, CUSTOMER TEXT, BRAND TEXT, RENTDATE DATE, RETURNDATE DATE ) ''' cursor.execute(sql) cursor.execute("INSERT INTO REGISTER VALUES (?, ?, ?, ?, ?)", register) conn.commit() conn.close() def select(): conn = sqlite3.connect('sqlite.db') cursor = conn.cursor() sql ='''CREATE TABLE IF NOT EXISTS REGISTER( ID INT, CUSTOMER TEXT, BRAND TEXT, RENTDATE DATE, RETURNDATE DATE ) ''' cursor.execute(sql) cursor.execute("SELECT ROWID, * from REGISTER") registers = cursor.fetchall() conn.commit() conn.close() return registers def setReturnDate(*args): conn = sqlite3.connect('sqlite.db') cursor = conn.cursor() sql = "UPDATE REGISTER SET RETURNDATE=? WHERE ROWID=?" cursor.execute(sql, args) conn.commit() conn.close() def delete(id): conn = sqlite3.connect('sqlite.db') cursor = conn.cursor() cursor.execute("DELETE FROM REGISTER WHERE ROWID=?", (id,)) conn.commit() conn.close() def sort(key): conn = sqlite3.connect('sqlite.db') cursor = conn.cursor() cursor.execute("SELECT ROWID, * from REGISTER ORDER BY " + key) registers = cursor.fetchall() conn.commit() conn.close() return registers
<!--\views\register.tpl--> %include("./partials/header.tpl") <div class="main" id="main"> <div class="content" id="content"> <div class="top-widget"> <span>REGISTERS</span><input onclick="location.href='/registerForm'" type="button" value="Add Register" /> </div> <div class="bottom-widget"> <span> <select id="regiskey"> <option value="Customer" >Customer</option> <option value="Brand" >Bicycle</option> <option value="RentDate" >Rental Date</option> <option value="ReturnDate" >Return Date</option> </select> <input onclick="bicycle.sortRegister()" type="button" value="Sort" /> </span> </div> <div id="table"></div> <script> $( document ).ready(function() { bicycle.showRegister({{!data['registers']}}, {{!data['sortIndex']}}); }); </script> </div><!--content--> </div><!--main--> %include("./partials/footer")
sortRegister(){ var element = document.getElementById("regiskey"); var sortIndex = element.selectedIndex; var key = element.options[sortIndex].value; window.location.href = "/register/" + key + "/" + sortIndex; }
GitHub: https://github.com/Sokhavuth/Rental-Bicycle-App
Heroku: https://khmerweb-rba.herokuapp.com/