The 'not found' wiki page now has a working 'create article' link
This commit is contained in:
@@ -195,7 +195,7 @@ def create_random_account(create_account_function):
|
||||
'honor_code' : u'true',
|
||||
'terms_of_service' : u'true',}
|
||||
|
||||
print "Creating account: " , post_override
|
||||
print "Creating random account: " , post_override
|
||||
|
||||
return create_account_function(request, post_override = post_override)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ DEFAULT_FROM_EMAIL = 'registration@mitx.mit.edu'
|
||||
DEFAULT_FEEDBACK_EMAIL = 'feedback@mitx.mit.edu'
|
||||
|
||||
# For testing the login system
|
||||
GENERATE_RANDOM_USER_CREDENTIALS = False
|
||||
GENERATE_RANDOM_USER_CREDENTIALS = True
|
||||
|
||||
WIKI_REQUIRE_LOGIN_EDIT = True
|
||||
WIKI_REQUIRE_LOGIN_VIEW = True
|
||||
|
||||
@@ -104,7 +104,7 @@ class CamelCaseLinks(markdown.inlinepatterns.Pattern):
|
||||
if m.group('escape') == '\\':
|
||||
a = etree.Element('a')#doc.createTextNode(m.group('camelcase'))
|
||||
else :
|
||||
url = m.group('camelcase')
|
||||
url = m.group('camelcase') + "/"
|
||||
#'%s%s%s'% (self.md.wiki_config['base_url'][0], \
|
||||
#m.group('camelcase'), \
|
||||
#self.md.wiki_config['end_url'][0])
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^$', 'simplewiki.views.root_redirect', name='wiki_root'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)/_edit/$', 'simplewiki.views.edit', name='wiki_edit'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)/_create/$', 'simplewiki.views.create', name='wiki_create'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)/_history/([0-9]*)/$', 'simplewiki.views.history', name='wiki_history'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)/_random/$', 'simplewiki.views.random_article', name='wiki_random'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)/_search/articles/$', 'simplewiki.views.search_articles', name='wiki_search_articles'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)/_search/related/$', 'simplewiki.views.search_add_related', name='search_related'),
|
||||
url(r'^(?:view/)?$', 'simplewiki.views.root_redirect', name='wiki_root'),
|
||||
url(r'^view/([a-zA-Z\d/_-]*)/$', 'simplewiki.views.view', name='wiki_view'),
|
||||
url(r'^edit/([a-zA-Z\d/_-]*)/$', 'simplewiki.views.edit', name='wiki_edit'),
|
||||
url(r'^create/([a-zA-Z\d/_-]*)/$', 'simplewiki.views.create', name='wiki_create'),
|
||||
url(r'^history/([a-zA-Z\d/_-]*)/([0-9]*)/$', 'simplewiki.views.history', name='wiki_history'),
|
||||
url(r'^random/$', 'simplewiki.views.random_article', name='wiki_random'),
|
||||
url(r'^search/$', 'simplewiki.views.search_articles', name='wiki_search_articles'),
|
||||
url(r'^list/$', 'simplewiki.views.search_articles', name='wiki_list_articles'), #Just an alias for the search, but you usually don't submit a search term
|
||||
url(r'^search_related/([a-zA-Z\d/_-]*)//$', 'simplewiki.views.search_add_related', name='search_related'),
|
||||
# url(r'^/?([a-zA-Z\d/_-]*)/_related/add/$', 'simplewiki.views.add_related', name='add_related'),
|
||||
# url(r'^/?([a-zA-Z\d/_-]*)/_related/remove/(\d+)$', 'simplewiki.views.remove_related', name='wiki_remove_relation'),
|
||||
# url(r'^/?([a-zA-Z\d/_-]*)/_add_attachment/$', 'simplewiki.views_attachments.add_attachment', name='add_attachment'),
|
||||
# url(r'^/?([a-zA-Z\d/_-]*)/_view_attachment/(.+)?$', 'simplewiki.views_attachments.view_attachment', name='wiki_view_attachment'),
|
||||
url(r'^/?([a-zA-Z\d/_-]*)$', 'simplewiki.views.view', name='wiki_view'),
|
||||
url(r'^(.*)$', 'simplewiki.views.encode_err', name='wiki_encode_err')
|
||||
)
|
||||
|
||||
@@ -236,7 +236,7 @@ def history(request, wiki_url, page=1):
|
||||
|
||||
return render_to_response('simplewiki_history.html', d)
|
||||
|
||||
def search_articles(request, wiki_url):
|
||||
def search_articles(request):
|
||||
if not request.user.is_authenticated():
|
||||
return redirect('/')
|
||||
# blampe: We should check for the presence of other popular django search
|
||||
@@ -247,31 +247,33 @@ def search_articles(request, wiki_url):
|
||||
|
||||
if request.method == 'POST':
|
||||
querystring = request.POST['value'].strip()
|
||||
if querystring:
|
||||
results = Article.objects.all()
|
||||
for queryword in querystring.split():
|
||||
# Basic negation is as fancy as we get right now
|
||||
if queryword[0] == '-' and len(queryword) > 1:
|
||||
results._search = lambda x: results.exclude(x)
|
||||
queryword = queryword[1:]
|
||||
else:
|
||||
results._search = lambda x: results.filter(x)
|
||||
|
||||
results = results._search(Q(current_revision__contents__icontains = queryword) | \
|
||||
Q(title__icontains = queryword))
|
||||
else:
|
||||
# Need to throttle results by splitting them into pages...
|
||||
results = Article.objects.all()
|
||||
else:
|
||||
querystring = ""
|
||||
|
||||
if results.count() == 1:
|
||||
return HttpResponseRedirect(reverse('wiki_view', args=(results[0].get_url(),)))
|
||||
else:
|
||||
d = {'wiki_search_results': results,
|
||||
'wiki_search_query': querystring}
|
||||
d.update(csrf(request))
|
||||
return render_to_response('simplewiki_searchresults.html', d)
|
||||
|
||||
return view(request, wiki_url)
|
||||
if querystring:
|
||||
results = Article.objects.all()
|
||||
for queryword in querystring.split():
|
||||
# Basic negation is as fancy as we get right now
|
||||
if queryword[0] == '-' and len(queryword) > 1:
|
||||
results._search = lambda x: results.exclude(x)
|
||||
queryword = queryword[1:]
|
||||
else:
|
||||
results._search = lambda x: results.filter(x)
|
||||
|
||||
results = results._search(Q(current_revision__contents__icontains = queryword) | \
|
||||
Q(title__icontains = queryword))
|
||||
else:
|
||||
# Need to throttle results by splitting them into pages...
|
||||
results = Article.objects.all()
|
||||
|
||||
if results.count() == 1:
|
||||
return HttpResponseRedirect(reverse('wiki_view', args=(results[0].get_url(),)))
|
||||
else:
|
||||
d = {'wiki_search_results': results,
|
||||
'wiki_search_query': querystring}
|
||||
d.update(csrf(request))
|
||||
return render_to_response('simplewiki_searchresults.html', d)
|
||||
|
||||
|
||||
def search_add_related(request, wiki_url):
|
||||
if not request.user.is_authenticated():
|
||||
@@ -350,7 +352,7 @@ def remove_related(request, wiki_url, related_id):
|
||||
finally:
|
||||
return HttpResponseRedirect(reverse('wiki_view', args=(article.get_url(),)))
|
||||
|
||||
def random_article(request, wiki_url):
|
||||
def random_article(request):
|
||||
if not request.user.is_authenticated():
|
||||
return redirect('/')
|
||||
from random import randint
|
||||
@@ -398,7 +400,7 @@ def fetch_from_url(request, url):
|
||||
|
||||
path = Article.get_url_reverse(url_path, root)
|
||||
if not path:
|
||||
err = not_found(request, '/' + '/'.join(url_path))
|
||||
err = not_found(request, '/'.join([root.slug] + url_path))
|
||||
else:
|
||||
article = path[-1]
|
||||
return (article, path, err)
|
||||
|
||||
Reference in New Issue
Block a user