def single_author(author_abbr): author = Author.get_author_by_abbr(author_abbr) if not author: abort(404) # if 'q' in form.args, then display it, # otherwise, display a random quote if 'q' in request.args: q_id = int(request.args['q']) quote = Quote.get_quote_by_id(q_id) else: quote = Quote.get_quote_by_random(author['AuthorID']) quotes_num = Quote.get_quotes_num_by_author(author['AuthorID']) works = Work.get_works_by_author(author['AuthorID']) for work in works: work['Content'] = content_clean(work['Content']) # count num of different type work. # return like this - works_num['shi'] = {'type_name': '诗', 'num': 0}. work_types = Work.get_types() works_num = {} for wt in work_types: works_num[wt['WorkType']] = {'type_name': wt['TypeName'], 'num': 0} for work in works: work_type = work['Type'] works_num[work_type]['num'] += 1 return render_template('author/single_author.html', author=author, quote=quote, quotes_num=quotes_num, works=works, works_num=works_num)
def single_author(author_abbr): author = Author.get_author_by_abbr(author_abbr) if not author: abort(404) quote = Quote.get_quote_by_random(author['AuthorID']) quotes_num = Quote.get_quotes_num_by_author(author['AuthorID']) collections = Collection.get_collections_by_author(author['AuthorID']) works = Work.get_works_by_author(author['AuthorID']) for work in works: work['Content'] = content_clean(work['Content']) # count num of different type work. # return like this - works_num['shi'] = {'type_name': '诗', 'num': 0}. work_types = Work.get_types() works_num = {} for wt in work_types: works_num[wt['WorkType']] = {'type_name': wt['TypeName'], 'num': 0} for work in works: work_type = work['Type'] works_num[work_type]['num'] += 1 return render_template('single_author.html', author=author, quote=quote, quotes_num=quotes_num, collections=collections, works=works, works_num=works_num)
def add_quote(author_id): check_admin() quote = request.form['quote'] work_id = int(request.form['work-id']) work_title = Work.get_work(work_id)['Title'] Quote.add(author_id, quote, work_id, work_title) return redirect(url_for('admin_quotes', author_id=author_id))
def edit_quote(quote_id): if request.method == 'GET': quote = Quote.get_quote_by_id(quote_id) return render_template('author/edit_quote.html', quote=quote) else: quote = request.form['quote'] work_id = int(request.form['work-id']) work = Work.get_work(work_id) Quote.edit(quote_id, work['AuthorID'], quote, work['WorkID'], work['Title']) return redirect(url_for('author/admin_quotes', author_id=work['AuthorID']))
def edit_quote(quote_id): if request.method == 'GET': quote = Quote.get_quote_by_id(quote_id) return render_template('author/edit_quote.html', quote=quote) else: quote = request.form['quote'] work_id = int(request.form['work-id']) work = Work.get_work(work_id) Quote.edit(quote_id, work['AuthorID'], quote, work['WorkID'], work['Title']) return redirect( url_for('author/admin_quotes', author_id=work['AuthorID']))
def authors(): dynasties = Dynasty.get_dynasties() for d in dynasties: d['authors'] = Author.get_authors_by_dynasty(d['DynastyID']) for a in d['authors']: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" a['QuotesNum'] = Quote.get_quotes_num_by_author(a['AuthorID']) hot_authors = Author.get_hot_authors(8) for a in hot_authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" return render_template('authors.html', dynasties=dynasties, hot_authors=hot_authors)
def index(): works = Work.get_works_by_random(4) for work in works: work['Content'] = content_clean(work['Content']) work_images = Work.get_images_by_random(9) reviews = Review.get_reviews_by_random(4) for r in reviews: r['Time'] = time_diff(r['Time']) authors = Author.get_authors_by_random(5) for a in authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" a['QuoteID'] = quote['QuoteID'] if quote else 0 dynasties = Dynasty.get_dynasties() topics = Topic.get_topics(8) return render_template('site/index.html', works=works, work_images=work_images, reviews=reviews, authors=authors, dynasties=dynasties, topics=topics)
def single_dynasty(dynasty_abbr): dynasty = Dynasty.get_dynasty_by_abbr(dynasty_abbr) if not dynasty: abort(404) authors_num = Author.get_authors_num_by_dynasty(dynasty['DynastyID']) authors = Author.get_authors_by_dynasty(dynasty['DynastyID'], 5, True) for a in authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" a['QuoteID'] = quote['QuoteID'] if quote else 0 dynasties = Dynasty.get_dynasties() return render_template('dynasty/single_dynasty.html', dynasty=dynasty, authors=authors, authors_num=authors_num, dynasties=dynasties)
def index(): works = Work.get_works_by_random(4) for work in works: work['Content'] = content_clean(work['Content']) reviews = Review.get_reviews_by_random(4) for r in reviews: r['Time'] = time_diff(r['Time']) authors = Author.get_authors_by_random(5) for a in authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" dynasties = Dynasty.get_dynasties() topics = Topic.get_topics(8) return render_template('index.html', works=works, reviews=reviews, authors=authors, dynasties=dynasties, topics=topics)
def single_dynasty(dynasty_abbr): dynasty = Dynasty.get_dynasty_by_abbr(dynasty_abbr) if not dynasty: abort(404) #dynasty['History'] = markdown2.markdown(dynasty['History']) authors = Author.get_authors_by_dynasty(dynasty['DynastyID'], 5) for a in authors: quote = Quote.get_quote_by_random(a['AuthorID']) a['Quote'] = quote['Quote'] if quote else "" authors_num = Author.get_authors_num_by_dynasty(dynasty['DynastyID']) dynasties = Dynasty.get_dynasties() return render_template('single_dynasty.html', dynasty=dynasty, authors=authors, authors_num=authors_num, dynasties=dynasties)
def delete_quote(quote_id): check_admin() author_id = int(request.args['author_id']) Quote.delete(quote_id) return redirect(url_for('admin_quotes', author_id=author_id))
def admin_quotes(author_id): check_admin() author = Author.get_author_by_id(author_id) quotes = Quote.get_quotes_by_author(author_id) return render_template('admin_quotes.html', quotes=quotes, author=author)