add initial views

This commit is contained in:
Raphael Kimmig 2013-05-18 14:36:14 +02:00
parent e59857d955
commit cf01b720e0
7 changed files with 108 additions and 40 deletions

View file

@ -2,6 +2,10 @@
{% block content %}
TODO
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit"/>
</form>
{% endblock content %}

View file

@ -2,6 +2,11 @@
{% block content %}
TODO
<form method="post">
{% csrf_token %}
delete {{ object }}
{{ form.as_p }}
<input type="submit"/>
</form>
{% endblock content %}

View file

@ -2,6 +2,6 @@
{% block content %}
TODO
{{ object }}
{% endblock content %}

View file

@ -2,6 +2,10 @@
{% block content %}
TODO
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit"/>
</form>
{% endblock content %}

View file

@ -1,7 +1,11 @@
{% extends "admin/base.html" %}
{% block content %}
<a href="./add/">add</a>
<hr/>
{% for obj in object_list %}
{{ obj }} <a href="./{{ obj.pk }}/">detail</a> <a href="./{{ obj.pk }}/edit/">edit</a> <a href="./{{ obj.pk }}/delete/">delete</a><br/>
{% endfor %}
TODO
{% endblock content %}

View file

@ -14,34 +14,31 @@ urlpatterns = patterns('',
view=views.IndexView.as_view(),
name="index"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/$',
view=views.ModelListView.as_view(),
name="model_list"
),
)
"""
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/(?P<id>[\w]+)/$',
view=views.ModelDetailView.as_view(),
name="model_detail"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/(?P<id>[\w]+)/edit/$',
view=views.ModelEditFormView.as_view(),
name="model_detail_edit_form"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/add/$',
view=views.ModelAddFormView.as_view(),
name="model_detail_add_form"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/(?P<id>[\w]+)/delete/$',
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/$',
view=views.ModelListView.as_view(),
name="model_list"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/(?P<pk>[\w]+)/$',
view=views.ModelDetailView.as_view(),
name="model_detail"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/(?P<pk>[\w]+)/edit/$',
view=views.ModelEditFormView.as_view(),
name="model_detail_edit_form"
),
url(
regex=r'^(?P<app_label>[_\-\w]+)/(?P<model_name>[_\-\w]+)/(?P<pk>[\w]+)/delete/$',
view=views.ModelDeleteView.as_view(),
name="model_delete"
)
"""
)

View file

@ -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