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
a7acc42d
Commit
a7acc42d
authored
May 26, 2014
by
benjaoming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pep8
parent
bacba8d7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
18 deletions
+45
-18
wiki/managers.py
+45
-18
No files found.
wiki/managers.py
View file @
a7acc42d
...
@@ -6,7 +6,7 @@ from mptt.managers import TreeManager
...
@@ -6,7 +6,7 @@ from mptt.managers import TreeManager
class
ArticleQuerySet
(
QuerySet
):
class
ArticleQuerySet
(
QuerySet
):
def
can_read
(
self
,
user
):
def
can_read
(
self
,
user
):
"""Filter objects so only the ones with a user's reading access
"""Filter objects so only the ones with a user's reading access
are included"""
are included"""
...
@@ -20,7 +20,7 @@ class ArticleQuerySet(QuerySet):
...
@@ -20,7 +20,7 @@ class ArticleQuerySet(QuerySet):
(
Q
(
group__user
=
user
)
&
Q
(
group_read
=
True
))
(
Q
(
group__user
=
user
)
&
Q
(
group_read
=
True
))
)
)
return
q
return
q
def
can_write
(
self
,
user
):
def
can_write
(
self
,
user
):
"""Filter objects so only the ones with a user's writing access
"""Filter objects so only the ones with a user's writing access
are included"""
are included"""
...
@@ -34,12 +34,13 @@ class ArticleQuerySet(QuerySet):
...
@@ -34,12 +34,13 @@ class ArticleQuerySet(QuerySet):
(
Q
(
group__user
=
user
)
&
Q
(
group_write
=
True
))
(
Q
(
group__user
=
user
)
&
Q
(
group_write
=
True
))
)
)
return
q
return
q
def
active
(
self
):
def
active
(
self
):
return
self
.
filter
(
current_revision__deleted
=
False
)
return
self
.
filter
(
current_revision__deleted
=
False
)
class
ArticleFkQuerySetMixin
():
class
ArticleFkQuerySetMixin
():
def
can_read
(
self
,
user
):
def
can_read
(
self
,
user
):
"""Filter objects so only the ones with a user's reading access
"""Filter objects so only the ones with a user's reading access
are included"""
are included"""
...
@@ -49,12 +50,12 @@ class ArticleFkQuerySetMixin():
...
@@ -49,12 +50,12 @@ class ArticleFkQuerySetMixin():
q
=
self
.
filter
(
article__other_read
=
True
)
q
=
self
.
filter
(
article__other_read
=
True
)
else
:
else
:
# https://github.com/benjaoming/django-wiki/issues/67
# https://github.com/benjaoming/django-wiki/issues/67
q
=
self
.
filter
(
Q
(
article__other_read
=
True
)
|
q
=
self
.
filter
(
Q
(
article__owner
=
user
)
|
Q
(
article__other_read
=
True
)
|
Q
(
article__owner
=
user
)
|
(
Q
(
article__group__user
=
user
)
&
Q
(
article__group_read
=
True
))
(
Q
(
article__group__user
=
user
)
&
Q
(
)
.
distinct
()
article__group_read
=
True
))
)
.
distinct
()
return
q
return
q
def
can_write
(
self
,
user
):
def
can_write
(
self
,
user
):
"""Filter objects so only the ones with a user's writing access
"""Filter objects so only the ones with a user's writing access
are included"""
are included"""
...
@@ -64,50 +65,68 @@ class ArticleFkQuerySetMixin():
...
@@ -64,50 +65,68 @@ class ArticleFkQuerySetMixin():
q
=
self
.
filter
(
article__other_write
=
True
)
q
=
self
.
filter
(
article__other_write
=
True
)
else
:
else
:
# https://github.com/benjaoming/django-wiki/issues/67
# https://github.com/benjaoming/django-wiki/issues/67
q
=
self
.
filter
(
Q
(
article__other_write
=
True
)
|
q
=
self
.
filter
(
Q
(
article__owner
=
user
)
|
Q
(
article__other_write
=
True
)
|
Q
(
article__owner
=
user
)
|
(
Q
(
article__group__user
=
user
)
&
Q
(
article__group_write
=
True
))
(
Q
(
article__group__user
=
user
)
&
Q
(
)
.
distinct
()
article__group_write
=
True
))
)
.
distinct
()
return
q
return
q
def
active
(
self
):
def
active
(
self
):
return
self
.
filter
(
article__current_revision__deleted
=
False
)
return
self
.
filter
(
article__current_revision__deleted
=
False
)
class
ArticleFkEmptyQuerySetMixin
():
class
ArticleFkEmptyQuerySetMixin
():
def
can_read
(
self
,
user
):
def
can_read
(
self
,
user
):
return
self
return
self
def
can_write
(
self
,
user
):
def
can_write
(
self
,
user
):
return
self
return
self
def
active
(
self
):
def
active
(
self
):
return
self
return
self
class
ArticleFkQuerySet
(
ArticleFkQuerySetMixin
,
QuerySet
):
class
ArticleFkQuerySet
(
ArticleFkQuerySetMixin
,
QuerySet
):
pass
pass
class
ArticleFkEmptyQuerySet
(
ArticleFkEmptyQuerySetMixin
,
EmptyQuerySet
):
class
ArticleFkEmptyQuerySet
(
ArticleFkEmptyQuerySetMixin
,
EmptyQuerySet
):
pass
pass
class
ArticleManager
(
models
.
Manager
):
class
ArticleManager
(
models
.
Manager
):
def
get_empty_query_set
(
self
):
def
get_empty_query_set
(
self
):
return
self
.
get_query_set
()
.
none
()
return
self
.
get_query_set
()
.
none
()
def
get_query_set
(
self
):
def
get_query_set
(
self
):
return
ArticleQuerySet
(
self
.
model
,
using
=
self
.
_db
)
return
ArticleQuerySet
(
self
.
model
,
using
=
self
.
_db
)
def
active
(
self
):
def
active
(
self
):
return
self
.
get_query_set
()
.
active
()
return
self
.
get_query_set
()
.
active
()
def
can_read
(
self
,
user
):
def
can_read
(
self
,
user
):
return
self
.
get_query_set
()
.
can_read
(
user
)
return
self
.
get_query_set
()
.
can_read
(
user
)
def
can_write
(
self
,
user
):
def
can_write
(
self
,
user
):
return
self
.
get_query_set
()
.
can_write
(
user
)
return
self
.
get_query_set
()
.
can_write
(
user
)
class
ArticleFkManager
(
models
.
Manager
):
class
ArticleFkManager
(
models
.
Manager
):
def
get_empty_query_set
(
self
):
def
get_empty_query_set
(
self
):
return
ArticleFkEmptyQuerySet
(
model
=
self
.
model
)
return
ArticleFkEmptyQuerySet
(
model
=
self
.
model
)
def
get_query_set
(
self
):
def
get_query_set
(
self
):
return
ArticleFkQuerySet
(
self
.
model
,
using
=
self
.
_db
)
return
ArticleFkQuerySet
(
self
.
model
,
using
=
self
.
_db
)
def
active
(
self
):
def
active
(
self
):
return
self
.
get_query_set
()
.
active
()
return
self
.
get_query_set
()
.
active
()
def
can_read
(
self
,
user
):
def
can_read
(
self
,
user
):
return
self
.
get_query_set
()
.
can_read
(
user
)
return
self
.
get_query_set
()
.
can_read
(
user
)
def
can_write
(
self
,
user
):
def
can_write
(
self
,
user
):
return
self
.
get_query_set
()
.
can_write
(
user
)
return
self
.
get_query_set
()
.
can_write
(
user
)
...
@@ -117,26 +136,34 @@ class URLPathEmptyQuerySet(EmptyQuerySet, ArticleFkEmptyQuerySetMixin):
...
@@ -117,26 +136,34 @@ class URLPathEmptyQuerySet(EmptyQuerySet, ArticleFkEmptyQuerySetMixin):
def
select_related_common
(
self
):
def
select_related_common
(
self
):
return
self
return
self
class
URLPathQuerySet
(
QuerySet
,
ArticleFkQuerySetMixin
):
class
URLPathQuerySet
(
QuerySet
,
ArticleFkQuerySetMixin
):
def
select_related_common
(
self
):
def
select_related_common
(
self
):
return
self
.
select_related
(
"parent"
,
"article__current_revision"
,
"article__owner"
)
return
self
.
select_related
(
"parent"
,
"article__current_revision"
,
"article__owner"
)
class
URLPathManager
(
TreeManager
):
class
URLPathManager
(
TreeManager
):
def
get_empty_query_set
(
self
):
def
get_empty_query_set
(
self
):
return
URLPathEmptyQuerySet
(
model
=
self
.
model
)
return
URLPathEmptyQuerySet
(
model
=
self
.
model
)
def
get_query_set
(
self
):
def
get_query_set
(
self
):
"""Return a QuerySet with the same ordering as the TreeManager."""
"""Return a QuerySet with the same ordering as the TreeManager."""
return
URLPathQuerySet
(
self
.
model
,
using
=
self
.
_db
)
.
order_by
(
return
URLPathQuerySet
(
self
.
model
,
using
=
self
.
_db
)
.
order_by
(
self
.
tree_id_attr
,
self
.
left_attr
)
self
.
tree_id_attr
,
self
.
left_attr
)
def
select_related_common
(
self
):
def
select_related_common
(
self
):
return
self
.
get_query_set
()
.
common_select_related
()
return
self
.
get_query_set
()
.
common_select_related
()
def
active
(
self
):
def
active
(
self
):
return
self
.
get_query_set
()
.
active
()
return
self
.
get_query_set
()
.
active
()
def
can_read
(
self
,
user
):
def
can_read
(
self
,
user
):
return
self
.
get_query_set
()
.
can_read
(
user
)
return
self
.
get_query_set
()
.
can_read
(
user
)
def
can_write
(
self
,
user
):
def
can_write
(
self
,
user
):
return
self
.
get_query_set
()
.
can_write
(
user
)
return
self
.
get_query_set
()
.
can_write
(
user
)
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