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 +
+ {% csrf_token %} + {{ form.as_p }} + +
{% 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 +
+ {% csrf_token %} + delete {{ object }} + {{ form.as_p }} + +
{% 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 +
+ {% csrf_token %} + {{ form.as_p }} + +
{% 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