Creating Book Template

#controllers/book.py
import config, copy, uuid, datetime
from flask import render_template, session, redirect, request
from lib import Lib
from models.dashboard.bookdb import Bookdb

class Book():
  def __init__(self):
    self.lib = Lib()
    self.bookdb = Bookdb()

  def get_post_book(self):
    vdict = copy.deepcopy(config.vdict)  
    vdict['books'] = self.bookdb.select(vdict['book_max_post'])
    vdict['thumbs'] = self.lib.get_thumbs(vdict['books'], 2)
    return vdict

  def get_book(self, id):
    vdict = copy.deepcopy(config.vdict)
    vdict['book'] = self.bookdb.select(1, id=id)

    return vdict

  def load(self, page):
    vdict = copy.deepcopy(config.vdict)
    vdict['books'] = self.bookdb.select(vdict['book_max_post'], page=page)
    vdict['thumbs'] = self.lib.get_thumbs(vdict['books'], 2)

    new_list = []
    for book in vdict['books']:
      new_book = list(book)
      new_book[3] = book[3].strftime('%d/%m/%Y') 
      new_book[4] = book[4].strftime('%H:%M:%S') 
      new_list.append(new_book)

      vdict['books'] = new_list
      return vdict
<!--templates/book.html-->
{% extends "base.html" %}

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

{% block content %}

<h3><span class="book-title">{{ data['book'][1] }}</span></h3>

<p class="book-meta">
  {% if 'logged-in' in session %}
  <span><a href="/dashboard/book/edit/{{ data['book'][0] }}"><img src="/static/images/edit.png" /></a>
    <a href="/dashboard/book/delete/{{ data['book'][0] }}"><img src="/static/images/delete.png" /></a>
  </span>
  {% endif %}
</p>

<article class="book-body">{{ data['book'][2]|safe }}</a></article>

<div style="margin-top:20px;" id="disqus_thread"></div>
<script>
  (function() { // DON'T EDIT BELOW THIS LINE
    var d = document, s = d.createElement('script');
    s.src = 'https://khmerweb.disqus.com/embed.js';
    s.setAttribute('data-timestamp', +new Date());
    (d.head || d.body).appendChild(s);
  })();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

{% endblock %}
/*static/styles/post.css*/
#main{
  display: grid;
  grid-template-columns: 75% auto;
  grid-gap: 20px;
  margin-top: 30px;
}
#main #content, #main #sidebar{
  background: lavender;
  min-height: 400px;
}
#main #content{
  padding: 20px;
}
#main #content .book-title{
  font: 20px/1.5 Oswald, Koulen;
}
#main #content .book-body{
  margin-top: 30px;
}
#main #content .book-body img{
  display: none;
}
#main #content .book-meta{
  margin: 20px 0;
}
#main #content .book-meta span{
  float: right;
  position: relative;
  top: -15px;
}
#main #content .book-meta img{
  width: 30px;
  margin-left: 5px;
}

@media only screen and (max-width: 600px){
  #main{
    grid-template-columns: 100%;
    padding: 20px;
  }
}

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

Comments

Popular posts from this blog

Boilerplate Code

Adding Frontend Single Movie Template