From: Oleg Broytman Date: Fri, 5 Mar 2021 15:57:31 +0000 (+0300) Subject: Feat(web): Use signgle template `list_books` X-Git-Tag: 0.1.6~12 X-Git-Url: https://git.phdru.name/?p=m_librarian.git;a=commitdiff_plain;h=e06c9bf4d4ebce18334d6aa656bc8759241f9219 Feat(web): Use signgle template `list_books` Remove template `books_by_author`. --- diff --git a/m_librarian/web/app.py b/m_librarian/web/app.py index 78878a1..ef5835b 100644 --- a/m_librarian/web/app.py +++ b/m_librarian/web/app.py @@ -70,10 +70,11 @@ def search_authors_post(): @route('/books-by-author//', method='GET') -@cheetah_view('books_by_author.tmpl') +@cheetah_view('list_books.tmpl') def books_by_author(id): use_filters = get_config().getint('filters', 'use_in_books_list', 1) columns = get_config().getlist('columns', 'book', ['title']) + author = Author.get(id) if use_filters: join_expressions = [] join_expressions.append(Book.j.authors) @@ -81,20 +82,16 @@ def books_by_author(id): books = search_books('full', None, {}, join_expressions, orderBy=('series', 'ser_no', 'title', '-date'), use_filters=use_filters) - return { - 'author': Author.get(id), - 'books': books, - 'columns': columns, - } else: - return { - 'author': Author.get(id), - 'books': Book.select( - Book.j.authors & (Author.q.id == id), - orderBy=['series', 'ser_no', 'title'], - ), - 'columns': columns, - } + books = Book.select( + Book.j.authors & (Author.q.id == id), + orderBy=['series', 'ser_no', 'title'], + ) + + return { + 'books_by_author': {author.fullname: list(books)}, + 'columns': columns, + } @route('/static/') diff --git a/m_librarian/web/views/books_by_author.py b/m_librarian/web/views/books_by_author.py deleted file mode 100644 index 664c583..0000000 --- a/m_librarian/web/views/books_by_author.py +++ /dev/null @@ -1,244 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - - - - -################################################## -## DEPENDENCIES -import sys -import os -import os.path -try: - import builtins as builtin -except ImportError: - import __builtin__ as builtin -from os.path import getmtime, exists -import time -import types -from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion -from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple -from Cheetah.Template import Template -from Cheetah.DummyTransaction import * -from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList -from Cheetah.CacheRegion import CacheRegion -import Cheetah.Filters as Filters -import Cheetah.ErrorCatchers as ErrorCatchers -from Cheetah.compat import unicode -import cgi -from m_librarian.translations import translations -from views.layout import layout - -################################################## -## MODULE CONSTANTS -VFFSL=valueFromFrameOrSearchList -VFSL=valueFromSearchList -VFN=valueForName -currentTime=time.time -__CHEETAH_version__ = '3.1.0' -__CHEETAH_versionTuple__ = (3, 1, 0, 'final', 1) -__CHEETAH_genTime__ = 1528755605.645537 -__CHEETAH_genTimestamp__ = 'Tue Jun 12 01:20:05 2018' -__CHEETAH_src__ = 'books_by_author.tmpl' -__CHEETAH_srcLastModified__ = 'Tue Jun 12 01:19:14 2018' -__CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine' - -if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple: - raise AssertionError( - 'This template was compiled with Cheetah version' - ' %s. Templates compiled before version %s must be recompiled.'%( - __CHEETAH_version__, RequiredCheetahVersion)) - -################################################## -## CLASSES - -class books_by_author(layout): - - ################################################## - ## CHEETAH GENERATED METHODS - - - def __init__(self, *args, **KWs): - - super(books_by_author, self).__init__(*args, **KWs) - if not self._CHEETAH__instanceInitialized: - cheetahKWArgs = {} - allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split() - for k,v in KWs.items(): - if k in allowedKWs: cheetahKWArgs[k] = v - self._initCheetahInstance(**cheetahKWArgs) - - - def body(self, **KWS): - - - - ## CHEETAH: generated from #def body at line 6, col 1. - trans = KWS.get("trans") - if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)): - trans = self.transaction # is None unless self.awake() was called - if not trans: - trans = DummyTransaction() - _dummyTrans = True - else: _dummyTrans = False - write = trans.response().write - SL = self._CHEETAH__searchList - _filter = self._CHEETAH__currentFilter - - ######################################## - ## START - generated method body - - write(u'''

''') - _v = VFFSL(SL,"title",True) # u'$title' on line 7, col 5 - if _v is not None: write(_filter(_v, rawExpr=u'$title')) # from line 7, col 5. - write(u''' ''') - _v = VFFSL(SL,"author.fullname",True) # u'$author.fullname' on line 7, col 12 - if _v is not None: write(_filter(_v, rawExpr=u'$author.fullname')) # from line 7, col 12. - write(u'''

- -''') - if VFFSL(SL,"books",True): # generated from line 9, col 1 - write(u'''
- - - - ''') - if False: - _ - _ = VFFSL(SL,"getattr",False)(VFFSL(SL,"translations",True), 'ugettext', None) or VFFSL(SL,"translations.gettext",True) - for column in VFFSL(SL,"columns",True): # generated from line 15, col 3 - write(u''' -''') - write(u''' -''') - series = None - columns1 = VFFSL(SL,"len",False)(VFFSL(SL,"columns",True))+1 - for book in VFFSL(SL,"books",True): # generated from line 21, col 3 - if VFFSL(SL,"book.series",True) != VFFSL(SL,"series",True): # generated from line 22, col 3 - series = VFFSL(SL,"book.series",True) - write(u''' - - -''') - write(u''' - -''') - for column in VFFSL(SL,"columns",True): # generated from line 36, col 3 - if VFFSL(SL,"column",True) in ('ser_no', 'size'): # generated from line 37, col 3 - style = ' style="text-align: right; width: 5ex"' - else: # generated from line 39, col 3 - style = '' - write(u''' ''') - _v = VFN(VFFSL(SL,"cgi",True),"escape",False)(unicode(VFFSL(SL,"getattr",False)(VFFSL(SL,"book",True), VFFSL(SL,"column",True)) or '')) # u"$cgi.escape(unicode($getattr($book, $column) or ''))" on line 42, col 13 - if _v is not None: write(_filter(_v, rawExpr=u"$cgi.escape(unicode($getattr($book, $column) or ''))")) # from line 42, col 13. - write(u''' -''') - write(u''' -''') - write(u''' - - -
 ''') - if False: - _(VFFSL(SL,"column",True)) - _v = VFN(VFFSL(SL,"cgi",True),"escape",False)(VFFSL(SL,"_",False)(VFFSL(SL,"column",True))) # u'$cgi.escape($_($column))' on line 16, col 36 - if _v is not None: write(_filter(_v, rawExpr=u'$cgi.escape($_($column))')) # from line 16, col 36. - write(u'''
-''') - if VFFSL(SL,"book.series",True): # generated from line 26, col 3 - _v = VFN(VFFSL(SL,"cgi",True),"escape",False)(VFFSL(SL,"series",True), 1) # u'$cgi.escape($series, 1)' on line 27, col 1 - if _v is not None: write(_filter(_v, rawExpr=u'$cgi.escape($series, 1)')) # from line 27, col 1. - else: # generated from line 28, col 3 - write(u'''\u0412\u043d\u0435 \u0441\u0435\u0440\u0438\u0439''') - write(u'''
-
-''') - else: # generated from line 51, col 1 - write(u'''

\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u0438\u0433\u0438!

-''') - - ######################################## - ## END - generated method body - - return _dummyTrans and trans.response().getvalue() or "" - - - def writeBody(self, **KWS): - - - - ## CHEETAH: main method generated for this template - trans = KWS.get("trans") - if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)): - trans = self.transaction # is None unless self.awake() was called - if not trans: - trans = DummyTransaction() - _dummyTrans = True - else: _dummyTrans = False - write = trans.response().write - SL = self._CHEETAH__searchList - _filter = self._CHEETAH__currentFilter - - ######################################## - ## START - generated method body - - - ######################################## - ## END - generated method body - - return _dummyTrans and trans.response().getvalue() or "" - - ################################################## - ## CHEETAH GENERATED ATTRIBUTES - - - _CHEETAH__instanceInitialized = False - - _CHEETAH_version = __CHEETAH_version__ - - _CHEETAH_versionTuple = __CHEETAH_versionTuple__ - - _CHEETAH_genTime = __CHEETAH_genTime__ - - _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__ - - _CHEETAH_src = __CHEETAH_src__ - - _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__ - - title = 'Список книг автора' - - _mainCheetahMethod_for_books_by_author = 'writeBody' - -## END CLASS DEFINITION - -if not hasattr(books_by_author, '_initCheetahAttributes'): - templateAPIClass = getattr(books_by_author, - '_CHEETAH_templateClass', - Template) - templateAPIClass._addCheetahPlumbingCodeToClass(books_by_author) - - -# CHEETAH was developed by Tavis Rudd and Mike Orr -# with code, advice and input from many other volunteers. -# For more information visit http://cheetahtemplate.org/ - -################################################## -## if run from command line: -if __name__ == '__main__': - from Cheetah.TemplateCmdLineIface import CmdLineIface - CmdLineIface(templateObj=books_by_author()).run() - - diff --git a/m_librarian/web/views/books_by_author.tmpl b/m_librarian/web/views/books_by_author.tmpl deleted file mode 100644 index 2200913..0000000 --- a/m_librarian/web/views/books_by_author.tmpl +++ /dev/null @@ -1,54 +0,0 @@ -#encoding utf-8 -#import cgi -#from m_librarian.translations import translations -#extends views.layout -#attr $title = 'Список книг автора' -#def body -

$title $author.fullname

- -#if $books -
- - - - #set $_ = $getattr($translations, 'ugettext', None) or $translations.gettext - #for $column in $columns - - #end for - - #set $series = None - #set $columns1 = $len($columns)+1 - #for $book in $books - #if $book.series != $series - #set $series = $book.series - - - - #end if - - - #for $column in $columns - #if $column in ('ser_no', 'size') - #set $style = ' style="text-align: right; width: 5ex"' - #else - #set $style = '' - #end if - $cgi.escape(unicode($getattr($book, $column) or '')) - #end for - - #end for - - - -
 $cgi.escape($_($column))
- #if $book.series -$cgi.escape($series, 1)#slurp - #else -Вне серий#slurp - #end if -
-
-#else -

Не найдено ни одной книги!

-#end if -#end def