Guest User

Untitled

a guest
Jul 21st, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.73 KB | None | 0 0
  1. Views.py
  2.  
  3. from docutils.core import publish_parts
  4. import re
  5. import random
  6.  
  7. from webob.exc import HTTPFound
  8. from repoze.bfg.url import model_url
  9.  
  10. from repoze.bfg.security import authenticated_userid
  11.  
  12. from repoze.bfg.view import bfg_view
  13.  
  14. from tutorial.models import Page
  15. from tutorial.models import Wiki
  16. from repoze.catalog.indexes.field import CatalogFieldIndex
  17. from repoze.catalog.indexes.text import CatalogTextIndex
  18. from repoze.catalog.catalog import Catalog
  19. from repoze.catalog.catalog import FileStorageCatalogFactory
  20. from repoze.catalog.catalog import ConnectionManager
  21. from datetime import datetime
  22. from repoze.catalog.document import DocumentMap
  23.  
  24. factory = FileStorageCatalogFactory('catalog.db', 'mycatalog')
  25. manager = ConnectionManager()
  26. catalog = factory(manager)
  27. #catalog =Catalog()
  28.  
  29. # regular expression used to find WikiWords
  30. wikiwords = re.compile(r"\b([A-Z]\w+[A-Z]+\w+)")
  31.  
  32. @bfg_view(for_=Wiki, permission='view')
  33. def view_wiki(context, request):
  34. return HTTPFound(location = model_url(context, request, 'FrontPage'))
  35.  
  36. @bfg_view(for_=Page, renderer='templates/view.pt', permission='view')
  37. def view_page(context, request):
  38. wiki = context.__parent__
  39.  
  40. def check(match):
  41. word = match.group(1)
  42. if word in wiki:
  43. page = wiki[word]
  44. view_url = model_url(page, request)
  45. return '<a href="%s">%s</a>' % (view_url, word)
  46. else:
  47. add_url = request.application_url + '/add_page/' + word
  48. return '<a href="%s">%s</a>' % (add_url, word)
  49.  
  50. content = publish_parts(context.data, writer_name='html')['html_body']
  51. content = wikiwords.sub(check, content)
  52. edit_url = model_url(context, request, 'edit_page')
  53.  
  54. logged_in = authenticated_userid(request)
  55. numdocs, results = catalog.search(data=('mtb', 'mtb'))
  56. indexnumber = context.docid
  57. zz = DocumentMap()
  58. print "%%%%%%%%%%%%%%%%%%%%%%%%%%%% docid is ", indexnumber
  59. print "address_for_docid(docid) is :", zz.address_for_docid(indexnumber)
  60. print "%%%%%%%%%%%%%%%%%%%%%%%%%%%% docid is ", indexnumber
  61. """
  62. print "==================",(numdocs, [ x for x in results ])
  63. print (numdocs, [ x for x in results ])
  64. numdocs1, results1 = catalog.search(data=('srikanth', 'srikanth'))
  65. print "==================",(numdocs1, [ x for x in results1 ])
  66. print (numdocs1, [ x for x in results1 ])
  67. numdocs2, results2 = catalog.search(data=('', ''))
  68. print "==================Empty",(numdocs2, [ x for x in results2 ])
  69. print (numdocs2, [ x for x in results2 ])
  70. numdocs3, results3 = catalog.search()
  71. print "==================catalog.search() ",(numdocs3, [ x for x in results3 ])
  72. print (numdocs3, [ x for x in results3 ])
  73. """
  74. Approved = [x for x in range(100)]
  75.  
  76. return dict(page = context, content = content, edit_url = edit_url,
  77. logged_in = logged_in, Approved =Approved, results=results, catalog = catalog )
  78.  
  79. @bfg_view(for_=Wiki, name='add_page', renderer='templates/edit.pt',
  80. permission='edit')
  81. def add_page(context, request):
  82. name = request.subpath[0]
  83. if 'form.submitted' in request.params:
  84. body = request.params['body']
  85. page = Page(body,authenticated_userid(request))
  86. page.__name__ = name
  87. page.__parent__ = context
  88. context[name] = page
  89. return HTTPFound(location = model_url(page, request))
  90. save_url = model_url(context, request, 'add_page', name)
  91. page = Page('',authenticated_userid(request))
  92. page.__name__ = name
  93. page.__parent__ = context
  94.  
  95.  
  96. logged_in = authenticated_userid(request)
  97.  
  98. return dict(page = page, save_url = save_url, logged_in = logged_in)
  99.  
  100. @bfg_view(for_=Page, name='edit_page', renderer='templates/edit.pt',
  101. permission='edit')
  102. def edit_page(context, request):
  103. logged_in = authenticated_userid(request)
  104. indexnumber = context.docid
  105. if 'form.submitted' in request.params:
  106. context.data = request.params['body']
  107. catalog['data'] = CatalogFieldIndex('data')
  108. catalog['username'] = CatalogTextIndex('username')
  109. super(Page, context).__init__()
  110. context.catalog = Catalog()
  111. context.update_indexes()
  112. context.catalog.document_map = DocumentMap()
  113. catalog.index_doc(indexnumber, context)
  114. #catalog.index_doc(indexnumber, {'data':context.data})
  115. # commit the indexes
  116. manager.commit()
  117. #manager.close()
  118. return HTTPFound(location = model_url(context, request))
  119. print "==========================DocId is ", indexnumber
  120. return dict(page = context,
  121. save_url = model_url(context, request, 'edit_page'),
  122. logged_in = logged_in)
Add Comment
Please, Sign In to add comment