forked from expo/troggle
[svn] * Fix bugs that were causing broken wikilinks. *Add edit link to mugshots. *make admin url trailing-slash tolerant
This commit is contained in:
parent
5946e159bc
commit
9b44731c33
@ -38,7 +38,8 @@ class TroggleImageModel(ImageModel):
|
|||||||
return self._meta.object_name
|
return self._meta.object_name
|
||||||
|
|
||||||
def get_admin_url(self):
|
def get_admin_url(self):
|
||||||
return settings.URL_ROOT + "/admin/expo/" + self.object_name.lower() + "/" + str(self.pk)
|
return urlparse.urljoin(settings.URL_ROOT, "/admin/expo/" + self.object_name().lower() + "/" + str(self.pk))
|
||||||
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
@ -4,9 +4,11 @@ from django.template.defaultfilters import stringfilter
|
|||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from expo.models import QM
|
from expo.models import QM
|
||||||
import re
|
import re, urlparse
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
if settings.URL_ROOT.endswith('/'):
|
||||||
|
url_root=settings.URL_ROOT[:-1]
|
||||||
|
|
||||||
def wiki_list(line, listdepth):
|
def wiki_list(line, listdepth):
|
||||||
l = ""
|
l = ""
|
||||||
@ -48,7 +50,9 @@ def wiki_to_html(value, autoescape=None):
|
|||||||
@stringfilter
|
@stringfilter
|
||||||
def wiki_to_html_short(value, autoescape=None):
|
def wiki_to_html_short(value, autoescape=None):
|
||||||
"""
|
"""
|
||||||
This is the tag which turns wiki syntax into html. Aaron wonders why it is called "short." It is long, and it operates on long things.
|
This is the tag which turns wiki syntax into html. Aaron wonders
|
||||||
|
why it is called "short." It is long, and it operates on long things.
|
||||||
|
It even has a long name itself.
|
||||||
"""
|
"""
|
||||||
if autoescape:
|
if autoescape:
|
||||||
value = conditional_escape(value)
|
value = conditional_escape(value)
|
||||||
@ -59,9 +63,9 @@ def wiki_to_html_short(value, autoescape=None):
|
|||||||
value = re.sub("'''([^']+)'''", r"<b>\1</b>", value, re.DOTALL)
|
value = re.sub("'''([^']+)'''", r"<b>\1</b>", value, re.DOTALL)
|
||||||
value = re.sub("''([^']+)''", r"<i>\1</i>", value, re.DOTALL)
|
value = re.sub("''([^']+)''", r"<i>\1</i>", value, re.DOTALL)
|
||||||
#make cave links
|
#make cave links
|
||||||
value = re.sub("\[\[\s*cave:([^\s]+)\s*\s*\]\]", r'<a href="%s/cave/\1/">\1</a>' % settings.URL_ROOT, value, re.DOTALL)
|
value = re.sub("\[\[\s*cave:([^\s]+)\s*\s*\]\]", r'<a href="%s/cave/\1/">\1</a>' % url_root, value, re.DOTALL)
|
||||||
#make people links
|
#make people links
|
||||||
value = re.sub("\[\[\s*person:(.+)\]\]",r'<a href="%s/person/\1/">\1</a>' % settings.URL_ROOT, value, re.DOTALL)
|
value = re.sub("\[\[\s*person:(.+)\]\]",r'<a href="%s/person/\1/">\1</a>' % url_root, value, re.DOTALL)
|
||||||
|
|
||||||
#make qm links. this takes a little doing
|
#make qm links. this takes a little doing
|
||||||
qmMatchPattern="\[\[\s*cave:([^\s]+)\s*\s*\QM:(\d*)-(\d*)([ABCDX]?)\]\]"
|
qmMatchPattern="\[\[\s*cave:([^\s]+)\s*\s*\QM:(\d*)-(\d*)([ABCDX]?)\]\]"
|
||||||
@ -77,7 +81,7 @@ def wiki_to_html_short(value, autoescape=None):
|
|||||||
grade=matchobj.groups()[3]
|
grade=matchobj.groups()[3]
|
||||||
else:
|
else:
|
||||||
grade=''
|
grade=''
|
||||||
qmdict={'urlroot':settings.URL_ROOT,'cave':matchobj.groups()[0],'year':matchobj.groups()[1],'number':matchobj.groups()[2],'grade':grade}
|
qmdict={'urlroot':url_root,'cave':matchobj.groups()[0],'year':matchobj.groups()[1],'number':matchobj.groups()[2],'grade':grade}
|
||||||
try:
|
try:
|
||||||
qm=QM.objects.get(found_by__cave__kataster_number=qmdict['cave'],found_by__date__year=qmdict['year'], number=qmdict['number'])
|
qm=QM.objects.get(found_by__cave__kataster_number=qmdict['cave'],found_by__date__year=qmdict['year'], number=qmdict['number'])
|
||||||
url=r'<a href=' + str(qm.get_absolute_url()) +'>' + str(qm) + '</a>'
|
url=r'<a href=' + str(qm.get_absolute_url()) +'>' + str(qm) + '</a>'
|
||||||
|
@ -25,7 +25,7 @@ def caveindex(request):
|
|||||||
|
|
||||||
def cave(request, cave_id='', offical_name=''):
|
def cave(request, cave_id='', offical_name=''):
|
||||||
cave=getCave(cave_id)
|
cave=getCave(cave_id)
|
||||||
if cave.non_public:
|
if cave.non_public and not request.user.is_authenticated():
|
||||||
return render_response(request,'nonpublic.html', {'instance': cave})
|
return render_response(request,'nonpublic.html', {'instance': cave})
|
||||||
else:
|
else:
|
||||||
return render_response(request,'cave.html', {'cave': cave})
|
return render_response(request,'cave.html', {'cave': cave})
|
||||||
|
@ -98,8 +98,12 @@ def newQMlink(logbookentry):
|
|||||||
return settings.URL_ROOT + r'/admin/expo/qm/add/?' + r'found_by=' + str(logbookentry.pk) +'&number=' + str(nextQMnumber)
|
return settings.URL_ROOT + r'/admin/expo/qm/add/?' + r'found_by=' + str(logbookentry.pk) +'&number=' + str(nextQMnumber)
|
||||||
|
|
||||||
def logbookentry(request, date, slug):
|
def logbookentry(request, date, slug):
|
||||||
logbookentry = LogbookEntry.objects.get(date=date, slug=slug)
|
logbookentry = LogbookEntry.objects.filter(date=date, slug=slug)
|
||||||
|
|
||||||
|
if len(logbookentry)>1:
|
||||||
|
return render_response(request, 'object_list.html',{'object_list':logbookentry})
|
||||||
|
else:
|
||||||
|
logbookentry=logbookentry[0]
|
||||||
return render_response(request, 'logbookentry.html', {'logbookentry': logbookentry, 'newQMlink':newQMlink(logbookentry)})
|
return render_response(request, 'logbookentry.html', {'logbookentry': logbookentry, 'newQMlink':newQMlink(logbookentry)})
|
||||||
|
|
||||||
def logbookSearch(request, extra):
|
def logbookSearch(request, extra):
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load link %}
|
{% load link %}
|
||||||
{% block title %}Troggle: all {{object_list.1.meta.object_name}} objects{%endblock%}
|
{% block title %}Troggle: {{object_list.1.meta.object_name}} objects{%endblock%}
|
||||||
|
|
||||||
{% block contentheader %}
|
{% block contentheader %}
|
||||||
<h1>All {{object_list.0.object_name}} objects</h1>
|
<h1>{{object_list.0.object_name}} objects</h1>
|
||||||
{% endblock contentheader %}
|
{% endblock contentheader %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -18,7 +18,8 @@
|
|||||||
{% if pic.is_mugshot %}
|
{% if pic.is_mugshot %}
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<p> <img src="{{ pic.thumbnail_image.url }}" class="thumbnail" />
|
<p> <img src="{{ pic.thumbnail_image.url }}" class="thumbnail" />
|
||||||
<p> {{ pic.caption }}
|
<p> {{ pic.caption }}</p>
|
||||||
|
<p> <a href="{{ pic.get_admin_url }}">edit {{pic}}</a> </>
|
||||||
</p>
|
</p>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
2
urls.py
2
urls.py
@ -67,7 +67,7 @@ urlpatterns = patterns('',
|
|||||||
url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"),
|
url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"),
|
||||||
|
|
||||||
(r'^admin/doc/?', include('django.contrib.admindocs.urls')),
|
(r'^admin/doc/?', include('django.contrib.admindocs.urls')),
|
||||||
(r'^admin/(.*)', admin.site.root),
|
(r'^admin/(.*)/?', admin.site.root),
|
||||||
#url(r'^admin/', include(admin.site.urls),name="admin"),
|
#url(r'^admin/', include(admin.site.urls),name="admin"),
|
||||||
|
|
||||||
(r'^accounts/', include('registration.urls')),
|
(r'^accounts/', include('registration.urls')),
|
||||||
|
Loading…
Reference in New Issue
Block a user