1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #\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) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #\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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <!--\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") |
1 2 3 4 5 6 7 | 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/