fnp
/
redakcja.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a7540f0
)
#1757: keep calm on slug changes
author
Radek Czajka
<radoslaw.czajka@nowoczesnapolska.org.pl>
Wed, 12 Oct 2011 09:36:09 +0000
(11:36 +0200)
committer
Radek Czajka
<radoslaw.czajka@nowoczesnapolska.org.pl>
Wed, 12 Oct 2011 09:36:09 +0000
(11:36 +0200)
apps/wiki/templates/wiki/document_details_base.html
patch
|
blob
|
history
apps/wiki/urls.py
patch
|
blob
|
history
apps/wiki/views.py
patch
|
blob
|
history
redakcja/static/js/wiki/wikiapi.js
patch
|
blob
|
history
diff --git
a/apps/wiki/templates/wiki/document_details_base.html
b/apps/wiki/templates/wiki/document_details_base.html
index
4a3fa79
..
dbbe7a1
100644
(file)
--- a/
apps/wiki/templates/wiki/document_details_base.html
+++ b/
apps/wiki/templates/wiki/document_details_base.html
@@
-16,7
+16,7
@@
{% block maincontent %}
<div id="document-meta"
{% block maincontent %}
<div id="document-meta"
- data-
book="{{ chunk.book.slug }}" data-chunk="{{ chunk.slug
}}" style="display:none">
+ data-
chunk-id="{{ chunk.pk
}}" style="display:none">
<span data-key="gallery">{{ chunk.book.gallery }}</span>
<span data-key="gallery-start">{% if chunk.gallery_start %}{{ chunk.gallery_start }}{% endif %}</span>
<span data-key="gallery">{{ chunk.book.gallery }}</span>
<span data-key="gallery-start">{% if chunk.gallery_start %}{{ chunk.gallery_start }}{% endif %}</span>
diff --git
a/apps/wiki/urls.py
b/apps/wiki/urls.py
index
dc866cd
..
211bb3a
100644
(file)
--- a/
apps/wiki/urls.py
+++ b/
apps/wiki/urls.py
@@
-12,20
+12,20
@@
urlpatterns = patterns('wiki.views',
url(r'^gallery/(?P<directory>[^/]+)/$',
'gallery', name="wiki_gallery"),
url(r'^gallery/(?P<directory>[^/]+)/$',
'gallery', name="wiki_gallery"),
- url(r'^history/(?P<
slug>[^/]+)/(?:(?P<chunk>[^/]+)/)?
$',
+ url(r'^history/(?P<
chunk_id>\d+)/
$',
'history', name="wiki_history"),
'history', name="wiki_history"),
- url(r'^rev/(?P<
slug>[^/]+)/(?:(?P<chunk>[^/]+)/)?
$',
+ url(r'^rev/(?P<
chunk_id>\d+)/
$',
'revision', name="wiki_revision"),
'revision', name="wiki_revision"),
- url(r'^text/(?P<
slug>[^/]+)/(?:(?P<chunk>[^/]+)/)?
$',
+ url(r'^text/(?P<
chunk_id>\d+)/
$',
'text', name="wiki_text"),
'text', name="wiki_text"),
- url(r'^revert/(?P<
slug>[^/]+)/(?:(?P<chunk>[^/]+)/)?
$',
+ url(r'^revert/(?P<
chunk_id>\d+)/
$',
'revert', name='wiki_revert'),
'revert', name='wiki_revert'),
- url(r'^diff/(?P<
slug>[^/]+)/(?:(?P<chunk>[^/]+)/)?
$', 'diff', name="wiki_diff"),
- url(r'^pubmark/(?P<
slug>[^/]+)/(?:(?P<chunk>[^/]+)/)?
$', 'pubmark', name="wiki_pubmark"),
+ url(r'^diff/(?P<
chunk_id>\d+)/
$', 'diff', name="wiki_diff"),
+ url(r'^pubmark/(?P<
chunk_id>\d+)/
$', 'pubmark', name="wiki_pubmark"),
url(r'^themes$', 'themes', name="themes"),
)
url(r'^themes$', 'themes', name="themes"),
)
diff --git
a/apps/wiki/views.py
b/apps/wiki/views.py
index
dc2ec6f
..
15fc462
100644
(file)
--- a/
apps/wiki/views.py
+++ b/
apps/wiki/views.py
@@
-12,6
+12,7
@@
from django.utils.encoding import smart_unicode
from django.utils.translation import ugettext as _
from django.views.decorators.http import require_POST, require_GET
from django.views.generic.simple import direct_to_template
from django.utils.translation import ugettext as _
from django.views.decorators.http import require_POST, require_GET
from django.views.generic.simple import direct_to_template
+from django.shortcuts import get_object_or_404
from catalogue.models import Book, Chunk
import nice_diff
from catalogue.models import Book, Chunk
import nice_diff
@@
-99,11
+100,8
@@
def editor_readonly(request, slug, chunk=None, template_name='wiki/document_deta
@never_cache
@decorator_from_middleware(GZipMiddleware)
@never_cache
@decorator_from_middleware(GZipMiddleware)
-def text(request, slug, chunk=None):
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
+def text(request, chunk_id):
+ doc = get_object_or_404(Chunk, pk=chunk_id)
if request.method == 'POST':
form = forms.DocumentTextSaveForm(request.POST, prefix="textsave")
if request.method == 'POST':
form = forms.DocumentTextSaveForm(request.POST, prefix="textsave")
@@
-156,13
+154,10
@@
def text(request, slug, chunk=None):
@never_cache
@require_POST
@never_cache
@require_POST
-def revert(request,
slug, chunk=None
):
+def revert(request,
chunk_id
):
form = forms.DocumentTextRevertForm(request.POST, prefix="textrevert")
if form.is_valid():
form = forms.DocumentTextRevertForm(request.POST, prefix="textrevert")
if form.is_valid():
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
+ doc = get_object_or_404(Chunk, pk=chunk_id)
revision = form.cleaned_data['revision']
revision = form.cleaned_data['revision']
@@
-175,7
+170,7
@@
def revert(request, slug, chunk=None):
author = None
before = doc.revision()
author = None
before = doc.revision()
- logger.info("Reverting %s to %s",
slug
, revision)
+ logger.info("Reverting %s to %s",
chunk_id
, revision)
doc.at_revision(revision).revert(author=author, description=comment)
return JSONResponse({
doc.at_revision(revision).revert(author=author, description=comment)
return JSONResponse({
@@
-215,7
+210,7
@@
def gallery(request, directory):
@never_cache
@never_cache
-def diff(request,
slug, chunk=None
):
+def diff(request,
chunk_id
):
revA = int(request.GET.get('from', 0))
revB = int(request.GET.get('to', 0))
revA = int(request.GET.get('from', 0))
revB = int(request.GET.get('to', 0))
@@
-225,10
+220,7
@@
def diff(request, slug, chunk=None):
if revB == 0:
revB = None
if revB == 0:
revB = None
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
+ doc = get_object_or_404(Chunk, pk=chunk_id)
# allow diff from the beginning
if revA:
docA = doc.at_revision(revA).materialize()
# allow diff from the beginning
if revA:
docA = doc.at_revision(revA).materialize()
@@
-241,21
+233,15
@@
def diff(request, slug, chunk=None):
@never_cache
@never_cache
-def revision(request, slug, chunk=None):
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
+def revision(request, chunk_id):
+ doc = get_object_or_404(Chunk, pk=chunk_id)
return http.HttpResponse(str(doc.revision()))
@never_cache
return http.HttpResponse(str(doc.revision()))
@never_cache
-def history(request,
slug, chunk=None
):
+def history(request,
chunk_id
):
# TODO: pagination
# TODO: pagination
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
+ doc = get_object_or_404(Chunk, pk=chunk_id)
changes = []
for change in doc.history().order_by('-created_at'):
changes = []
for change in doc.history().order_by('-created_at'):
@@
-272,13
+258,10
@@
def history(request, slug, chunk=None):
@require_POST
@ajax_require_permission('catalogue.can_pubmark')
@require_POST
@ajax_require_permission('catalogue.can_pubmark')
-def pubmark(request,
slug, chunk=None
):
+def pubmark(request,
chunk_id
):
form = forms.DocumentPubmarkForm(request.POST, prefix="pubmark")
if form.is_valid():
form = forms.DocumentPubmarkForm(request.POST, prefix="pubmark")
if form.is_valid():
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
+ doc = get_object_or_404(Chunk, pk=chunk_id)
revision = form.cleaned_data['revision']
publishable = form.cleaned_data['publishable']
revision = form.cleaned_data['revision']
publishable = form.cleaned_data['publishable']
diff --git
a/redakcja/static/js/wiki/wikiapi.js
b/redakcja/static/js/wiki/wikiapi.js
index
2a02891
..
4949f6b
100644
(file)
--- a/
redakcja/static/js/wiki/wikiapi.js
+++ b/
redakcja/static/js/wiki/wikiapi.js
@@
-59,7
+59,7
@@
*/
function WikiDocument(element_id) {
var meta = $('#' + element_id);
*/
function WikiDocument(element_id) {
var meta = $('#' + element_id);
- this.id = meta.attr('data-
book') + '/' + meta.attr('data-chunk
');
+ this.id = meta.attr('data-
chunk-id
');
this.revision = $("*[data-key='revision']", meta).text();
this.readonly = !!$("*[data-key='readonly']", meta).text();
this.revision = $("*[data-key='revision']", meta).text();
this.readonly = !!$("*[data-key='readonly']", meta).text();