diff options
Diffstat (limited to 'webapp/django/core/management/commands/adminindex.py')
-rw-r--r-- | webapp/django/core/management/commands/adminindex.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/webapp/django/core/management/commands/adminindex.py b/webapp/django/core/management/commands/adminindex.py new file mode 100644 index 0000000000..4f389136ca --- /dev/null +++ b/webapp/django/core/management/commands/adminindex.py @@ -0,0 +1,34 @@ +from django.core.management.base import AppCommand +from django.utils.encoding import force_unicode +from django.utils.text import capfirst + +MODULE_TEMPLATE = ''' {%% if perms.%(app)s.%(addperm)s or perms.%(app)s.%(changeperm)s %%} + <tr> + <th>{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/">{%% endif %%}%(name)s{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</th> + <td class="x50">{%% if perms.%(app)s.%(addperm)s %%}<a href="%(app)s/%(mod)s/add/" class="addlink">{%% endif %%}Add{%% if perms.%(app)s.%(addperm)s %%}</a>{%% endif %%}</td> + <td class="x75">{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/" class="changelink">{%% endif %%}Change{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</td> + </tr> + {%% endif %%}''' + +class Command(AppCommand): + help = 'Prints the admin-index template snippet for the given app name(s).' + + def handle_app(self, app, **options): + from django.db.models import get_models + output = [] + app_models = get_models(app) + app_label = app_models[0]._meta.app_label + output.append('{%% if perms.%s %%}' % app_label) + output.append('<div class="module"><h2>%s</h2><table>' % app_label.title()) + for model in app_models: + if model._meta.admin: + output.append(MODULE_TEMPLATE % { + 'app': app_label, + 'mod': model._meta.module_name, + 'name': force_unicode(capfirst(model._meta.verbose_name_plural)), + 'addperm': model._meta.get_add_permission(), + 'changeperm': model._meta.get_change_permission(), + }) + output.append('</table></div>') + output.append('{% endif %}') + return '\n'.join(output) |