added Search form, not working yet
This commit is contained in:
@@ -31,6 +31,7 @@ class NoteFormMixin(FormMixin):
|
|||||||
form = self.get_form(prefix)
|
form = self.get_form(prefix)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
|
# TODO: Add message to notify which form was saved
|
||||||
return self.form_valid(form)
|
return self.form_valid(form)
|
||||||
return self.form_invalid(form)
|
return self.form_invalid(form)
|
||||||
|
|
||||||
|
|||||||
48
suivi/search.py
Normal file
48
suivi/search.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
from django.views.generic.edit import FormMixin, ProcessFormView
|
||||||
|
from django import forms
|
||||||
|
|
||||||
|
from django.shortcuts import redirect
|
||||||
|
|
||||||
|
class SearchForm(forms.Form):
|
||||||
|
|
||||||
|
search_text = forms.CharField(64, widget=forms.widgets.TextInput(attrs={'placeholder':"NotYetImplemented"}))
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
kwargs['prefix'] = 'search'
|
||||||
|
return super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
super().clean()
|
||||||
|
#Do search and store result
|
||||||
|
self.result = None
|
||||||
|
|
||||||
|
def is_valid(self):
|
||||||
|
valid = super().is_valid()
|
||||||
|
if not self.result:
|
||||||
|
return False
|
||||||
|
return valid
|
||||||
|
|
||||||
|
class SearchFormMixin(FormMixin):
|
||||||
|
""" Add 'search_form' to context.
|
||||||
|
Made compatible with NoteFormMixin using 'prefix' argument in get_form
|
||||||
|
"""
|
||||||
|
def get_form(self, prefix):
|
||||||
|
if prefix == 'search':
|
||||||
|
return SearchForm()
|
||||||
|
return super().get_form(prefix)
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
context['search_form'] = self.get_form('search')
|
||||||
|
return context
|
||||||
|
|
||||||
|
""" What to do ?
|
||||||
|
|
||||||
|
- We shall use 'django-watson', need to install it
|
||||||
|
|
||||||
|
- Create view to parse search_form data then redirect
|
||||||
|
- Link form in menu_sujets to this view
|
||||||
|
"""
|
||||||
|
|
||||||
|
class SearchFormProcessView(ProcessFormView):
|
||||||
|
pass
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}<li class="app-menu">
|
||||||
<li class="app-menu">
|
|
||||||
<a href="{% url 'sujets:liste' %}">Liste des sujets
|
<a href="{% url 'sujets:liste' %}">Liste des sujets
|
||||||
<span class="pull-right">{% bootstrap_icon "list" %}</span></a>
|
<span class="pull-right">{% bootstrap_icon "list" %}</span></a>
|
||||||
</li>
|
</li>
|
||||||
{% if user.is_superuser %}{% load bootstrap3 %}
|
{% if search_form %}
|
||||||
|
<form class="navbar-form app-menu" method="POST" action="search/">
|
||||||
|
{% bootstrap_form search_form show_label=False %}
|
||||||
|
{% bootstrap_button 'Chercher' button_type='submit' %}
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
{% if user.is_superuser %}
|
||||||
<li class="dropdown app-menu">
|
<li class="dropdown app-menu">
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
Administration <b class="caret"></b>
|
Administration <b class="caret"></b>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ from sujets.models import Sujet
|
|||||||
from .forms import *
|
from .forms import *
|
||||||
from notes.mixins import NoteFormMixin
|
from notes.mixins import NoteFormMixin
|
||||||
from notes.forms import AutoNoteForm
|
from notes.forms import AutoNoteForm
|
||||||
|
from .search import SearchFormMixin, SearchFormProcessView
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
from website import decorators as website
|
from website import decorators as website
|
||||||
webpage = website.webpage(
|
webpage = website.webpage(
|
||||||
@@ -17,7 +18,7 @@ webpage = website.webpage(
|
|||||||
|
|
||||||
|
|
||||||
@webpage
|
@webpage
|
||||||
class IndexView(NoteFormMixin, generic.TemplateView):
|
class IndexView(SearchFormMixin, NoteFormMixin, generic.TemplateView):
|
||||||
class PageInfo:
|
class PageInfo:
|
||||||
title = "Suivi des bénéficiaires"
|
title = "Suivi des bénéficiaires"
|
||||||
header = "Suivi"
|
header = "Suivi"
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
from django.forms import ModelForm
|
from django.forms import ModelForm
|
||||||
|
from django.forms.extras.widgets import SelectDateWidget
|
||||||
from .models import Sujet
|
from .models import Sujet
|
||||||
|
|
||||||
class SujetCreateForm(ModelForm):
|
class SujetCreateForm(ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Sujet
|
model = Sujet
|
||||||
fields = ['nom', 'surnom', 'prenom', 'genre', 'premiere_rencontre']
|
fields = ['nom', 'surnom', 'prenom', 'genre', 'premiere_rencontre']
|
||||||
|
widgets = {
|
||||||
|
'premiere_rencontre': SelectDateWidget(empty_label=("Année", "Mois", "Jour")),
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user