From 484a17d49658fc7ad364de00cba58a53d729856f Mon Sep 17 00:00:00 2001
From: substantialnoninfringinguser <substantialnoninfringinguser@gmail.com>
Date: Wed, 10 Jun 2009 06:34:50 +0100
Subject: [PATCH] [svn] * Added non-public field for protecting copyright info
 etc. Field is on all models but needs to be checked for in views. So far,
 only the cave view checks. * Added the Person wiki syntax which looks like
 [[person:John Doe]]

---
 expo/models.py                   | 2 +-
 expo/templatetags/wiki_markup.py | 7 +++++--
 expo/views_caves.py              | 6 +++++-
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/expo/models.py b/expo/models.py
index ea73cd4..180f272 100644
--- a/expo/models.py
+++ b/expo/models.py
@@ -21,7 +21,7 @@ logging.basicConfig(level=logging.DEBUG,
 #This class is for adding fields and methods which all of our models will have.
 class TroggleModel(models.Model):
     new_since_parsing = models.BooleanField(default=False, editable=False)
-    
+    non_public = models.BooleanField(default=False)
     def object_name(self):
         return self._meta.object_name
 
diff --git a/expo/templatetags/wiki_markup.py b/expo/templatetags/wiki_markup.py
index eeacced..adba198 100644
--- a/expo/templatetags/wiki_markup.py
+++ b/expo/templatetags/wiki_markup.py
@@ -47,6 +47,9 @@ def wiki_to_html(value, autoescape=None):
 @register.filter()
 @stringfilter
 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.
+    """
     if autoescape:
         value = conditional_escape(value)
     #deescape doubly escaped characters
@@ -58,10 +61,10 @@ def wiki_to_html_short(value, autoescape=None):
     #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)
     #make people links
+    value = re.sub("\[\[\s*person:(.+)\]\]",r'<a href="%s/person/\1/">\1</a>' % settings.URL_ROOT, value, re.DOTALL)
     
-    
+    #make qm links. this takes a little doing
     qmMatchPattern="\[\[\s*cave:([^\s]+)\s*\s*\QM:(\d*)-(\d*)([ABCDX]?)\]\]"
-    
     def qmrepl(matchobj):
         """
         A function for replacing wikicode qm links with html qm links.
diff --git a/expo/views_caves.py b/expo/views_caves.py
index 10355d6..b2fb170 100644
--- a/expo/views_caves.py
+++ b/expo/views_caves.py
@@ -24,7 +24,11 @@ def caveindex(request):
     return render_response(request,'caveindex.html', {'caves': caves, 'notablecaves':notablecaves})
 
 def cave(request, cave_id='', offical_name=''):
-    return render_response(request,'cave.html', {'cave': getCave(cave_id),})
+    cave=getCave(cave_id)
+    if cave.non_public:
+        return render_response(request,'nonpublic.html', {'instance': cave})
+    else:
+        return render_response(request,'cave.html', {'cave': cave})
     
 def qm(request,cave_id,qm_id,year,grade=None):
     year=int(year)