manager: add edit page for "exclude from navigation" attribute (#10991)

This commit is contained in:
Frédéric Péters 2016-05-19 16:30:52 +02:00
parent 0aa27b6a62
commit b9b93e0034
5 changed files with 37 additions and 1 deletions

View File

@ -76,5 +76,11 @@ class PageEditRedirectionForm(forms.ModelForm):
fields = ('redirect_url',)
class PageEditExcludeFromNavigationForm(forms.ModelForm):
class Meta:
model = Page
fields = ('exclude_from_navigation',)
class SiteImportForm(forms.Form):
site_json = forms.FileField(_('Site Export File'))

View File

@ -49,6 +49,12 @@
(<a rel="popup" href="{% url 'combo-manager-page-visibility' pk=object.id %}">{% trans 'change' %}</a>)
</p>
<p>
<label>{% trans 'Exclude from navigation:' %}</label>
{% if object.exclude_from_navigation %}{% trans 'yes' %}{% else %}{% trans 'no' %}{% endif %}
(<a rel="popup" href="{% url 'combo-manager-page-edit-exclude-from-navigation' pk=object.id %}">{% trans 'change' %}</a>)
</p>
<p>
<label>{% trans 'Redirection:' %}</label>
{% if object.redirect_url %}{{ object.redirect_url }}{% else %}<i>{% trans 'none' %}</i>{% endif %}

View File

@ -33,6 +33,8 @@ urlpatterns = patterns('combo.views',
name='combo-manager-page-visibility'),
url(r'^pages/(?P<pk>\w+)/redirection$', views.page_edit_redirection,
name='combo-manager-page-edit-redirection'),
url(r'^pages/(?P<pk>\w+)/exclude-from-navigation$', views.page_edit_exclude_from_navigation,
name='combo-manager-page-edit-exclude-from-navigation'),
url(r'^pages/(?P<pk>\w+)/slug$', views.page_edit_slug,
name='combo-manager-page-edit-slug'),
url(r'^pages/(?P<pk>\w+)/title$', views.page_edit_title,

View File

@ -36,7 +36,8 @@ from combo.data.library import get_cell_class
from combo import plugins
from .forms import (PageEditTitleForm, PageVisibilityForm, SiteImportForm,
PageEditRedirectionForm, PageSelectTemplateForm, PageEditSlugForm)
PageEditRedirectionForm, PageSelectTemplateForm, PageEditSlugForm,
PageEditExcludeFromNavigationForm)
class HomepageView(ListView):
@ -114,6 +115,12 @@ class PageEditRedirectionView(PageEditView):
page_edit_redirection = PageEditRedirectionView.as_view()
class PageEditExcludeFromNavigationView(PageEditView):
form_class = PageEditExcludeFromNavigationForm
page_edit_exclude_from_navigation = PageEditExcludeFromNavigationView.as_view()
class PageEditSlugView(PageEditView):
form_class = PageEditSlugForm

View File

@ -91,6 +91,21 @@ def test_edit_page(app, admin_user):
resp = resp.follow()
assert Page.objects.all()[0].template_name == 'standard-sidebar'
assert resp.click(href='.*/template').form['template_name'].value == 'standard-sidebar'
# redirection
resp = resp.click(href='.*/redirection')
resp.form['redirect_url'].value = 'http://www.example.net'
resp = resp.form.submit()
resp = resp.follow()
assert 'http://www.example.net' in resp.body
assert Page.objects.all()[0].redirect_url == 'http://www.example.net'
# exclude from nav
resp = resp.click(href='.*/exclude-from-navigation')
resp.form['exclude_from_navigation'].checked = True
resp = resp.form.submit()
resp = resp.follow()
assert Page.objects.all()[0].exclude_from_navigation is True
def test_delete_page(app, admin_user):
Page.objects.all().delete()