general: attach edit_role and subpages_edit_role attributes to Page (#56188)
This commit is contained in:
parent
90aa90b991
commit
af5caa199a
|
@ -0,0 +1,40 @@
|
|||
# Generated by Django 2.2.21 on 2021-08-09 13:25
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('data', '0047_auto_20210723_1318'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='page',
|
||||
name='edit_role',
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
default=None,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name='+',
|
||||
to='auth.Group',
|
||||
verbose_name='Edit Role',
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='page',
|
||||
name='subpages_edit_role',
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
default=None,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name='+',
|
||||
to='auth.Group',
|
||||
verbose_name='Subpages Edit Role',
|
||||
),
|
||||
),
|
||||
]
|
|
@ -203,6 +203,25 @@ class Page(models.Model):
|
|||
|
||||
picture = models.ImageField(_('Picture'), upload_to='page-pictures/', null=True)
|
||||
|
||||
edit_role = models.ForeignKey(
|
||||
Group,
|
||||
blank=True,
|
||||
null=True,
|
||||
default=None,
|
||||
related_name='+',
|
||||
verbose_name=_('Edit Role'),
|
||||
on_delete=models.SET_NULL,
|
||||
)
|
||||
subpages_edit_role = models.ForeignKey(
|
||||
Group,
|
||||
blank=True,
|
||||
null=True,
|
||||
default=None,
|
||||
related_name='+',
|
||||
verbose_name=_('Subpages Edit Role'),
|
||||
on_delete=models.SET_NULL,
|
||||
)
|
||||
|
||||
# mark temporarily restored snapshots, it is required to save objects
|
||||
# (pages and cells) for real for viewing past snapshots as many cells are
|
||||
# asynchronously loaded and must refer to a real Page object.
|
||||
|
|
|
@ -192,6 +192,22 @@ class PageEditRedirectionForm(forms.ModelForm):
|
|||
return page
|
||||
|
||||
|
||||
class PageEditRolesForm(forms.ModelForm):
|
||||
edit_role = forms.ModelChoiceField(
|
||||
label=_('Edit Role'), required=False, queryset=Group.objects.all().order_by('name')
|
||||
)
|
||||
subpages_edit_role = forms.ModelChoiceField(
|
||||
label=_('Subpages Edit Role'), required=False, queryset=Group.objects.all().order_by('name')
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Page
|
||||
fields = (
|
||||
'edit_role',
|
||||
'subpages_edit_role',
|
||||
)
|
||||
|
||||
|
||||
class PageEditIncludeInNavigationForm(forms.ModelForm):
|
||||
include_in_navigation = forms.BooleanField(label=_('Include in navigation menus'), required=False)
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
{% load i18n %}
|
||||
|
||||
{% block appbar %}
|
||||
{% if object.id %}
|
||||
{% if view.page_title %}
|
||||
<h2>{{ view.page_title }}</h2>
|
||||
{% elif object.id %}
|
||||
<h2>{% trans "Edit Page" %}</h2>
|
||||
{% else %}
|
||||
<h2>{% trans "New Page" %}</h2>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<li><a class="action-history" href="{% url 'combo-manager-page-history' pk=object.id %}">{% trans 'History' %}</a></li>
|
||||
<li><a {% if page_has_subpages %}rel="popup" data-autoclose-dialog="true" {% endif %}class="action-export" href="{% url 'combo-manager-page-export' pk=object.id %}">{% trans 'Export' %}</a></li>
|
||||
<li><a class="action-add-child" rel="popup" href="{% url 'combo-manager-page-add-child' pk=object.id %}">{% trans 'Add a child page' %}</a></li>
|
||||
<li><a class="action-edit-roles" rel="popup" href="{% url 'combo-manager-page-edit-roles' pk=object.id %}">{% trans 'Manage edit roles' %}</a></li>
|
||||
<li><a rel="popup" class="action-duplicate" href="{% url 'combo-manager-page-duplicate' pk=object.id %}">{% trans 'Duplicate' %}</a></li>
|
||||
<li><a class="action-delete" rel="popup" href="{% url 'combo-manager-page-delete' pk=object.id %}">{% trans 'Delete' %}</a></li>
|
||||
</ul>
|
||||
|
|
|
@ -63,6 +63,7 @@ urlpatterns = [
|
|||
url(r'^pages/(?P<pk>\d+)/export$', views.page_export, name='combo-manager-page-export'),
|
||||
url(r'^pages/(?P<pk>\d+)/add/$', views.page_add_child, name='combo-manager-page-add-child'),
|
||||
url(r'^pages/(?P<pk>\d+)/duplicate$', views.page_duplicate, name='combo-manager-page-duplicate'),
|
||||
url(r'^pages/(?P<pk>\d+)/edit-roles/$', views.page_edit_roles, name='combo-manager-page-edit-roles'),
|
||||
url(r'^pages/(?P<pk>\d+)/history$', views.page_history, name='combo-manager-page-history'),
|
||||
url(
|
||||
r'^pages/(?P<page_pk>\d+)/history/(?P<pk>\d+)/$',
|
||||
|
|
|
@ -56,6 +56,7 @@ from .forms import (
|
|||
PageEditIncludeInNavigationForm,
|
||||
PageEditPictureForm,
|
||||
PageEditRedirectionForm,
|
||||
PageEditRolesForm,
|
||||
PageEditSlugForm,
|
||||
PageEditTitleForm,
|
||||
PageExportForm,
|
||||
|
@ -258,6 +259,15 @@ class PageEditRedirectionView(PageEditView):
|
|||
page_edit_redirection = PageEditRedirectionView.as_view()
|
||||
|
||||
|
||||
class PageEditRolesView(PageEditView):
|
||||
page_title = _('Edit roles management')
|
||||
form_class = PageEditRolesForm
|
||||
comment = _('changed edit roles')
|
||||
|
||||
|
||||
page_edit_roles = PageEditRolesView.as_view()
|
||||
|
||||
|
||||
class PageEditIncludeInNavigationView(PageEditView):
|
||||
form_class = PageEditIncludeInNavigationForm
|
||||
comment = _('changed navigation inclusion')
|
||||
|
|
Loading…
Reference in New Issue