Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-wiki
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
django-wiki
Commits
30c45e25
Commit
30c45e25
authored
Aug 15, 2013
by
yed_
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
_change revision_ as a class-based view
parent
10a44575
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
17 deletions
+29
-17
wiki/urls.py
+4
-4
wiki/views/article.py
+25
-13
No files found.
wiki/urls.py
View file @
30c45e25
...
...
@@ -28,7 +28,7 @@ class WikiURLPatterns(object):
article_settings_view_class
=
article
.
Settings
article_source_view_class
=
article
.
Source
article_plugin_view_class
=
article
.
Plugin
revision_change_view
=
'wiki.views.article.change_revision'
revision_change_view
=
article
.
ChangeRevisionView
revision_merge_view
=
'wiki.views.article.merge'
search_view_class
=
settings
.
SEARCH_VIEW
...
...
@@ -71,7 +71,7 @@ class WikiURLPatterns(object):
def
get_revision_urls
(
self
):
urlpatterns
=
patterns
(
''
,
# This one doesn't work because it don't know where to redirect after...
url
(
'^_revision/change/(?P<article_id>
\
d+)/(?P<revision_id>
\
d+)/$'
,
self
.
revision_change_view
,
name
=
'change_revision'
),
url
(
'^_revision/change/(?P<article_id>
\
d+)/(?P<revision_id>
\
d+)/$'
,
self
.
revision_change_view
.
as_view
()
,
name
=
'change_revision'
),
url
(
'^_revision/preview/(?P<article_id>
\
d+)/$'
,
self
.
article_preview_view_class
.
as_view
(),
name
=
'preview_revision'
),
url
(
'^_revision/merge/(?P<article_id>
\
d+)/(?P<revision_id>
\
d+)/preview/$'
,
self
.
revision_merge_view
,
name
=
'merge_revision_preview'
,
kwargs
=
{
'preview'
:
True
}),
)
...
...
@@ -88,7 +88,7 @@ class WikiURLPatterns(object):
url
(
'^(?P<article_id>
\
d+)/history/$'
,
self
.
article_history_view_class
.
as_view
(),
name
=
'history'
),
url
(
'^(?P<article_id>
\
d+)/settings/$'
,
self
.
article_settings_view_class
.
as_view
(),
name
=
'settings'
),
url
(
'^(?P<article_id>
\
d+)/source/$'
,
self
.
article_source_view_class
.
as_view
(),
name
=
'source'
),
url
(
'^(?P<article_id>
\
d+)/revision/change/(?P<revision_id>
\
d+)/$'
,
self
.
revision_change_view
,
name
=
'change_revision'
),
url
(
'^(?P<article_id>
\
d+)/revision/change/(?P<revision_id>
\
d+)/$'
,
self
.
revision_change_view
.
as_view
()
,
name
=
'change_revision'
),
url
(
'^(?P<article_id>
\
d+)/revision/merge/(?P<revision_id>
\
d+)/$'
,
self
.
revision_merge_view
,
name
=
'merge_revision'
),
url
(
'^(?P<article_id>
\
d+)/plugin/(?P<slug>
\
w+)/$'
,
self
.
article_plugin_view_class
.
as_view
(),
name
=
'plugin'
),
)
...
...
@@ -106,7 +106,7 @@ class WikiURLPatterns(object):
url
(
'^(?P<path>.+/|)_dir/$'
,
self
.
article_dir_view_class
.
as_view
(),
name
=
'dir'
),
url
(
'^(?P<path>.+/|)_settings/$'
,
self
.
article_settings_view_class
.
as_view
(),
name
=
'settings'
),
url
(
'^(?P<path>.+/|)_source/$'
,
self
.
article_source_view_class
.
as_view
(),
name
=
'source'
),
url
(
'^(?P<path>.+/|)_revision/change/(?P<revision_id>
\
d+)/$'
,
self
.
revision_change_view
,
name
=
'change_revision'
),
url
(
'^(?P<path>.+/|)_revision/change/(?P<revision_id>
\
d+)/$'
,
self
.
revision_change_view
.
as_view
()
,
name
=
'change_revision'
),
url
(
'^(?P<path>.+/|)_revision/merge/(?P<revision_id>
\
d+)/$'
,
self
.
revision_merge_view
,
name
=
'merge_revision'
),
url
(
'^(?P<path>.+/|)_plugin/(?P<slug>
\
w+)/$'
,
self
.
article_plugin_view_class
.
as_view
(),
name
=
'plugin'
),
# This should always go last!
...
...
wiki/views/article.py
View file @
30c45e25
...
...
@@ -8,7 +8,7 @@ from django.shortcuts import render_to_response, redirect, get_object_or_404
from
django.template.context
import
RequestContext
from
django.utils.decorators
import
method_decorator
from
django.utils.translation
import
ugettext
as
_
from
django.views.generic.base
import
TemplateView
,
View
from
django.views.generic.base
import
TemplateView
,
View
,
RedirectView
from
django.views.generic.edit
import
FormView
from
django.views.generic.list
import
ListView
...
...
@@ -576,18 +576,30 @@ class Settings(ArticleMixin, TemplateView):
return
super
(
Settings
,
self
)
.
get_context_data
(
**
kwargs
)
# TODO: Throw in a class-based view
@get_article
(
can_write
=
True
,
not_locked
=
True
)
def
change_revision
(
request
,
article
,
revision_id
=
None
,
urlpath
=
None
):
revision
=
get_object_or_404
(
models
.
ArticleRevision
,
article
=
article
,
id
=
revision_id
)
article
.
current_revision
=
revision
article
.
save
()
messages
.
success
(
request
,
_
(
u"The article
%(title)
s is now set to display revision #
%(revision_number)
d"
)
%
{
'title'
:
revision
.
title
,
'revision_number'
:
revision
.
revision_number
,})
if
urlpath
:
return
redirect
(
"wiki:history"
,
path
=
urlpath
.
path
)
else
:
return
redirect
(
'wiki:history'
,
article_id
=
article
.
id
)
class
ChangeRevisionView
(
RedirectView
):
@method_decorator
(
get_article
(
can_write
=
True
,
not_locked
=
True
))
def
dispatch
(
self
,
request
,
article
,
*
args
,
**
kwargs
):
self
.
article
=
article
self
.
urlpath
=
kwargs
.
pop
(
'kwargs'
,
False
)
self
.
change_revision
()
return
super
(
ChangeRevisionView
,
self
)
.
dispatch
(
request
,
*
args
,
**
kwargs
)
def
get_redirect_url
(
self
,
**
kwargs
):
if
self
.
urlpath
:
return
reverse
(
"wiki:history"
,
kwargs
=
{
'path'
:
self
.
urlpath
.
path
})
else
:
return
reverse
(
'wiki:history'
,
kwargs
=
{
'article_id'
:
self
.
article
.
id
})
def
change_revision
(
self
):
revision
=
get_object_or_404
(
models
.
ArticleRevision
,
article
=
self
.
article
,
id
=
self
.
kwargs
[
'revision_id'
])
self
.
article
.
current_revision
=
revision
self
.
article
.
save
()
messages
.
success
(
self
.
request
,
_
(
u"The article
%(title)
s is now set to display revision #
%(revision_number)
d"
)
%
{
'title'
:
revision
.
title
,
'revision_number'
:
revision
.
revision_number
,
})
class
Preview
(
ArticleMixin
,
TemplateView
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment