PageRenderTime 37ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/regressiontests/generic_views/views.py

https://code.google.com/p/mango-py/
Python | 179 lines | 164 code | 15 blank | 0 comment | 0 complexity | 1c364110554234ef5d6f96b2bb032964 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. from django.contrib.auth.decorators import login_required
  2. from django.core.paginator import Paginator
  3. from django.core.urlresolvers import reverse
  4. from django.utils.decorators import method_decorator
  5. from django.views import generic
  6. from regressiontests.generic_views.models import Artist, Author, Book, Page
  7. from regressiontests.generic_views.forms import AuthorForm
  8. class CustomTemplateView(generic.TemplateView):
  9. template_name = 'generic_views/about.html'
  10. def get_context_data(self, **kwargs):
  11. return {
  12. 'params': kwargs,
  13. 'key': 'value'
  14. }
  15. class ObjectDetail(generic.DetailView):
  16. template_name = 'generic_views/detail.html'
  17. def get_object(self):
  18. return {'foo': 'bar'}
  19. class ArtistDetail(generic.DetailView):
  20. queryset = Artist.objects.all()
  21. class AuthorDetail(generic.DetailView):
  22. queryset = Author.objects.all()
  23. class PageDetail(generic.DetailView):
  24. queryset = Page.objects.all()
  25. template_name_field = 'template'
  26. class DictList(generic.ListView):
  27. """A ListView that doesn't use a model."""
  28. queryset = [
  29. {'first': 'John', 'last': 'Lennon'},
  30. {'last': 'Yoko', 'last': 'Ono'}
  31. ]
  32. template_name = 'generic_views/list.html'
  33. class ArtistList(generic.ListView):
  34. template_name = 'generic_views/list.html'
  35. queryset = Artist.objects.all()
  36. class AuthorList(generic.ListView):
  37. queryset = Author.objects.all()
  38. class CustomPaginator(Paginator):
  39. def __init__(self, queryset, page_size, orphans=0, allow_empty_first_page=True):
  40. super(CustomPaginator, self).__init__(
  41. queryset,
  42. page_size,
  43. orphans=2,
  44. allow_empty_first_page=allow_empty_first_page)
  45. class AuthorListCustomPaginator(AuthorList):
  46. paginate_by = 5;
  47. def get_paginator(self, queryset, page_size, orphans=0, allow_empty_first_page=True):
  48. return super(AuthorListCustomPaginator, self).get_paginator(
  49. queryset,
  50. page_size,
  51. orphans=2,
  52. allow_empty_first_page=allow_empty_first_page)
  53. class ArtistCreate(generic.CreateView):
  54. model = Artist
  55. class NaiveAuthorCreate(generic.CreateView):
  56. queryset = Author.objects.all()
  57. class AuthorCreate(generic.CreateView):
  58. model = Author
  59. success_url = '/list/authors/'
  60. class SpecializedAuthorCreate(generic.CreateView):
  61. model = Author
  62. form_class = AuthorForm
  63. template_name = 'generic_views/form.html'
  64. context_object_name = 'thingy'
  65. def get_success_url(self):
  66. return reverse('author_detail', args=[self.object.id,])
  67. class AuthorCreateRestricted(AuthorCreate):
  68. post = method_decorator(login_required)(AuthorCreate.post)
  69. class ArtistUpdate(generic.UpdateView):
  70. model = Artist
  71. class NaiveAuthorUpdate(generic.UpdateView):
  72. queryset = Author.objects.all()
  73. class AuthorUpdate(generic.UpdateView):
  74. model = Author
  75. success_url = '/list/authors/'
  76. class OneAuthorUpdate(generic.UpdateView):
  77. success_url = '/list/authors/'
  78. def get_object(self):
  79. return Author.objects.get(pk=1)
  80. class SpecializedAuthorUpdate(generic.UpdateView):
  81. model = Author
  82. form_class = AuthorForm
  83. template_name = 'generic_views/form.html'
  84. context_object_name = 'thingy'
  85. def get_success_url(self):
  86. return reverse('author_detail', args=[self.object.id,])
  87. class NaiveAuthorDelete(generic.DeleteView):
  88. queryset = Author.objects.all()
  89. class AuthorDelete(generic.DeleteView):
  90. model = Author
  91. success_url = '/list/authors/'
  92. class SpecializedAuthorDelete(generic.DeleteView):
  93. queryset = Author.objects.all()
  94. template_name = 'generic_views/confirm_delete.html'
  95. context_object_name = 'thingy'
  96. def get_success_url(self):
  97. return reverse('authors_list')
  98. class BookConfig(object):
  99. queryset = Book.objects.all()
  100. date_field = 'pubdate'
  101. class BookArchive(BookConfig, generic.ArchiveIndexView):
  102. pass
  103. class BookYearArchive(BookConfig, generic.YearArchiveView):
  104. pass
  105. class BookMonthArchive(BookConfig, generic.MonthArchiveView):
  106. pass
  107. class BookWeekArchive(BookConfig, generic.WeekArchiveView):
  108. pass
  109. class BookDayArchive(BookConfig, generic.DayArchiveView):
  110. pass
  111. class BookTodayArchive(BookConfig, generic.TodayArchiveView):
  112. pass
  113. class BookDetail(BookConfig, generic.DateDetailView):
  114. pass
  115. class AuthorGetQuerySetFormView(generic.edit.ModelFormMixin):
  116. def get_queryset(self):
  117. return Author.objects.all()