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 | #controllers/index.py import config, copy from flask import render_template, request, session, redirect from flask_classful import FlaskView, route from models.userdb import Userdb class Index(FlaskView): def __init__( self ): self .vdict = copy.deepcopy(config.vdict) self .userdb = Userdb() @route ( '/' ) def index( self ): return render_template( 'index.html' , data = self .vdict) @route ( '/login/' , methods = [ 'GET' , 'POST' ]) def login( self ): if request.method = = 'POST' : email = request.form[ 'femail' ] password = request.form[ 'fpassword' ] if ( self .userdb.check_user(email, password)): if True : session[ 'email' ] = email return render_template( 'dashboard.html' , data = self .vdict) else : if 'email' in session: return render_template( 'dashboard.html' , data = self .vdict) return render_template( 'login.html' , data = self .vdict) @route ( '/logout/' ) def logout( self ): session.pop( 'email' , None ) return redirect( '/' ) |
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 | <!--templates/dashboard.html--> <!DOCTYPE html> < html > < head > {% block head %} < meta charset = "UTF-8" /> < meta name = "viewport" content = "width=device-width, initial-scale=1.0" /> < meta name = "description" content = "This blog engine is built for e-learning" > < meta name = "robots" content = "index, follow" > < meta name = 'keywords' content = 'e-learning, learning, school, math, programming' > < title >{{data['blog_title']}}</ title > < script src = "/static/scripts/jQuery.js" ></ script > < script src = '/static/scripts/base_dashboard.js' ></ script > < link href = "/static/styles/base.css" rel = "stylesheet" > < link href = "/static/styles/base_dashboard.css" rel = "stylesheet" > < link href = "/static/styles/menu_dashboard.css" rel = "stylesheet" > < link href = "/static/fonts/setup.css" rel = 'stylesheet' > < link href = "/static/images/site_logo.png" rel = "icon" > {% endblock %} </ head > < body > < div id = "header" > {% block header %} < header id = "inner" class = "inner region" > < div id = "title" > < a href = "/" >< img src = "/static/images/site_logo.png" /></ a > < a href = "/login/" >{{data['blog_title']}}</ a > </ div > < div id = "blog-search" > < form class = "search" action = "/search/backend/" method = "post" > < input type = "text" placeholder = "Search.." name = "fquery" required> < button type = "submit" >ស្វែងរក</ button > </ form > </ div > < div id = "logout" >< a href = "/logout/" >ចេញក្រៅ</ a ></ div > </ header > {% endblock %} </ div > < div id = "main" class = "main region" > {% block main %} < div id = "sidebar" > {% block sidebar %} < div >< a href = "/posting" >< img src = "/static/images/posting.png" /></ a >< a href = "/posting" >ចុះផ្សាយមេរៀន</ a ></ div > < div >< a href = "/categorizing" >< img src = "/static/images/categorizing.png" /></ a >< a href = "/categorizing" >បង្កើតប្រភេទមេរៀន</ a ></ div > < div >< a href = "/paging" >< img src = "/static/images/paging.png" /></ a >< a href = "/paging" >បង្កើតទំព័រមាតិកា</ a ></ div > < div >< a href = "/uploading" >< img src = "/static/images/multimedia.png" /></ a >< a href = "/uploading" >ចំលងឯកសារ</ a ></ div > < div >< a href = "/addinguser" >< img src = "/static/images/user.png" /></ a >< a href = "/addinguser" >បន្ថែមសមាជិក</ a ></ div > < div >< a href = "/setting" >< img src = "/static/images/setting.png" /></ a >< a href = "/setting" >កំណត់ទំរង់លក្ខណៈ</ a ></ div > {% endblock %} </ div > < div id = "content" >{% block content %}{% endblock %}</ div > {% endblock %} </ div > < div id = "item-listing" class = "item-listing region" ></ div > < div id = "footer" class = "footer region" > {% block footer %} < script >var base = new Base();</ script > {% endblock %} </ div > </ body > </ html > |
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 | /*static/styles/base_dashboard.css*/ #header{ background : lightgrey; border-bottom : 15px solid rgb ( 172 , 170 , 170 ); } #header #inner{ display : grid; grid-template-columns: 30% auto 25% ; align-items: center ; grid-gap: 10px ; padding : 10px ; } #header #inner #logout{ text-align : right ; } #header #title{ display : grid; grid-template-columns: 35px auto ; grid-gap: 5px ; align-items: center ; font : 27px / 1.5 Moul; } #header #title img{ width : 100% ; } #main{ margin-top : 10px ; display : grid; grid-template-columns: 25% auto ; grid-gap: 10px ; } #main #sidebar{ background : lightgrey; padding : 20px ; min-height : 300px ; } #main #sidebar div{ display : grid; grid-template-columns: 15% auto ; grid-gap: 10px ; align-items: center ; font : 18px / 1.5 Koulen; } #main #sidebar img{ width : 100% ; } #main #content{ background : lightgrey; } #item-listing{ background : lightgrey; margin-top : 10px ; min-height : 200px ; } |
GitHub: "https://github.com/Sokhavuth/E-Learning
Heroku: https://khmerweb-elearning.herokuapp.com/