summaryrefslogtreecommitdiff
path: root/tests/admin_views/admin.py
diff options
context:
space:
mode:
authorUnai Zalakain <unai@gisa-elkartea.org>2013-10-24 17:28:09 +0200
committerSimon Charette <charette.s@gmail.com>2013-10-29 17:10:12 -0400
commitfd219fa24c7911adab60e1f5e4fd3d7f9d82a969 (patch)
treebebe575f54927599841c3be976eccfeeb7d84e49 /tests/admin_views/admin.py
parent497930b7f69e2c298faa3f784c4523ea351e5e6f (diff)
Fixed #8261 -- ModelAdmin hook for customising the "show on site" button
``ModelAdmin.view_on_site`` defines wether to show a link to the object on the admin detail page. If ``True``, cleverness (i.e. ``Model.get_absolute_url``) is used to get the url. If it's a callable, the callable is called with the object as the only parameter. If ``False``, not link is displayed. With the aim of maitaining backwards compatibility, ``True`` is the default.
Diffstat (limited to 'tests/admin_views/admin.py')
-rw-r--r--tests/admin_views/admin.py36
1 files changed, 35 insertions, 1 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 7dd6c91e71..36b35aeefe 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -31,7 +31,7 @@ from .models import (Article, Chapter, Account, Media, Child, Parent, Picture,
AdminOrderedCallable, Report, Color2, UnorderedObject, MainPrepopulated,
RelatedPrepopulated, UndeletableObject, UnchangeableObject, UserMessenger, Simple, Choice,
ShortMessage, Telegram, FilteredManager, EmptyModelHidden,
- EmptyModelVisible, EmptyModelMixin)
+ EmptyModelVisible, EmptyModelMixin, State, City, Restaurant, Worker)
def callable_year(dt_value):
@@ -74,6 +74,7 @@ class ChapterXtra1Admin(admin.ModelAdmin):
class ArticleAdmin(admin.ModelAdmin):
list_display = ('content', 'date', callable_year, 'model_year', 'modeladmin_year')
list_filter = ('date', 'section')
+ view_on_site = False
fieldsets = (
('Some fields', {
'classes': ('collapse',),
@@ -735,6 +736,35 @@ class EmptyModelMixinAdmin(admin.ModelAdmin):
form = FormWithVisibleAndHiddenField
fieldsets = EmptyModelVisibleAdmin.fieldsets
+class CityInlineAdmin(admin.TabularInline):
+ model = City
+ view_on_site = False
+
+class StateAdmin(admin.ModelAdmin):
+ inlines = [CityInlineAdmin]
+
+class RestaurantInlineAdmin(admin.TabularInline):
+ model = Restaurant
+ view_on_site = True
+
+class CityAdmin(admin.ModelAdmin):
+ inlines = [RestaurantInlineAdmin]
+ view_on_site = True
+
+class WorkerAdmin(admin.ModelAdmin):
+ def view_on_site(self, obj):
+ return '/worker/%s/%s/' % (obj.surname, obj.name)
+
+class WorkerInlineAdmin(admin.TabularInline):
+ model = Worker
+
+ def view_on_site(self, obj):
+ return '/worker_inline/%s/%s/' % (obj.surname, obj.name)
+
+class RestaurantAdmin(admin.ModelAdmin):
+ inlines = [WorkerInlineAdmin]
+ view_on_site = False
+
site = admin.AdminSite(name="admin")
site.register(Article, ArticleAdmin)
site.register(CustomArticle, CustomArticleAdmin)
@@ -785,6 +815,10 @@ site.register(MainPrepopulated, MainPrepopulatedAdmin)
site.register(UnorderedObject, UnorderedObjectAdmin)
site.register(UndeletableObject, UndeletableObjectAdmin)
site.register(UnchangeableObject, UnchangeableObjectAdmin)
+site.register(State, StateAdmin)
+site.register(City, CityAdmin)
+site.register(Restaurant, RestaurantAdmin)
+site.register(Worker, WorkerAdmin)
# We intentionally register Promo and ChapterXtra1 but not Chapter nor ChapterXtra2.
# That way we cover all four cases: