[schema reorg, use "wiki/" as prefix in log.what raph.levien@gmail.com**20070106213827] { hunk ./app/models.py 18 + location = models.CharField(maxlength=50, blank=True, null=True) hunk ./app/models.py 27 - + hunk ./app/models.py 33 -class WikiLog(models.Model): +class Log(models.Model): hunk ./app/models.py 35 - wiki_data = models.TextField(maxlength=2550) + ldata = models.TextField(maxlength=1<<24 - 1) hunk ./app/models.py 38 + msg = models.TextField(maxlength=65535) + class Meta: + get_latest_by = 'id' + hunk ./app/templates/history.html 1 +{% load ghmarkup %} hunk ./app/templates/history.html 11 -{% for entry in wikilog %} -
  • {{ entry.id }} {{ entry.mtime }} {{ entry.what }} {{ entry.muser }}
  • +{% for entry in log %} +
  • {{ entry.id }} {{ entry.mtime }} {{ entry.what|ghlink }} + ... {% filter ghlink %}user/{{ entry.muser }}{% endfilter %}
  • hunk ./app/templates/index.html 8 -{% for entry in wikilog %} +{% for entry in log %} hunk ./app/templates/missing.html 15 -Add page +Add page hunk ./app/templates/recent.html 11 -{% for entry in wikilog %} -
  • {{ entry.id }} {{ entry.mtime }} {{entry.what|ghlink}} ... {% filter ghlink %}user/{{ entry.muser }}{% endfilter %}
  • +{% for entry in log %} +
  • {{ entry.id }} {{ entry.mtime }} {{entry.what|ghlink}} + ... {% filter ghlink %}user/{{ entry.muser }}{% endfilter %}
  • hunk ./app/templates/wiki.html 6 -

    -{{ wikilog.wiki_data|ghmarkup }} -

    hunk ./app/templates/wiki.html 7 -

    Last edited: {{ wikilog.mtime }} by {{ wikilog.muser }}

    +{{ log.ldata|ghmarkup }} + +

    Last edited: {{ log.mtime }} by {% filter ghlink %}user/{{ entry.muser }}{% endfilter %}

    hunk ./app/templates/wiki.html 12 -Edit -History +Edit +History hunk ./app/templatetags/ghmarkup.py 3 -from ghestalt.app.models import WikiLog, UserProfile +from ghestalt.app.models import Log, UserProfile +from ghestalt.app.log_what import wikiwhat hunk ./app/templatetags/ghmarkup.py 27 - if page in ('RecentChanges',): return True - if isinstance(page, unicode): page = page.encode('utf-8') - if WikiLog.objects.filter(what=page).count()>0: + what = wikiwhat(page) + if what in ('wiki/RecentChanges',): return True + if isinstance(what, unicode): what = what.encode('utf-8') + if Log.objects.filter(what=what).count()>0: hunk ./app/templatetags/ghmarkup.py 58 - if re.match(r'[a-z\+]*://', link): + if re.match(r'[a-z0-9\.\+]*://', link): hunk ./app/templatetags/ghmarkup.py 71 - body = link + if re.match('wiki/', link): + body = link[5:] + else: + body = link hunk ./app/templatetags/ghmarkup.py 78 - if page.find('/') >= 0: - pref = '' - else: - pref = '/wiki/' - return settings.SITE_BASE + pref + urlquoteplus(page) + return settings.SITE_BASE + '/' + urlquote(wikiwhat(page)) hunk ./app/views.py 7 -from ghestalt.app.models import WikiLog +from ghestalt.app.models import Log hunk ./app/views.py 9 +from ghestalt.app.log_what import wikiwhat hunk ./app/views.py 12 + what = wikiwhat(page) hunk ./app/views.py 14 - wikilog = WikiLog.objects.order_by('-mtime').filter(what=page)[0] + log = Log.objects.filter(what=what).latest() + print `log` hunk ./app/views.py 17 - return render_to_response('missing.html',{'title':page}, + return render_to_response('missing.html',{'title':page, 'what':what}, hunk ./app/views.py 19 - return render_to_response('wiki.html',{'title':page, 'wikilog':wikilog}, + return render_to_response('wiki.html',{'title':page, 'log':log}, hunk ./app/views.py 24 - wikilog = WikiLog.objects.get(id=idnum) - except WikiLog.DoesNotExist: + log = Log.objects.get(id=idnum) + except Log.DoesNotExist: hunk ./app/views.py 27 - return render_to_response('wiki.html',{'title':wikilog.what, 'wikilog':wikilog}, + return render_to_response('wiki.html',{'title':log.what, 'log':log}, hunk ./app/views.py 31 - wikilog = WikiLog.objects.distinct().values('what') - return render_to_response('index.html',{'wikilog':wikilog}, + log = Log.objects.distinct().values('what') + return render_to_response('index.html',{'log':log}, hunk ./app/views.py 36 - wikilog = WikiLog.objects.filter(what=page).order_by('-mtime')[:5] - return render_to_response('history.html',{'title':page,'wikilog':wikilog}, + log = Log.objects.filter(what=wikiwhat(page)).order_by('-mtime')[:5] + return render_to_response('history.html',{'title':page,'log':log}, hunk ./app/views.py 41 - wikilog = WikiLog.objects.all().order_by('-mtime')[:5] - return render_to_response('recent.html',{'wikilog':wikilog}, + log = Log.objects.all().order_by('-id')[:50] + return render_to_response('recent.html',{'log':log}, hunk ./app/views.py 45 -class WikiLogForm(Form): - wiki_data = CharField(widget=Textarea(attrs={'rows': 24, 'cols': 80})) +class LogForm(Form): + ldata = CharField(widget=Textarea(attrs={'rows': 24, 'cols': 80}), label="Text") hunk ./app/views.py 51 + what = wikiwhat(page) hunk ./app/views.py 53 - form = WikiLogForm(request.POST) + form = LogForm(request.POST) hunk ./app/views.py 60 - return render_to_response('edit.html',{'form': form, 'title':page, 'mtime':'now', 'muser':'me', 'preview': form.clean_data.get('wiki_data')}, + return render_to_response('edit.html',{'form': form, 'title':page, 'mtime':'now', 'muser':'me', 'preview': form.clean_data.get('ldata')}, hunk ./app/views.py 62 - wikilog = WikiLog(what=page, wiki_data=form.clean_data.get('wiki_data').encode('utf-8'), muser=user.username) - wikilog.save() - return HttpResponseRedirect('/wiki/%s' % (page)) + log = Log(what=what, ldata=form.clean_data.get('ldata').encode('utf-8'), muser=user.username) + log.save() + return HttpResponseRedirect('/' + what) hunk ./app/views.py 67 - wikilog = WikiLog.objects.order_by('-mtime').filter(what=page)[0] - form = WikiLogForm({'wiki_data':wikilog.wiki_data}) + log = Log.objects.filter(what=what).latest() + form = LogForm({'ldata':log.ldata}) hunk ./app/views.py 70 - form = WikiLogForm() + form = LogForm() hunk ./urls.py 14 - (r'^wiki/history/(?P.+)$', 'wiki_showhistory'), - (r'^wiki/edit/(?P.+)$', 'wiki_editpage'), - (r'^wiki/(?P.+)$', 'wiki_showpage'), + (r'^history/(?P.+)$', 'wiki_showhistory'), + (r'^edit/(?P.+)$', 'wiki_editpage'), + (r'^(?P(wiki|bib)/.+)$', 'wiki_showpage'), }