Code

Ticket #11895: sites.diff

File sites.diff, 1.7 KB (added by patrick@…, 5 years ago)
Line 
1--- sites.py    (revision 11580)
2+++ sites.py    (working copy)
3@@ -49,6 +49,7 @@
4         self.app_name = app_name
5         self._actions = {'delete_selected': actions.delete_selected}
6         self._global_actions = self._actions.copy()
7+        self.apps = []
8 
9     def register(self, model_or_iterable, admin_class=None, **options):
10         """
11@@ -349,6 +350,7 @@
12                         app_dict[app_label]['models'].append(model_dict)
13                     else:
14                         app_dict[app_label] = {
15+                            'app_label': app_label,
16                             'name': app_label.title(),
17                             'app_url': app_label + '/',
18                             'has_module_perms': has_module_perms,
19@@ -362,11 +364,24 @@
20         # Sort the models alphabetically within each app.
21         for app in app_list:
22             app['models'].sort(lambda x, y: cmp(x['name'], y['name']))
23-
24+       
25+        # Assign Apps to Groups
26+        for group in self.apps:
27+            application_list = []
28+            for app in group['apps']:
29+                try:
30+                    application_list.append(app_dict[app])
31+                    # remove assigned app from app_list
32+                    app_list = [d for d in app_list if d.get('app_label') != app]
33+                except:
34+                    pass
35+            group['applications'] = application_list
36+       
37         context = {
38             'title': _('Site administration'),
39             'app_list': app_list,
40             'root_path': self.root_path,
41+            'group_list': self.apps,
42         }
43         context.update(extra_context or {})
44         context_instance = template.RequestContext(request, current_app=self.name)