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 -*-
# Copyright (C) 2018-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from dal import autocomplete
from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from django.contrib.auth.models import User
from django import forms
@ -44,6 +44,14 @@ class MembershipForm(forms.ModelForm):
class Meta:
model = Membership
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,
form=MembershipForm,

View File

@ -18,4 +18,5 @@ urlpatterns = [
path('user/',views.UserListView.as_view(),name="user_list"),
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/user-autocomplete',views.UserAutocomplete.as_view(),name="user_autocomplete"),
]

View File

@ -2,7 +2,7 @@
# Copyright (C) 2018-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from dal import autocomplete
from django.contrib.auth.mixins import LoginRequiredMixin
from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, ListView, DetailView, UpdateView
@ -115,6 +115,18 @@ class UserListView(LoginRequiredMixin,SingleTableView):
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 ###############
###################################

View File

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