#controllers/dashboard/dashboard.py
from flask import session
from flask_classful import FlaskView, route
from controllers.dashboard.category import Category
from controllers.dashboard.post import Post
class Dashboard(FlaskView):
def __init__(self):
self.cat = Category()
self.post = Post()
@route('/', methods=['GET', 'POST'])
def index(self):
session['page'] = 0
return self.post.get_post()
@route('/category/', methods=['GET', 'POST'])
def category(self):
session['page'] = 0
return self.cat.get_post()
@route('/category/delete/<category>')
def delete(self, category):
return self.cat.delete(category)
@route('/category/edit/<category>')
def edit(self, category):
return self.cat.edit(category)
@route('/category/load/')
def load(self):
session['page'] += 1
return self.cat.load(session['page'])
dashboard = Dashboard()
#controllers/dashboard/post.py
import config, copy
from flask import render_template, session, redirect
from lib import Lib
from models.dashboard.postdb import Postdb
from models.dashboard.categorydb import Categorydb
class Post():
def __init__(self):
self.lib = Lib()
self.post = Postdb()
self.category = Categorydb()
def get_post(self):
vdict = copy.deepcopy(config.vdict)
vdict['blog_title'] = 'ចុះផ្សាយមេរៀន'
vdict['datetime'] = self.lib.get_timezone()
vdict['categories'] = self.category.select('all')
if 'logged-in' in session:
return render_template('dashboard/dashboard.html', data=vdict)
else:
return redirect('/login/')
<!--templates/dashboard/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/ckeditor/ckeditor.js"></script>
<script src='/static/scripts/base.js'></script>
<script src='/static/scripts/dashboard.js'></script>
<link href="/static/styles/base.css" rel="stylesheet" >
<link href="/static/styles/dashboard.css" rel="stylesheet">
<link href="/static/fonts/setup.css" rel='stylesheet'>
<link href="/static/images/site_logo.png" rel="shortcut 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 >{{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="/login/logout/">ចេញក្រៅ</a></div>
</header>
{% endblock %}
</div>
<div id="main" class="main region">
{% block main %}
<div id="sidebar">
{% block sidebar %}
<div><a href="/dashboard/"><img src="/static/images/posting.png" /></a><a href="/dashboard/">ចុះផ្សាយមេរៀន</a></div>
<div><a href="/category/"><img src="/static/images/categorizing.png" /></a><a href="/dashboard/category/">បង្កើតប្រភេទមេរៀន</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 %}
<form id='post' action='/dashboard/' method="POST" >
{% if 'post' in data %}
<input id='post-title' value="{{ data['post'][1] }}" name="fpost-title" type="text" placeholder="ប្រភេទមេរៀន" required />
<textarea name="fcontent" id="editor" >{{ data['post'][2] }}</textarea>
{% else: %}
<input id='post-title' value="" name="fpost-title" type="text" placeholder="ប្រភេទមេរៀន" required />
<textarea name="fcontent" id="editor" ></textarea>
{% endif %}
<div id="bottombar">
<input id="submit" class="bottom-widget" type="submit" value="ចុះផ្សាយ">
<select id='category'>
{% if 'categories' in data %}
{% for category in data['categories'] %}
<option>{{ category[1] }}</option>
{% endfor %}
{% endif %}
</select>
<input id="post-date" value="{{ data['datetime'][0] }}" class="post-time" type="text" name="fpost-date" required />
<input id="post-time" value="{{ data['datetime'][1] }}" class="post-time" type="text" name="fpost-time" required />
<input disabled type='text' value="{{ session['logged-in'] }}" id="post-author" class="post-time" name="fpost-author" required />
</div>
</form>
<div id="message">{{ data['message'] }}</div>
<script src="/static/scripts/ckeditor/config.js"></script>
{% endblock %}
</div>
{% endblock %}
</div>
{% block item_listing %}
<div id="item-listing" class="item-listing region"></div>
{% endblock %}
<div id="footer" class="footer region">
{% block footer %}
© Copyright 2020 by <a href="https://www.khmerweb.app/">Khmer Web</a>.
<script>var base = new Base();</script>
{% endblock %}
</div>
</body>
</html>
GitHub: "https://github.com/Sokhavuth/E-Learning
Heroku: https://khmerweb-elearning.herokuapp.com/














