aboutsummaryrefslogtreecommitdiffstats
path: root/bn_django/git_wiki/views.py
diff options
context:
space:
mode:
authorbnewbold <bnewbold@manus.(none)>2007-02-22 00:19:06 -0800
committerbnewbold <bnewbold@manus.(none)>2007-02-22 00:19:06 -0800
commitfde421c01eb374054d2e442808587810fdfed5ce (patch)
tree26254620307dac3cddd59dcaceab658e1b37ea59 /bn_django/git_wiki/views.py
parentc620485c01ca577980792b24e9e2fa8c7e5eed31 (diff)
downloadbnewnet-fde421c01eb374054d2e442808587810fdfed5ce.tar.gz
bnewnet-fde421c01eb374054d2e442808587810fdfed5ce.zip
major git_wiki progress + fixed syncdb problems (model attributes missing)
Diffstat (limited to 'bn_django/git_wiki/views.py')
-rw-r--r--bn_django/git_wiki/views.py44
1 files changed, 33 insertions, 11 deletions
diff --git a/bn_django/git_wiki/views.py b/bn_django/git_wiki/views.py
index 1212f44..2e66061 100644
--- a/bn_django/git_wiki/views.py
+++ b/bn_django/git_wiki/views.py
@@ -1,7 +1,7 @@
from django import forms, http, template
from django.contrib.auth.decorators import login_required
from django.shortcuts import get_object_or_404, render_to_response
-from django.http import HttpResponse
+from django.http import HttpResponse, Http404
import os, commands
@@ -11,23 +11,36 @@ from settings import *
# Create your views here.
def frontpage(request):
- t = fromslug('/')
+ t = fromslug('')
t.update()
return render_to_response('git_wiki/frontpage.html', \
dict(shortlog=shortlog(), tree=t))
-def tree(request, reqslug):
- t = fromslug(reqslug)
- if t.type == 'blob':
- return item(request, reqslug)
+def tree(request, reqslug, tree=None):
+ if not tree:
+ t = fromslug(reqslug)
+ if not t:
+ raise Http404
+ if t.type == 'blob':
+ return item(request, reqslug, blob=t)
+ else:
+ t = tree
+
t.update()
+ (heads,tags) = reposcan()
return render_to_response('git_wiki/tree.html',
- dict(shortlog=shortlog(tree=t), tree=t))
+ dict(shortlog=shortlog(tree=t), tree=t,
+ heads=heads,tags=tags))
-def item(request, reqslug):
- i = fromslug(reqslug)
- if i.type == 'tree':
- return tree(request, reqslug)
+def item(request, reqslug, blob=None):
+ if not blob:
+ i = fromslug(reqslug)
+ if not i:
+ raise Http404
+ if i.type == 'tree':
+ return tree(request, reqslug)
+ else:
+ i = blob
i.update()
return render_to_response('git_wiki/item.html',
dict(item=i))
@@ -37,3 +50,12 @@ def olditem(request, hash):
i.update()
return render_to_response('git_browse/olditem.html',
dict(item=i))
+
+def view_commit(request, hash):
+ (heads, tags) = reposcan()
+ c = Commit(id=hash)
+ c.update()
+
+ return render_to_response('git_wiki/commit.html',
+ dict(heads=heads, tags=tags,
+ commit=c))