]> git.phdru.name Git - m_librarian.git/blob - m_librarian/web/views/list_books.py
Feat(web): В таблицах авторов и книг добавить заголовки колонок
[m_librarian.git] / m_librarian / web / views / list_books.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4
5
6
7 ##################################################
8 ## DEPENDENCIES
9 import sys
10 import os
11 import os.path
12 try:
13     import builtins as builtin
14 except ImportError:
15     import __builtin__ as builtin
16 from os.path import getmtime, exists
17 import time
18 import types
19 from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
20 from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
21 from Cheetah.Template import Template
22 from Cheetah.DummyTransaction import *
23 from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
24 from Cheetah.CacheRegion import CacheRegion
25 import Cheetah.Filters as Filters
26 import Cheetah.ErrorCatchers as ErrorCatchers
27 from Cheetah.compat import unicode
28 import cgi
29 from m_librarian.translations import translations
30 from views.layout import layout
31
32 ##################################################
33 ## MODULE CONSTANTS
34 VFFSL=valueFromFrameOrSearchList
35 VFSL=valueFromSearchList
36 VFN=valueForName
37 currentTime=time.time
38 __CHEETAH_version__ = '3.1.0'
39 __CHEETAH_versionTuple__ = (3, 1, 0, 'final', 1)
40 __CHEETAH_genTime__ = 1528717961.535029
41 __CHEETAH_genTimestamp__ = 'Mon Jun 11 14:52:41 2018'
42 __CHEETAH_src__ = 'list_books.tmpl'
43 __CHEETAH_srcLastModified__ = 'Mon Jun 11 14:52:39 2018'
44 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
45
46 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
47     raise AssertionError(
48       'This template was compiled with Cheetah version'
49       ' %s. Templates compiled before version %s must be recompiled.'%(
50          __CHEETAH_version__, RequiredCheetahVersion))
51
52 ##################################################
53 ## CLASSES
54
55 class list_books(layout):
56
57     ##################################################
58     ## CHEETAH GENERATED METHODS
59
60
61     def __init__(self, *args, **KWs):
62
63         super(list_books, self).__init__(*args, **KWs)
64         if not self._CHEETAH__instanceInitialized:
65             cheetahKWArgs = {}
66             allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
67             for k,v in KWs.items():
68                 if k in allowedKWs: cheetahKWArgs[k] = v
69             self._initCheetahInstance(**cheetahKWArgs)
70         
71
72     def body(self, **KWS):
73
74
75
76         ## CHEETAH: generated from #def body at line 6, col 1.
77         trans = KWS.get("trans")
78         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
79             trans = self.transaction # is None unless self.awake() was called
80         if not trans:
81             trans = DummyTransaction()
82             _dummyTrans = True
83         else: _dummyTrans = False
84         write = trans.response().write
85         SL = self._CHEETAH__searchList
86         _filter = self._CHEETAH__currentFilter
87         
88         ########################################
89         ## START - generated method body
90         
91         write(u'''<h1>''')
92         _v = VFFSL(SL,"title",True) # u'$title' on line 7, col 5
93         if _v is not None: write(_filter(_v, rawExpr=u'$title')) # from line 7, col 5.
94         write(u'''</h1>
95
96 ''')
97         if VFFSL(SL,"books_by_author",True): # generated from line 9, col 1
98             write(u'''  <form action="/download/" method="POST" style="height: 80%">
99   <table style="width: 100%; height: 90%">
100   <tr>
101   <td>&nbsp;</td>
102   ''')
103             if False:
104                 _
105             _ = VFFSL(SL,"getattr",False)(VFFSL(SL,"translations",True), 'ugettext', None) or VFFSL(SL,"translations.gettext",True)
106             for column in VFFSL(SL,"columns",True): # generated from line 15, col 3
107                 write(u'''    <td style="text-align: center">''')
108                 if False:
109                     _(VFFSL(SL,"column",True))
110                 _v = VFN(VFFSL(SL,"cgi",True),"escape",False)(VFFSL(SL,"_",False)(VFFSL(SL,"column",True))) # u'$cgi.escape($_($column))' on line 16, col 36
111                 if _v is not None: write(_filter(_v, rawExpr=u'$cgi.escape($_($column))')) # from line 16, col 36.
112                 write(u'''</td>
113 ''')
114             write(u'''  </tr>
115 ''')
116             series = None
117             columns1 = VFFSL(SL,"len",False)(VFFSL(SL,"columns",True))+1
118             for author in VFFSL(SL,"sorted",False)(VFFSL(SL,"books_by_author",True)): # generated from line 21, col 3
119                 books = VFFSL(SL,"books_by_author",True)[VFFSL(SL,"author",True)]
120                 for book in VFFSL(SL,"books",True): # generated from line 23, col 5
121                     if VFFSL(SL,"book.series",True) != VFFSL(SL,"series",True): # generated from line 24, col 5
122                         series = VFFSL(SL,"book.series",True)
123                         write(u'''  <tr>
124   <td colspan="''')
125                         _v = VFFSL(SL,"columns1",True) # u'$columns1' on line 27, col 16
126                         if _v is not None: write(_filter(_v, rawExpr=u'$columns1')) # from line 27, col 16.
127                         write(u'''"><b>
128   ''')
129                         _v = VFFSL(SL,"author",True) # u'$author' on line 28, col 3
130                         if _v is not None: write(_filter(_v, rawExpr=u'$author')) # from line 28, col 3.
131                         write(u''' \u2014 <i>
132 ''')
133                         if VFFSL(SL,"book.series",True): # generated from line 29, col 3
134                             _v = VFN(VFFSL(SL,"cgi",True),"escape",False)(VFFSL(SL,"series",True), 1) # u'$cgi.escape($series, 1)' on line 30, col 1
135                             if _v is not None: write(_filter(_v, rawExpr=u'$cgi.escape($series, 1)')) # from line 30, col 1.
136                         else: # generated from line 31, col 3
137                             write(u'''\u0412\u043d\u0435 \u0441\u0435\u0440\u0438\u0439''')
138                         write(u'''  </i></b></td>
139   </tr>
140 ''')
141                     write(u'''  <tr>
142   <td><input type=checkbox name=books value="''')
143                     _v = VFFSL(SL,"book.id",True) # u'$book.id' on line 38, col 46
144                     if _v is not None: write(_filter(_v, rawExpr=u'$book.id')) # from line 38, col 46.
145                     write(u'''"></td>
146 ''')
147                     for column in VFFSL(SL,"columns",True): # generated from line 39, col 3
148                         write(u'''  <td>''')
149                         _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 40, col 7
150                         if _v is not None: write(_filter(_v, rawExpr=u"$cgi.escape(unicode($getattr($book, $column) or ''))")) # from line 40, col 7.
151                         write(u'''</td>
152 ''')
153                     write(u'''  </tr>
154 ''')
155             write(u'''  <tr>
156   <td colspan="''')
157             _v = VFFSL(SL,"columns1",True) # u'$columns1' on line 46, col 16
158             if _v is not None: write(_filter(_v, rawExpr=u'$columns1')) # from line 46, col 16.
159             write(u'''" style="text-align: center"><input type="submit" value="\u0421\u043a\u0430\u0447\u0430\u0442\u044c"></td>
160   </tr>
161   </table>
162   </form>
163 ''')
164         else: # generated from line 50, col 1
165             write(u'''  <p>\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u0438\u0433\u0438!</p>
166 ''')
167         
168         ########################################
169         ## END - generated method body
170         
171         return _dummyTrans and trans.response().getvalue() or ""
172         
173
174     def writeBody(self, **KWS):
175
176
177
178         ## CHEETAH: main method generated for this template
179         trans = KWS.get("trans")
180         if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
181             trans = self.transaction # is None unless self.awake() was called
182         if not trans:
183             trans = DummyTransaction()
184             _dummyTrans = True
185         else: _dummyTrans = False
186         write = trans.response().write
187         SL = self._CHEETAH__searchList
188         _filter = self._CHEETAH__currentFilter
189         
190         ########################################
191         ## START - generated method body
192         
193         
194         ########################################
195         ## END - generated method body
196         
197         return _dummyTrans and trans.response().getvalue() or ""
198         
199     ##################################################
200     ## CHEETAH GENERATED ATTRIBUTES
201
202
203     _CHEETAH__instanceInitialized = False
204
205     _CHEETAH_version = __CHEETAH_version__
206
207     _CHEETAH_versionTuple = __CHEETAH_versionTuple__
208
209     _CHEETAH_genTime = __CHEETAH_genTime__
210
211     _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
212
213     _CHEETAH_src = __CHEETAH_src__
214
215     _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
216
217     title = 'Список книг'
218
219     _mainCheetahMethod_for_list_books = 'writeBody'
220
221 ## END CLASS DEFINITION
222
223 if not hasattr(list_books, '_initCheetahAttributes'):
224     templateAPIClass = getattr(list_books,
225                                '_CHEETAH_templateClass',
226                                Template)
227     templateAPIClass._addCheetahPlumbingCodeToClass(list_books)
228
229
230 # CHEETAH was developed by Tavis Rudd and Mike Orr
231 # with code, advice and input from many other volunteers.
232 # For more information visit http://cheetahtemplate.org/
233
234 ##################################################
235 ## if run from command line:
236 if __name__ == '__main__':
237     from Cheetah.TemplateCmdLineIface import CmdLineIface
238     CmdLineIface(templateObj=list_books()).run()
239
240