django-admin2/djadmin2/views.py

100 lines
2.8 KiB
Python
Raw Normal View History

2013-05-14 14:56:29 +00:00
from os.path import join
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.generic import ListView, CreateView
from django.db import models
2013-05-14 12:59:12 +00:00
from braces.views import LoginRequiredMixin, StaffuserRequiredMixin
2013-05-18 12:36:14 +00:00
from django.views.generic.detail import DetailView
from django.views.generic.edit import UpdateView, DeleteView
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 13:26:47 +00:00
class IndexView(ListView):
2013-05-14 12:59:12 +00:00
2013-05-14 14:56:29 +00:00
def get_template_names(self):
return [join(ADMIN2_THEME_DIRECTORY, "index.html")]
2013-05-14 12:59:12 +00:00
def get_queryset(self):
return get_admin2s()
2013-05-17 22:15:45 +00:00
class ModelListView(ListView):
2013-05-18 12:36:14 +00:00
def get_template_names(self):
return [join(ADMIN2_THEME_DIRECTORY, "model_list.html")]
def get_model(self):
return models.get_model(self.kwargs.get('app_label'), self.kwargs.get('model_name'))
def get_queryset(self):
return self.get_model()._default_manager.all()
class ModelDetailView(DetailView):
def get_template_names(self):
return [join(ADMIN2_THEME_DIRECTORY, "model_detail.html")]
def get_model(self):
return models.get_model(self.kwargs.get('app_label'), self.kwargs.get('model_name'))
def get_queryset(self):
return self.get_model()._default_manager.all()
2013-05-17 22:15:45 +00:00
2013-05-18 12:36:14 +00:00
class ModelEditFormView(UpdateView):
form_class = None
success_url = "../../"
2013-05-17 22:15:45 +00:00
2013-05-18 12:36:14 +00:00
def get_template_names(self):
return [join(ADMIN2_THEME_DIRECTORY, "model_edit_form.html")]
def get_model(self):
return models.get_model(self.kwargs.get('app_label'), self.kwargs.get('model_name'))
def get_queryset(self):
return self.get_model()._default_manager.all()
2013-05-18 07:06:40 +00:00
def get_form_class(self):
2013-05-18 12:36:14 +00:00
if self.form_class is not None:
return self.form_class
return modelform_factory(self.get_model())
class ModelAddFormView(CreateView):
form_class = None
success_url = "../"
def get_template_names(self):
return [join(ADMIN2_THEME_DIRECTORY, "model_add_form.html")]
2013-05-17 22:15:45 +00:00
2013-05-18 12:36:14 +00:00
def get_model(self):
return models.get_model(self.kwargs.get('app_label'), self.kwargs.get('model_name'))
2013-05-17 22:15:45 +00:00
2013-05-18 12:36:14 +00:00
def get_queryset(self):
return self.get_model()._default_manager.all()
2013-05-18 07:06:40 +00:00
def get_form_class(self):
2013-05-18 12:36:14 +00:00
if self.form_class is not None:
return self.form_class
return modelform_factory(self.get_model())
2013-05-18 07:06:40 +00:00
2013-05-17 22:15:45 +00:00
2013-05-18 12:36:14 +00:00
class ModelDeleteView(DeleteView):
success_url = "../../"
def get_template_names(self):
return [join(ADMIN2_THEME_DIRECTORY, "model_delete_form.html")]
def get_model(self):
return models.get_model(self.kwargs.get('app_label'), self.kwargs.get('model_name'))
def get_queryset(self):
return self.get_model()._default_manager.all()
2013-05-17 22:15:45 +00:00