Ticket #11895: sites.diff

File sites.diff, 1.7 KB (added by patrick@…, 5 years ago)
  • sites.py

     
    4949        self.app_name = app_name
    5050        self._actions = {'delete_selected': actions.delete_selected}
    5151        self._global_actions = self._actions.copy()
     52        self.apps = []
    5253
    5354    def register(self, model_or_iterable, admin_class=None, **options):
    5455        """
     
    349350                        app_dict[app_label]['models'].append(model_dict)
    350351                    else:
    351352                        app_dict[app_label] = {
     353                            'app_label': app_label,
    352354                            'name': app_label.title(),
    353355                            'app_url': app_label + '/',
    354356                            'has_module_perms': has_module_perms,
     
    362364        # Sort the models alphabetically within each app.
    363365        for app in app_list:
    364366            app['models'].sort(lambda x, y: cmp(x['name'], y['name']))
    365 
     367       
     368        # Assign Apps to Groups
     369        for group in self.apps:
     370            application_list = []
     371            for app in group['apps']:
     372                try:
     373                    application_list.append(app_dict[app])
     374                    # remove assigned app from app_list
     375                    app_list = [d for d in app_list if d.get('app_label') != app]
     376                except:
     377                    pass
     378            group['applications'] = application_list
     379       
    366380        context = {
    367381            'title': _('Site administration'),
    368382            'app_list': app_list,
    369383            'root_path': self.root_path,
     384            'group_list': self.apps,
    370385        }
    371386        context.update(extra_context or {})
    372387        context_instance = template.RequestContext(request, current_app=self.name)
Back to Top