82 lines
1.9 KiB
Python
82 lines
1.9 KiB
Python
from typing import List, Optional
|
|
|
|
from annoying.decorators import render_to
|
|
from django.http import HttpRequest, HttpResponseRedirect
|
|
|
|
from demonstration.forms import SearchForm, PersonForm, UploadForm
|
|
|
|
NAMES: List[str] = [
|
|
"Jean",
|
|
"Paul",
|
|
"Robert",
|
|
"Julien",
|
|
"Nicolas",
|
|
"François",
|
|
"Julie",
|
|
"Marie",
|
|
"Anne",
|
|
"Évelyne",
|
|
"Jeanne",
|
|
"Claire",
|
|
]
|
|
|
|
|
|
@render_to("demonstration/index.html")
|
|
def view_index(request: HttpRequest): # noqa
|
|
return {}
|
|
|
|
|
|
@render_to("demonstration/search_form_view.html")
|
|
def view_search_form(request: HttpRequest): # noqa
|
|
"""
|
|
View for the search form.
|
|
|
|
Args:
|
|
request: HTTP request.
|
|
|
|
Returns:
|
|
Data for rendering the template, as a context dictionary.
|
|
|
|
"""
|
|
form = SearchForm(request.GET) if request.GET else SearchForm()
|
|
results: List[str] = []
|
|
if form.is_valid():
|
|
query: str = form.cleaned_data["query"].lower()
|
|
results = [item for item in NAMES if query in item.lower()]
|
|
return {"form": form, "results": results}
|
|
|
|
|
|
@render_to("demonstration/person_form_view.html")
|
|
def view_person_form(request: HttpRequest): # noqa
|
|
"""
|
|
View for the person form.
|
|
|
|
Args:
|
|
request: HTTP request.
|
|
|
|
Returns:
|
|
Data for rendering the template, as a context dictionary.
|
|
|
|
"""
|
|
form = PersonForm(request.POST) if request.method == "POST" else PersonForm()
|
|
return {"form": form}
|
|
|
|
|
|
@render_to("demonstration/upload_form_view.html")
|
|
def view_upload_form(request: HttpRequest): # noqa
|
|
"""
|
|
View for the upload form.
|
|
|
|
Args:
|
|
request: HTTP request.
|
|
|
|
Returns:
|
|
Data for rendering the template, as a context dictionary.
|
|
|
|
"""
|
|
form = UploadForm(request.POST, request.FILES) if request.method == "POST" else UploadForm()
|
|
image_url: Optional[str] = None
|
|
if form.is_valid():
|
|
image_url = form.save_uploaded_file(request)
|
|
return {"form": form, "image_url": image_url}
|