Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 22 additions & 31 deletions singleton_models/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,56 +4,47 @@
from django.http import HttpResponseRedirect
from django.utils.functional import update_wrapper

class SingletonModelAdmin(admin.ModelAdmin):
from django.conf.urls.defaults import patterns
from django.conf.urls.defaults import url

change_form_template = "admin/singleton_models/change_form.html"

class SingletonModelAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
""" Singleton pattern: prevent addition of new objects """
"""Singleton pattern: prevent addition of new objects."""
return False

def get_urls(self):
from django.conf.urls.defaults import patterns, url

def get_urls(self):
def wrap(view):
def wrapper(*args, **kwargs):
return self.admin_site.admin_view(view)(*args, **kwargs)
return update_wrapper(wrapper, view)

info = self.model._meta.app_label, self.model._meta.module_name

urlpatterns = patterns('',
url(r'^history/$',
wrap(self.history_view),
{'object_id': '1'},
name='%s_%s_history' % info),
url(r'^$',
wrap(self.change_view),
{'object_id': '1'},
name='%s_%s_change' % info),
urlpatterns = patterns("",
url(r"^history/$", wrap(self.history_view), {"object_id": "1"}, name = "%s_%s_history" % info),
url(r"^$", wrap(self.change_view), {"object_id": "1"}, name = "%s_%s_changelist" % info),
)

return urlpatterns

def response_change(self, request, obj):
"""
Determines the HttpResponse for the change_view stage.
"""
"""Determines the HttpResponse for the change_view stage."""
opts = obj._meta

msg = _('%(obj)s was changed successfully.') % {'obj': force_unicode(obj)}
# Django 1.4 - remember about imports: https://docs.djangoproject.com/en/dev/ref/contrib/messages/
msg = _("%s was changed successfully.") % force_unicode(obj)

if request.POST.has_key("_continue"):
self.message_user(request, msg + ' ' + _("You may edit it again below."))
self.message_user(request, "%s %s" % (msg, _("You may edit it again below.")))

return HttpResponseRedirect(request.path)
else:
self.message_user(request, msg)

return HttpResponseRedirect("../../")

def change_view(self, request, object_id, extra_context=None):
if object_id=='1':
self.model.objects.get_or_create(pk=1)
return super(SingletonModelAdmin, self).change_view(
request,
object_id,
extra_context=extra_context,
)

def change_view(self, request, object_id, extra_context = None):
if object_id == "1":
self.model.objects.get_or_create(pk = 1)

return super(SingletonModelAdmin, self).change_view(request, object_id, extra_context=extra_context)
10 changes: 0 additions & 10 deletions singleton_models/templates/admin/singleton_models/change_form.html

This file was deleted.