Repository: django-cms/django-cms

Issue:
UX: make adding new pages from the default admin / edit view more obvious 
when I am in the edit view (where I get to after first running the CMS, and clicking the link to "edit page" and then on top via "example.com" -> Pages)

I see an empyt list of pages.
Theer's no obvious and visible way to add a first page. 
The "add page" option only appears after having maginified the sidebar to the full page via the small icon below the "x" at the right side of the sidebar.

I believe that must be more obvious, so a user can get started more easily.



Discussion:

Resolving patch:
diff --git a/cms/admin/pageadmin.py b/cms/admin/pageadmin.py
--- a/cms/admin/pageadmin.py
+++ b/cms/admin/pageadmin.py
@@ -263,13 +263,13 @@ def advanced(self, request, object_id):
         page = get_object_or_404(Page, pk=object_id)
         if not page.has_advanced_settings_permission(request):
             raise PermissionDenied("No permission for editing advanced settings")
-        return self.change_view(request, object_id, {'advanced_settings': True, 'title': _("Advanced Settings")})
+        return self.change_view(request, object_id, extra_context={'advanced_settings': True, 'title': _("Advanced Settings")})
 
     def permissions(self, request, object_id):
         page = get_object_or_404(Page, pk=object_id)
         if not page.has_change_permissions_permission(request):
             raise PermissionDenied("No permission for editing advanced settings")
-        return self.change_view(request, object_id, {'show_permissions': True, 'title': _("Change Permissions")})
+        return self.change_view(request, object_id, extra_context={'show_permissions': True, 'title': _("Change Permissions")})
 
     def get_inline_instances(self, request, obj=None):
         if DJANGO_1_4:
diff --git a/cms/cms_toolbar.py b/cms/cms_toolbar.py
--- a/cms/cms_toolbar.py
+++ b/cms/cms_toolbar.py
@@ -66,7 +66,7 @@ def add_admin_menu(self):
         admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, self.current_site.name)
         if self.request.user.has_perm('user.change_user') and User in admin.site._registry:
             admin_menu.add_sideframe_item(_('Users'), url=reverse("admin:auth_user_changelist"))
-            # sites menu
+        # sites menu
         if get_cms_setting('PERMISSION'):
             sites_queryset = get_user_sites_queryset(self.request.user)
         else:
@@ -78,7 +78,9 @@ def add_admin_menu(self):
             for site in sites_queryset:
                 sites_menu.add_link_item(site.name, url='http://%s' % site.domain,
                                          active=site.pk == self.current_site.pk)
-                # admin
+        # stacks
+        admin_menu.add_sideframe_item(_('Stacks'), url=reverse('admin:stacks_stack_changelist'))
+        # admin
         admin_menu.add_sideframe_item(_('Administration'), url=reverse('admin:index'))
         admin_menu.add_break(ADMINISTRATION_BREAK)
         # cms users


Test patch:
diff --git a/cms/tests/toolbar.py b/cms/tests/toolbar.py
--- a/cms/tests/toolbar.py
+++ b/cms/tests/toolbar.py
@@ -96,7 +96,7 @@ def test_no_page_staff(self):
         # Logo + edit-mode + admin-menu + logout
         self.assertEqual(len(items), 3, items)
         admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, 'Test').get_items()
-        self.assertEqual(len(admin_items), 6, admin_items)
+        self.assertEqual(len(admin_items), 7, admin_items)
 
     def test_no_page_superuser(self):
         request = self.get_page_request(None, self.get_superuser(), '/')
@@ -106,7 +106,7 @@ def test_no_page_superuser(self):
         # Logo + edit-mode + admin-menu + logout
         self.assertEqual(len(items), 3)
         admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, 'Test').get_items()
-        self.assertEqual(len(admin_items), 7, admin_items)
+        self.assertEqual(len(admin_items), 8, admin_items)
 
     def test_anon(self):
         page = create_page('test', 'nav_playground.html', 'en')
@@ -213,7 +213,7 @@ def test_no_change_button(self):
         # Logo + page-menu + admin-menu + logout
         self.assertEqual(len(items), 3, items)
         admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, 'Test').get_items()
-        self.assertEqual(len(admin_items), 6, admin_items)
+        self.assertEqual(len(admin_items), 7, admin_items)
 
     def test_button_consistency_staff(self):
         """