Эх сурвалжийг харах

[core] Order of configuration dumps and help links follows the order of the app icons

Romain Rigaux 13 жил өмнө
parent
commit
b4130ae

+ 1 - 1
apps/help/src/help/views.py

@@ -79,7 +79,7 @@ def view(request, app, path):
   data = {
     'content': content,
     'apps': sorted([ x for x in appmanager.DESKTOP_MODULES if x.help_dir ],
-      key = lambda x: x.nice_name.lower()),
+      key = lambda app: app.menu_index),
     'title': appmanager.get_desktop_module(app).nice_name
   }
   return render("display.mako", request, data)

+ 16 - 19
desktop/core/src/desktop/templates/dump_config.mako

@@ -33,7 +33,7 @@ ${layout.menubar(section='dump_config')}
 
         <h2>${_('Installed applications')}</h2>
         <ul>
-        % for app in sorted(apps, key=lambda app: app.name.lower()):
+        % for app in apps:
             <li>${app.name}</li>
         % endfor
         </ul>
@@ -41,7 +41,7 @@ ${layout.menubar(section='dump_config')}
         <h2>${_('Configuration Sections and Variables')}</h2>
 
         <ul class="nav nav-tabs">
-            % for obj in sorted(top_level.get().values(), key=lambda obj: obj.config.key):
+            % for obj in top_level:
                 <li
                     % if loop.first:
                         class="active"
@@ -52,22 +52,20 @@ ${layout.menubar(section='dump_config')}
 
         <%def name="showTopLevel(config_obj, depth=0)">
             <div class="tab-content">
-                % if isinstance(config_obj, BoundContainer):
-                    % for v in config_obj.get().values():
-                        <%
-                            # Don't recurse into private variables.
-                            if v.config.private and not show_private:
-                                continue
-                        %>
-                        <div id="${v.config.key}Conf" class="tab-pane
-                        % if loop.first:
-                            active
-                        % endif
-                        ">
-                            ${recurse(v, depth + 1)}
-                      </div>
-                    % endfor
-                % endif
+                % for v in config_obj:
+                    <%
+                        # Don't recurse into private variables.
+                        if v.config.private and not show_private:
+                            continue
+                    %>
+                    <div id="${v.config.key}Conf" class="tab-pane
+                    % if loop.first:
+                        active
+                    % endif
+                    ">
+                        ${recurse(v, depth + 1)}
+                  </div>
+                % endfor
             </div>
         </%def>
 
@@ -109,7 +107,6 @@ ${layout.menubar(section='dump_config')}
             </table>
         </%def>
 
-
         ${showTopLevel(top_level)}
 
         <br/>

+ 8 - 3
desktop/core/src/desktop/views.py

@@ -26,9 +26,11 @@ import zipfile
 from django.shortcuts import render_to_response
 from django.http import HttpResponse
 from django.core.servers.basehttp import FileWrapper
+from django.utils.translation import ugettext as _
 import django.views.debug
 
 from desktop.lib import django_mako
+from desktop.lib.conf import GLOBAL_CONFIG
 from desktop.lib.django_util import login_notrequired, render_json, render, render_to_string
 from desktop.lib.paths import get_desktop_root
 from desktop.log.access import access_log_level, access_warn
@@ -37,7 +39,6 @@ from desktop import appmanager
 import desktop.conf
 import desktop.log.log_buffer
 
-from django.utils.translation import ugettext as _
 
 LOG = logging.getLogger(__name__)
 
@@ -173,11 +174,15 @@ def dump_config(request):
   if request.GET.get("private"):
     show_private = True
 
+  apps = sorted(appmanager.DESKTOP_MODULES, key=lambda app: app.menu_index)
+  apps_names = [app.name for app in apps]
+  top_level = sorted(GLOBAL_CONFIG.get().values(), key=lambda obj: apps_names.index(obj.config.key))
+
   return render("dump_config.mako", request, dict(
     show_private=show_private,
-    top_level=desktop.lib.conf.GLOBAL_CONFIG,
+    top_level=top_level,
     conf_dir=conf_dir,
-    apps=appmanager.DESKTOP_MODULES))
+    apps=apps))
 
 if sys.version_info[0:2] <= (2,4):
   def _threads():