|
1 | 1 | from typing import List, Optional, Type |
2 | 2 |
|
| 3 | +from bootstrap_modal_forms.generic import BSModalCreateView |
3 | 4 | from django.forms import ModelForm, formset_factory |
4 | 5 | from django.http import HttpRequest |
| 6 | +from django.urls import reverse_lazy |
| 7 | +from django.views.generic import TemplateView |
5 | 8 | from django.views.generic.edit import CreateView, FormView, UpdateView |
6 | 9 | from django_filters.views import FilterView |
7 | 10 |
|
|
12 | 15 | TimePickerInput, |
13 | 16 | YearPickerInput, |
14 | 17 | ) |
15 | | -from dev.myapp.forms import CustomForm, EventFilter, EventForm, ToDoForm |
| 18 | +from dev.myapp.forms import ( |
| 19 | + CustomForm, |
| 20 | + EventFilter, |
| 21 | + EventForm, |
| 22 | + EventModalModelForm, |
| 23 | + ToDoForm, |
| 24 | +) |
16 | 25 | from dev.myapp.models import Event |
17 | 26 |
|
18 | 27 |
|
@@ -127,3 +136,25 @@ class DynamicFormsetView( |
127 | 136 | "title_text": "Use with Formsets", |
128 | 137 | "submit_text": "Submit", |
129 | 138 | } |
| 139 | + |
| 140 | + |
| 141 | +class EventModalCreateView( |
| 142 | + NamespaceTemplateMixin, SuccessRedirectMixin, BSModalCreateView # type: ignore |
| 143 | +): |
| 144 | + template_name = "myapp/{namespace}/modal-form.html" |
| 145 | + form_class = EventModalModelForm |
| 146 | + success_message = "Success: Event was created." |
| 147 | + success_url = reverse_lazy("index") |
| 148 | + extra_context = { |
| 149 | + "title_text": "Create new Event", |
| 150 | + "submit_text": "Submit", |
| 151 | + } |
| 152 | + |
| 153 | + |
| 154 | +class ModalIndexTemplateView(NamespaceTemplateMixin, TemplateView): |
| 155 | + template_name = "myapp/{namespace}/modal-form-index.html" |
| 156 | + extra_context = { |
| 157 | + "title_text": "Usage with django-bootstrap-modal-forms", |
| 158 | + "submit_text": "Submit", |
| 159 | + "form": EventModalModelForm, # Hack to make form.media work |
| 160 | + } |
0 commit comments