Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Sith
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
59
Issues
59
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AE
Sith
Commits
95f98482
Commit
95f98482
authored
Mar 08, 2017
by
Sli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix accents in wiki page name and allow to delete a page
parent
b90d9305
Pipeline
#783
passed with stage
in 3 minutes and 25 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
3 deletions
+32
-3
core/models.py
core/models.py
+20
-2
core/templates/core/pagerev_edit.jinja
core/templates/core/pagerev_edit.jinja
+1
-0
core/urls.py
core/urls.py
+1
-0
core/views/page.py
core/views/page.py
+10
-1
No files found.
core/models.py
View file @
95f98482
...
...
@@ -736,9 +736,9 @@ class Page(models.Model):
name
=
models
.
CharField
(
_
(
'page unix name'
),
max_length
=
30
,
validators
=
[
validators
.
RegexValidator
(
r
'^[
\w
.+-]+$'
,
r
'^[
A-z
.+-]+$'
,
_
(
'Enter a valid page name. This value may contain only '
'letters, numbers '
'and ./+/-/_ characters.'
)
'
unaccented
letters, numbers '
'and ./+/-/_ characters.'
)
),
],
blank
=
False
)
...
...
@@ -846,6 +846,14 @@ class Page(models.Model):
p
.
set_lock_recursive
(
user
)
self
.
set_lock
(
user
)
def
unset_lock_recursive
(
self
):
"""
Unlocks recursively all the child pages
"""
for
p
in
self
.
children
.
all
():
p
.
unset_lock_recursive
()
self
.
unset_lock
()
def
unset_lock
(
self
):
"""Always try to unlock, even if there is no lock"""
self
.
lock_user
=
None
...
...
@@ -886,6 +894,16 @@ class Page(models.Model):
except
:
return
self
.
name
def
delete
(
self
):
self
.
unset_lock_recursive
()
self
.
set_lock_recursive
(
User
.
objects
.
get
(
id
=
0
))
for
child
in
self
.
children
.
all
():
child
.
parent
=
self
.
parent
child
.
save
()
child
.
unset_lock_recursive
()
super
(
Page
,
self
).
delete
()
class
PageRev
(
models
.
Model
):
"""
This is the true content of the page.
...
...
core/templates/core/pagerev_edit.jinja
View file @
95f98482
...
...
@@ -23,6 +23,7 @@ function make_preview() {
<p><input
type=
"button"
value=
"
{%
trans
%}
Preview
{%
endtrans
%}
"
onclick=
"javascript:make_preview();"
/></p>
<p><input
type=
"submit"
value=
"
{%
trans
%}
Save
{%
endtrans
%}
"
/></p>
</form>
<a
href=
"
{{
url
(
'core:page_delete'
,
page_id
=
page.id
)
}}
"
>
{%
trans
%}
Delete
{%
endtrans
%}
</a>
<div
id=
"preview"
>
</div>
{%
endblock
%}
...
...
core/urls.py
View file @
95f98482
...
...
@@ -61,6 +61,7 @@ urlpatterns = [
# Page views
url
(
r
'^page/$'
,
PageListView
.
as_view
(),
name
=
'page_list'
),
url
(
r
'^page/create$'
,
PageCreateView
.
as_view
(),
name
=
'page_new'
),
url
(
r
'^page/(?P<page_id>[0-9]*)/delete$'
,
PageDeleteView
.
as_view
(),
name
=
'page_delete'
),
url
(
r
'^page/(?P<page_name>[a-z0-9/-_]*)/edit$'
,
PageEditView
.
as_view
(),
name
=
'page_edit'
),
url
(
r
'^page/(?P<page_name>[a-z0-9/-_]*)/prop$'
,
PagePropView
.
as_view
(),
name
=
'page_prop'
),
url
(
r
'^page/(?P<page_name>[a-z0-9/-_]*)/hist$'
,
PageHistView
.
as_view
(),
name
=
'page_hist'
),
...
...
core/views/page.py
View file @
95f98482
# This file contains all the views that concern the page model
from
django.shortcuts
import
render
,
redirect
,
get_object_or_404
from
django.core.urlresolvers
import
reverse_lazy
from
django.views.generic
import
ListView
,
DetailView
from
django.views.generic.edit
import
UpdateView
,
CreateView
from
django.views.generic.edit
import
UpdateView
,
CreateView
,
DeleteView
from
django.contrib.auth.decorators
import
login_required
,
permission_required
from
django.utils.decorators
import
method_decorator
from
django.forms.models
import
modelform_factory
...
...
@@ -159,3 +160,11 @@ class PageEditView(CanEditMixin, UpdateView):
form
.
instance
=
new_rev
return
super
(
PageEditView
,
self
).
form_valid
(
form
)
class
PageDeleteView
(
CanEditPropMixin
,
DeleteView
):
model
=
Page
template_name
=
'core/delete_confirm.jinja'
pk_url_kwarg
=
'page_id'
def
get_success_url
(
self
,
**
kwargs
):
return
reverse_lazy
(
'core:page_list'
)
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