diff --git a/djadmin2/templates/admin2/bootstrap/model_add_form.html b/djadmin2/templates/admin2/bootstrap/model_add_form.html
index 4adb19a..c8a2e4a 100644
--- a/djadmin2/templates/admin2/bootstrap/model_add_form.html
+++ b/djadmin2/templates/admin2/bootstrap/model_add_form.html
@@ -2,6 +2,10 @@
{% block content %}
-TODO
+
{% endblock content %}
diff --git a/djadmin2/templates/admin2/bootstrap/model_delete_form.html b/djadmin2/templates/admin2/bootstrap/model_delete_form.html
index 4adb19a..04b0e94 100644
--- a/djadmin2/templates/admin2/bootstrap/model_delete_form.html
+++ b/djadmin2/templates/admin2/bootstrap/model_delete_form.html
@@ -2,6 +2,11 @@
{% block content %}
-TODO
+
{% endblock content %}
diff --git a/djadmin2/templates/admin2/bootstrap/model_detail.html b/djadmin2/templates/admin2/bootstrap/model_detail.html
index 4adb19a..b75953c 100644
--- a/djadmin2/templates/admin2/bootstrap/model_detail.html
+++ b/djadmin2/templates/admin2/bootstrap/model_detail.html
@@ -2,6 +2,6 @@
{% block content %}
-TODO
+{{ object }}
{% endblock content %}
diff --git a/djadmin2/templates/admin2/bootstrap/model_edit_form.html b/djadmin2/templates/admin2/bootstrap/model_edit_form.html
index 4adb19a..c8a2e4a 100644
--- a/djadmin2/templates/admin2/bootstrap/model_edit_form.html
+++ b/djadmin2/templates/admin2/bootstrap/model_edit_form.html
@@ -2,6 +2,10 @@
{% block content %}
-TODO
+
{% endblock content %}
diff --git a/djadmin2/templates/admin2/bootstrap/model_list.html b/djadmin2/templates/admin2/bootstrap/model_list.html
index 4adb19a..8dd4d5f 100644
--- a/djadmin2/templates/admin2/bootstrap/model_list.html
+++ b/djadmin2/templates/admin2/bootstrap/model_list.html
@@ -1,7 +1,11 @@
{% extends "admin/base.html" %}
{% block content %}
+ add
+
+{% for obj in object_list %}
+ {{ obj }} detail edit delete
+{% endfor %}
-TODO
{% endblock content %}
diff --git a/djadmin2/urls.py b/djadmin2/urls.py
index dc16b6e..2f99d2c 100644
--- a/djadmin2/urls.py
+++ b/djadmin2/urls.py
@@ -14,34 +14,31 @@ urlpatterns = patterns('',
view=views.IndexView.as_view(),
name="index"
),
-
-
- url(
- regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/$',
- view=views.ModelListView.as_view(),
- name="model_list"
- ),
-)
-
-"""
- url(
- regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/(?P[\w]+)/$',
- view=views.ModelDetailView.as_view(),
- name="model_detail"
- ),
- url(
- regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/(?P[\w]+)/edit/$',
- view=views.ModelEditFormView.as_view(),
- name="model_detail_edit_form"
- ),
url(
regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/add/$',
view=views.ModelAddFormView.as_view(),
name="model_detail_add_form"
),
url(
- regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/(?P[\w]+)/delete/$',
+ regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/$',
+ view=views.ModelListView.as_view(),
+ name="model_list"
+ ),
+ url(
+ regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/(?P[\w]+)/$',
+ view=views.ModelDetailView.as_view(),
+ name="model_detail"
+ ),
+ url(
+ regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/(?P[\w]+)/edit/$',
+ view=views.ModelEditFormView.as_view(),
+ name="model_detail_edit_form"
+ ),
+ url(
+ regex=r'^(?P[_\-\w]+)/(?P[_\-\w]+)/(?P[\w]+)/delete/$',
view=views.ModelDeleteView.as_view(),
name="model_delete"
)
-"""
+)
+
+
diff --git a/djadmin2/views.py b/djadmin2/views.py
index 701ab35..494a5fd 100644
--- a/djadmin2/views.py
+++ b/djadmin2/views.py
@@ -1,10 +1,13 @@
from os.path import join
from django.conf import settings
-from django.views.generic import ListView
+from django.forms.models import modelform_factory
+from django.views.generic import ListView, CreateView
+from django.db import models
from braces.views import LoginRequiredMixin, StaffuserRequiredMixin
-
+from django.views.generic.detail import DetailView
+from django.views.generic.edit import UpdateView, DeleteView
from .utils import get_admin2s
@@ -21,27 +24,78 @@ class IndexView(ListView): #(LoginRequiredMixin, StaffuserRequiredMixin, ListVie
class ModelListView(ListView):
- pass
+ 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(object):
- pass
-class ModelEditFormView(object):
+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()
+
+
+
+class ModelEditFormView(UpdateView):
+ form_class = None
+ success_url = "../../"
+
+ 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()
def get_form_class(self):
- """ See ticket #16 """
- return self.form_class
+ if self.form_class is not None:
+ return self.form_class
+ return modelform_factory(self.get_model())
-class ModelAddFormView(object):
+class ModelAddFormView(CreateView):
+ form_class = None
+ success_url = "../"
+
+ def get_template_names(self):
+ return [join(ADMIN2_THEME_DIRECTORY, "model_add_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()
def get_form_class(self):
- """ See ticket #16 """
- return self.form_class
+ if self.form_class is not None:
+ return self.form_class
+ return modelform_factory(self.get_model())
+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()
-class ModelDeleteView(object):
- pass