def navigation(environ,start_response): db, dbname, path_components, q = wsgi_response(environ,start_response) path = os.getcwd().replace('functions/', '') obj = db[path_components] print >> sys.stderr, "OBJ", obj.philo_type if obj.philo_type == 'doc' and q['doc_page']: page_text = f.get_page_text(db, obj.philo_id[0], q['doc_page'], obj.filename, path, q['byte']) if page_text: doc_id = str(obj.philo_id[0]) + ' %' prev_page, next_page = get_neighboring_pages(db, doc_id, q['doc_page']) return render_template(obj=obj,page_text=page_text,prev_page=prev_page,next_page=next_page, dbname=dbname,current_page=q['doc_page'],f=f,navigate_doc=navigate_doc, db=db,q=q,template_name='pages.mako') else: path_components += ['2'] obj = db[path_components] if has_pages(obj, db): page_num = get_page_num(obj,db) if page_num: page_text = f.get_page_text(db, obj.philo_id[0], page_num, obj.filename, path, '') if page_text: ## In case the page does not contain any text doc_id = str(obj.philo_id[0]) + ' %' prev_page, next_page = get_neighboring_pages(db, doc_id, page_num) return render_template(obj=obj,page_text=page_text,prev_page=prev_page,next_page=next_page, dbname=dbname,current_page=page_num,f=f,navigate_doc=navigate_doc, db=db,q=q,template_name='pages.mako') if obj.philo_type == 'doc': return render_template(obj=obj,philo_id=obj.philo_id[0],dbname=dbname,f=f,navigate_doc=navigate_doc, db=db,q=q,template_name='toc.mako') obj_text = f.get_text_obj(obj, path, query_args=q['byte']) #obj_text = obj_pager(db, obj, obj_text) ## this creates virtual pages prev = ' '.join(obj.prev.split()[:7]) next = ' '.join(obj.next.split()[:7]) return render_template(obj=obj,philo_id=obj.philo_id[0],dbname=dbname,f=f,navigate_doc=navigate_doc, db=db,q=q,obj_text=obj_text,prev=prev,next=next,template_name='object.mako')
def pagination(environ,start_response): db, dbname, path_components, q = wsgi_response(environ,start_response) path = os.getcwd().replace('functions/', '') doc_page = q['doc_page'] philo_id = q['philo_id'] filename = q['filename'] bytes = q['byte'] page_text = f.get_page_text(db, philo_id, doc_page, filename, path, bytes) prev_page, next_page = get_neighboring_pages(db, philo_id, doc_page) return render_template(page_text=page_text,db=db,dbname=dbname,current_page=doc_page, prev_page=prev_page,next_page=next_page,pagination=pagination, filename=filename, philo_id=philo_id,bytes=bytes,template_name="doc_page.mako")
#!/usr/bin/env python import os import sys sys.path.append('..') from functions.wsgi_handler import parse_cgi from reports import get_neighboring_pages, render_template from mako.template import Template import functions as f import json if __name__ == "__main__": environ = os.environ environ["SCRIPT_FILENAME"] = environ["SCRIPT_FILENAME"].replace('scripts/go_to_page.py', '') path = os.getcwd().replace('scripts', '') db, path_components, q = parse_cgi(environ) doc_id = str(q['philo_id'].split()[0]) + ' %' philo_id = doc_id + " %" c = db.dbh.cursor() c.execute('select filename from toms where philo_type="doc" and philo_id like ?', (philo_id,)) filename = c.fetchone()[0] page_text = f.get_page_text(db, doc_id, q['go_to_page'], filename, path, q['byte']) prev_page, next_page = get_neighboring_pages(db, doc_id, q['go_to_page']) print "Content-Type: text/html\n" print json.dumps([prev_page, next_page, q['go_to_page'], page_text.encode('utf-8', 'ignore')])