Adding Setting Functionality

#config.py
from models.dashboard.settingdb import Settingdb

vdict = {}
vdict['message'] = ''
vdict['page'] = 0

settingdb = Settingdb()
setting = settingdb.select()

if not setting:
  vdict['dashboard_max_post'] = 5
  vdict['dashboard_max_category'] = 5
  vdict['post_max_category'] = 20
  vdict['book_max_post'] = 8
  vdict['blog_title'] = "សាលារៀនពីចំងាយ"
  vdict['blog_description'] = "ចេះ​ពី​រៀន​ មាន​ពី​រក"
  vdict['secret_key'] = 'c89f675a9b7c74ffca5a44a0cf3e3acc'

  settingdb.insert(vdict['dashboard_max_post'], vdict['dashboard_max_category'], vdict['post_max_category'], vdict['book_max_post'], vdict['blog_title'], vdict['blog_description'], vdict['secret_key'])
else:
  vdict['dashboard_max_post'] = setting[0]
  vdict['dashboard_max_category'] = setting[1]
  vdict['post_max_category'] = setting[2]
  vdict['book_max_post'] = setting[3]
  vdict['blog_title'] = setting[4]
  vdict['blog_description'] = setting[5] 
  vdict['secret_key'] = setting[6] 
#controllers/dashboard/setting.py
import config, copy, uuid, datetime, importlib
from flask import render_template, session, redirect, request
from lib import Lib
from models.dashboard.settingdb import Settingdb

class Setting():
  def __init__(self):
    self.lib = Lib()
    self.settingdb = Settingdb()

  def get_set(self):
    vdict = copy.deepcopy(config.vdict)
    vdict['blog_title'] = 'កំណត់​ទំរង់​លក្ខណៈ'

    if (request.method == "POST") and ('logged-in' in session):

      max_post = request.form['fmax-post']
      max_category = request.form['fmax-category']
      max_post_category = request.form['fmax-post-category']
      max_book = request.form['fbook-post']
      blog_title = request.form['fblog-title']
      blog_description = request.form['fblog-description']
      secret_key = request.form['fsecret-key']

      if self.settingdb.select():
        self.settingdb.update(max_post, max_category, max_post_category, max_book, blog_title, blog_description, secret_key)
      else:
        self.settingdb.insert(max_post, max_category, max_post_category, max_book, blog_title, blog_description, secret_key)

      importlib.reload(config)
      vdict['setting'] = self.settingdb.select()

      return render_template('dashboard/setting.html', data=vdict)

    elif 'logged-in' in session:
      setting = self.settingdb.select()
      if setting:
        vdict['setting'] = setting

      return render_template('dashboard/setting.html', data=vdict)
    else:
      return redirect('/login/')
<!--templates/dasboard/setting.html-->
{% extends 'dashboard/dashboard.html' %}

{% block head %}
{{ super() }}
<link href="/static/styles/setting.css" rel="stylesheet" >
{% endblock %}

{% block content %}
  <form id='setting' action='/dashboard/setting/' method="POST" >
    <a>ចំនួន​ការផ្សាយ​ក្នុង​ទំព័រ​គ្រប់គ្រង:</a><input value="{{ data['setting'][0] }}" name="fmax-post" type="text"  required />
    <a>ចំនួន​ជំពូក​ក្នុង​ទំព័រ​គ្រប់គ្រង:</a><input value="{{ data['setting'][1] }}" type="text" name="fmax-category" required />
    <a>ចំនួន​ការផ្សាយ​ក្នុង​ជំពូកនិមួយៗ​:</a><input value="{{ data['setting'][2] }}" type="text" name="fmax-post-category" required />
    <a>ចំនួន​សៀវភៅ​នៅ​ទំព័រ​មុខ:</a><input type='text' value="{{ data['setting'][3] }}" name="fbook-post" required />
    <a>ចំណង​ជើង​គេហទំព័រ:</a><input type='text' value="{{ data['setting'][4] }}" name="fblog-title" required />
    <a>សេចក្តី​អធិប្បាយ​គេហទំព័រ:</a><input type='text' value="{{ data['setting'][5] }}" name="fblog-description" required />
    <a>កូដ​សំងាត់:</a><input type='text' value="{{ data['setting'][6] }}" name="fsecret-key" required />
    <a></a><input id="submit" class="bottom-widget" type="submit" value="ចុះ​ផ្សាយ">
    </div>
  </form>
  <div id="message">{{ data['message'] }}</div>
{% endblock %}

{% block item_listing %}

{% endblock %}
/*static/styles/setting.css*/
#setting{
  display: grid;
  grid-template-columns: 30% 40%;
  padding: 20px;
  grid-gap: 5px;
  align-items: center;
}
#setting a{
  text-align: right;
}
#setting input{
  font: 14px/1.5 Vidaloka, OdorMeanChey;
  padding:2px;
}
#setting input{
  padding: 5px;
}

GitHub: "https://github.com/Sokhavuth/E-Learning
Heroku: https://khmerweb-elearning.herokuapp.com/

Comments

Popular posts from this blog