Club members autocomplete

This commit is contained in:
Yohann D'ANELLO 2020-02-08 20:39:37 +01:00
parent 7bafc89713
commit ce012400e1
4 changed files with 28 additions and 2 deletions

View File

@ -1,7 +1,7 @@
# -*- mode: python; coding: utf-8 -*- # -*- mode: python; coding: utf-8 -*-
# Copyright (C) 2018-2019 by BDE ENS Paris-Saclay # Copyright (C) 2018-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from dal import autocomplete
from django.contrib.auth.forms import UserChangeForm, UserCreationForm from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django import forms from django import forms
@ -44,6 +44,14 @@ class MembershipForm(forms.ModelForm):
class Meta: class Meta:
model = Membership model = Membership
fields = ('user','roles','date_start') fields = ('user','roles','date_start')
widgets = {
'user': autocomplete.ModelSelect2(url='member:user_autocomplete',
attrs={
'data-placeholder': 'Nom ...',
'data-minimum-input-length': 1,
}),
}
MemberFormSet = forms.modelformset_factory(Membership, MemberFormSet = forms.modelformset_factory(Membership,
form=MembershipForm, form=MembershipForm,

View File

@ -18,4 +18,5 @@ urlpatterns = [
path('user/',views.UserListView.as_view(),name="user_list"), path('user/',views.UserListView.as_view(),name="user_list"),
path('user/<int:pk>',views.UserDetailView.as_view(),name="user_detail"), path('user/<int:pk>',views.UserDetailView.as_view(),name="user_detail"),
path('user/<int:pk>/update',views.UserUpdateView.as_view(),name="user_update_profile"), path('user/<int:pk>/update',views.UserUpdateView.as_view(),name="user_update_profile"),
path('user/user-autocomplete',views.UserAutocomplete.as_view(),name="user_autocomplete"),
] ]

View File

@ -2,7 +2,7 @@
# Copyright (C) 2018-2019 by BDE ENS Paris-Saclay # Copyright (C) 2018-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from dal import autocomplete
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, ListView, DetailView, UpdateView from django.views.generic import CreateView, ListView, DetailView, UpdateView
@ -115,6 +115,18 @@ class UserListView(LoginRequiredMixin,SingleTableView):
return context return context
class UserAutocomplete(autocomplete.Select2QuerySetView):
"""
Auto complete note by aliases
"""
def get_queryset(self):
qs = User.objects.all()
if self.q:
qs = qs.filter(username__regex=self.q)
return qs
################################### ###################################
############## CLUB ############### ############## CLUB ###############
################################### ###################################

View File

@ -24,6 +24,11 @@ class TransactionForm(forms.ModelForm):
fields = ('destination', 'reason', 'amount',) fields = ('destination', 'reason', 'amount',)
widgets = { widgets = {
'source': autocomplete.ModelSelect2(url='note:note_autocomplete',
attrs={
'data-placeholder': 'Note ...',
'data-minimum-input-length': 1,
}),
'destination': autocomplete.ModelSelect2(url='note:note_autocomplete', 'destination': autocomplete.ModelSelect2(url='note:note_autocomplete',
attrs={ attrs={
'data-placeholder': 'Note ...', 'data-placeholder': 'Note ...',