Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
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
edx
edx-platform
Commits
614f1566
Commit
614f1566
authored
Jan 24, 2012
by
Bridger Maxwell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added UI for locking article. Did more testing/bug fixes on deletion. Seems stable.
--HG-- branch : bridgerwiki
parent
056924ad
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
12 deletions
+23
-12
simplewiki/models.py
+15
-6
simplewiki/views.py
+8
-6
No files found.
simplewiki/models.py
View file @
614f1566
...
...
@@ -85,6 +85,8 @@ class Article(models.Model):
def
can_read
(
self
,
user
):
""" Check read permissions and return True/False."""
if
user
.
is_superuser
:
return
True
if
self
.
permissions
:
perms
=
self
.
permissions
.
can_read
.
all
()
return
perms
.
count
()
==
0
or
(
user
in
perms
)
...
...
@@ -93,6 +95,8 @@ class Article(models.Model):
def
can_write
(
self
,
user
):
""" Check write permissions and return True/False."""
if
user
.
is_superuser
:
return
True
if
self
.
permissions
:
perms
=
self
.
permissions
.
can_write
.
all
()
return
perms
.
count
()
==
0
or
(
user
in
perms
)
...
...
@@ -101,6 +105,8 @@ class Article(models.Model):
def
can_write_l
(
self
,
user
):
"""Check write permissions and locked status"""
if
user
.
is_superuser
:
return
True
return
not
self
.
locked
and
self
.
can_write
(
user
)
def
can_attach
(
self
,
user
):
...
...
@@ -229,18 +235,16 @@ class Revision(models.Model):
def
get_user
(
self
):
return
self
.
revision_user
if
self
.
revision_user
else
_
(
'Anonymous'
)
# Called after the deleted fied has been changed (between 0 and 2). This bypasses the normal checks put in
# save that update the revision or reject the save if contents haven't changed
def
adminSetDeleted
(
self
,
deleted
):
self
.
deleted
=
deleted
super
(
Revision
,
self
)
.
save
()
def
save
(
self
,
**
kwargs
):
#Really, the only time this should not happen is when the revision is being marked as deleted
print
"kwargs"
,
kwargs
,
not
(
'is_deletion_modification'
in
kwargs
and
kwars
[
'is_deletion_modification'
])
print
"save was just called"
# Check if contents have changed... if not, silently ignore save
if
self
.
article
and
self
.
article
.
current_revision
:
if
self
.
article
.
current_revision
.
contents
==
self
.
contents
:
if
self
.
deleted
==
0
and
self
.
article
.
current_revision
.
contents
==
self
.
contents
:
return
else
:
import
datetime
...
...
@@ -256,7 +260,8 @@ class Revision(models.Model):
self
.
counter
=
previous_revision
[
0
]
.
counter
+
1
else
:
self
.
counter
=
1
self
.
previous_revision
=
self
.
article
.
current_revision
if
(
self
.
article
.
current_revision
.
deleted
==
0
):
self
.
previous_revision
=
self
.
article
.
current_revision
# Create pre-parsed contents - no need to parse on-the-fly
ext
=
WIKI_MARKDOWN_EXTENSIONS
...
...
@@ -288,6 +293,10 @@ class Revision(models.Model):
super
(
Revision
,
self
)
.
delete
(
**
kwargs
)
def
get_diff
(
self
):
if
(
self
.
deleted
==
1
):
yield
"Article Deletion"
return
if
self
.
previous_revision
:
previous
=
self
.
previous_revision
.
contents
.
splitlines
(
1
)
else
:
...
...
simplewiki/views.py
View file @
614f1566
...
...
@@ -154,7 +154,7 @@ def edit(request, wiki_url):
if
request
.
POST
.
__contains__
(
'delete'
):
if
(
article
.
current_revision
.
deleted
==
1
):
#This article has already been deleted. Redirect
return
HttpResponseRedirect
(
reverse
(
'wiki_view'
,
args
=
(
article
.
get_url
(),)))
new_revision
.
contents
=
"
Article Deletion Revision
\n
===
"
new_revision
.
contents
=
""
new_revision
.
deleted
=
1
elif
not
new_revision
.
get_diff
():
return
HttpResponseRedirect
(
reverse
(
'wiki_view'
,
args
=
(
article
.
get_url
(),)))
...
...
@@ -189,6 +189,7 @@ def history(request, wiki_url, page=1):
perm_err
=
check_permissions
(
request
,
article
,
check_read
=
True
,
check_deleted
=
False
)
if
perm_err
:
print
"returned error "
,
perm_err
return
perm_err
page_size
=
10
...
...
@@ -215,14 +216,15 @@ def history(request, wiki_url, page=1):
if
(
revision
.
deleted
==
0
):
revision
.
adminSetDeleted
(
2
)
elif
request
.
POST
.
__contains__
(
'restore'
)
and
request
.
user
.
is_superuser
:
print
"revision.deleted: "
,
revision
.
deleted
if
(
revision
.
deleted
==
2
):
print
"save was just called"
revision
.
adminSetDeleted
(
0
)
print
"revison.deleted is now "
,
revision
.
deleted
elif
request
.
POST
.
__contains__
(
'delete_all'
)
and
request
.
user
.
is_superuser
:
Revision
.
objects
.
filter
(
article__exact
=
article
,
deleted
=
0
)
.
update
(
deleted
=
2
)
elif
request
.
POST
.
__contains__
(
'lock_article'
):
print
"changing locked article "
,
article
.
locked
article
.
locked
=
not
article
.
locked
print
"changed locked article "
,
article
.
locked
article
.
save
()
except
:
pass
finally
:
...
...
@@ -289,7 +291,6 @@ def search_articles(request):
if
request
.
user
.
is_superuser
:
results
=
results
.
order_by
(
'current_revision__deleted'
)
else
:
print
"tried to filter"
results
=
results
.
filter
(
current_revision__deleted
=
0
)
if
results
.
count
()
==
1
and
querystring
:
...
...
@@ -442,6 +443,7 @@ def check_permissions(request, article, check_read=False, check_write=False, che
deleted_err
=
check_deleted
and
not
(
article
.
current_revision
.
deleted
==
0
)
if
(
request
.
user
.
is_superuser
):
deleted_err
=
False
locked_err
=
False
if
read_err
or
write_err
or
locked_err
or
deleted_err
:
d
=
{
'wiki_article'
:
article
,
...
...
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