django-admin2/djadmin2/views.py

62 lines
1.6 KiB
Python
Raw Normal View History

2013-05-18 14:40:18 +00:00
import os
2013-05-14 12:59:12 +00:00
from django.conf import settings
2013-05-18 12:36:14 +00:00
from django.forms.models import modelform_factory
from django.views import generic
2013-05-18 14:40:18 +00:00
from django.db import models
2013-05-14 12:59:12 +00:00
from braces.views import LoginRequiredMixin, StaffuserRequiredMixin
2013-05-18 08:47:53 +00:00
2013-05-14 12:59:12 +00:00
from .utils import get_admin2s
2013-05-14 14:56:29 +00:00
ADMIN2_THEME_DIRECTORY = getattr(settings, "ADMIN2_THEME_DIRECTORY", "admin2/bootstrap")
2013-05-14 12:59:12 +00:00
2013-05-18 14:40:18 +00:00
class Admin2Mixin(object):
2013-05-18 15:08:03 +00:00
modeladmin = None
2013-05-18 12:36:14 +00:00
def get_template_names(self):
2013-05-18 14:40:18 +00:00
return [os.path.join(ADMIN2_THEME_DIRECTORY, self.default_template_name)]
2013-05-18 12:36:14 +00:00
def get_model(self):
return self.model
2013-05-18 12:36:14 +00:00
def get_queryset(self):
return self.get_model()._default_manager.all()
2013-05-18 14:40:18 +00:00
def get_form_class(self):
if self.form_class is not None:
return self.form_class
return modelform_factory(self.get_model())
2013-05-18 12:36:14 +00:00
2013-05-18 14:40:18 +00:00
class IndexView(Admin2Mixin, generic.ListView):
default_template_name = "index.html"
2013-05-18 12:36:14 +00:00
def get_queryset(self):
2013-05-18 14:40:18 +00:00
return get_admin2s()
2013-05-17 22:15:45 +00:00
2013-05-18 14:40:18 +00:00
class ModelListView(Admin2Mixin, generic.ListView):
default_template_name = "model_list.html"
2013-05-17 22:15:45 +00:00
2013-05-18 14:40:18 +00:00
class ModelDetailView(Admin2Mixin, generic.DetailView):
default_template_name = "model_detail.html"
2013-05-18 12:36:14 +00:00
2013-05-18 14:40:18 +00:00
class ModelEditFormView(Admin2Mixin, generic.UpdateView):
form_class = None
success_url = "../../"
default_template_name = "model_edit_form.html"
2013-05-18 07:06:40 +00:00
2013-05-18 12:36:14 +00:00
2013-05-18 14:40:18 +00:00
class ModelAddFormView(Admin2Mixin, generic.CreateView):
2013-05-18 12:36:14 +00:00
form_class = None
success_url = "../"
2013-05-18 14:40:18 +00:00
default_template_name = "model_add_form.html"
2013-05-18 12:36:14 +00:00
2013-05-17 22:15:45 +00:00
2013-05-18 14:40:18 +00:00
class ModelDeleteView(Admin2Mixin, generic.DeleteView):
2013-05-18 12:36:14 +00:00
success_url = "../../"
2013-05-18 14:40:18 +00:00
default_template_name = "model_delete.html"