Merge pull request #752 from ae-utbm/autocomplete-admin

use autocomplete_fields in admin
This commit is contained in:
thomas girod 2024-08-01 13:01:27 +02:00 committed by GitHub
commit 946f35c601
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 56 additions and 92 deletions

View File

@ -12,7 +12,6 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from club.models import Club, Membership
@ -32,4 +31,4 @@ class MembershipAdmin(admin.ModelAdmin):
"user__last_name",
"club__name",
)
form = make_ajax_form(Membership, {"user": "users"})
autocomplete_fields = ("user",)

View File

@ -12,7 +12,6 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from haystack.admin import SearchModelAdmin
@ -23,19 +22,13 @@ from com.models import *
class NewsAdmin(SearchModelAdmin):
list_display = ("title", "type", "club", "author")
search_fields = ("title", "summary", "content")
form = make_ajax_form(
News,
{
"author": "users",
"moderator": "users",
},
)
autocomplete_fields = ("author", "moderator")
@admin.register(Poster)
class PosterAdmin(SearchModelAdmin):
list_display = ("name", "club", "date_begin", "date_end", "moderator")
form = make_ajax_form(Poster, {"moderator": "users"})
autocomplete_fields = ("moderator",)
@admin.register(Weekmail)

View File

@ -13,30 +13,30 @@
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from django.contrib.auth.models import Group as AuthGroup
from haystack.admin import SearchModelAdmin
from core.models import MetaGroup, Page, RealGroup, SithFile, User
from core.models import Group, Page, SithFile, User
admin.site.unregister(AuthGroup)
admin.site.register(MetaGroup)
admin.site.register(RealGroup)
@admin.register(Group)
class GroupAdmin(admin.ModelAdmin):
list_display = ("name", "description", "is_meta")
list_filter = ("is_meta",)
search_fields = ("name",)
@admin.register(User)
class UserAdmin(SearchModelAdmin):
class UserAdmin(admin.ModelAdmin):
list_display = ("first_name", "last_name", "username", "email", "nick_name")
form = make_ajax_form(
User,
{
"godfathers": "users",
"home": "files", # ManyToManyField
"profile_pict": "files", # ManyToManyField
"avatar_pict": "files", # ManyToManyField
"scrub_pict": "files", # ManyToManyField
},
autocomplete_fields = (
"godfathers",
"home",
"profile_pict",
"avatar_pict",
"scrub_pict",
)
search_fields = ["first_name", "last_name", "username"]
@ -44,25 +44,12 @@ class UserAdmin(SearchModelAdmin):
@admin.register(Page)
class PageAdmin(admin.ModelAdmin):
list_display = ("name", "_full_name", "owner_group")
form = make_ajax_form(
Page,
{
"lock_user": "users",
"owner_group": "groups",
"edit_groups": "groups",
"view_groups": "groups",
},
)
search_fields = ("name",)
autocomplete_fields = ("lock_user", "owner_group", "edit_groups", "view_groups")
@admin.register(SithFile)
class SithFileAdmin(admin.ModelAdmin):
list_display = ("name", "owner", "size", "date", "is_in_sas")
form = make_ajax_form(
SithFile,
{
"parent": "files",
"owner": "users",
"moderator": "users",
},
) # ManyToManyField
autocomplete_fields = ("parent", "owner", "moderator")
search_fields = ("name", "parent__name")

View File

@ -12,7 +12,6 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from haystack.admin import SearchModelAdmin
@ -41,7 +40,7 @@ class CustomerAdmin(SearchModelAdmin):
"user__first_name",
"user__last_name",
)
form = make_ajax_form(Customer, {"user": "users"})
autocomplete_fields = ("user",)
@admin.register(BillingInfo)
@ -52,18 +51,13 @@ class BillingInfoAdmin(admin.ModelAdmin):
@admin.register(Counter)
class CounterAdmin(admin.ModelAdmin):
list_display = ("name", "club", "type")
form = make_ajax_form(
Counter,
{
"products": "products",
"sellers": "users",
},
)
autocomplete_fields = ("products", "sellers")
@admin.register(Refilling)
class RefillingAdmin(SearchModelAdmin):
list_display = ("customer", "amount", "counter", "payment_method", "date")
autocomplete_fields = ("customer", "operator")
search_fields = (
"customer__user__username",
"customer__user__first_name",
@ -71,13 +65,6 @@ class RefillingAdmin(SearchModelAdmin):
"customer__account_id",
"counter__name",
)
form = make_ajax_form(
Refilling,
{
"customer": "customers",
"operator": "users",
},
)
@admin.register(Selling)
@ -90,13 +77,7 @@ class SellingAdmin(SearchModelAdmin):
"customer__account_id",
"counter__name",
)
form = make_ajax_form(
Selling,
{
"customer": "customers",
"seller": "users",
},
)
autocomplete_fields = ("customer", "seller")
@admin.register(Permanency)
@ -108,7 +89,7 @@ class PermanencyAdmin(SearchModelAdmin):
"user__last_name",
"counter__name",
)
form = make_ajax_form(Permanency, {"user": "users"})
autocomplete_fields = ("user",)
@admin.register(ProductType)
@ -125,7 +106,7 @@ class CashRegisterSummaryAdmin(SearchModelAdmin):
"user__last_name",
"counter__name",
)
form = make_ajax_form(CashRegisterSummary, {"user": "users"})
autocomplete_fields = ("user",)
@admin.register(Eticket)

View File

@ -12,7 +12,6 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from eboutic.models import *
@ -21,7 +20,7 @@ from eboutic.models import *
@admin.register(Basket)
class BasketAdmin(admin.ModelAdmin):
list_display = ("user", "date", "get_total")
form = make_ajax_form(Basket, {"user": "users"})
autocomplete_fields = ("user",)
@admin.register(BasketItem)
@ -34,7 +33,7 @@ class BasketItemAdmin(admin.ModelAdmin):
class InvoiceAdmin(admin.ModelAdmin):
list_display = ("user", "date", "validated")
search_fields = ("user__username", "user__first_name", "user__last_name")
form = make_ajax_form(Invoice, {"user": "users"})
autocomplete_fields = ("user",)
@admin.register(InvoiceItem)

View File

@ -1,4 +1,3 @@
from ajax_select import make_ajax_form
from django.contrib import admin
from election.models import Candidature, Election, ElectionList, Role
@ -13,7 +12,7 @@ class ElectionAdmin(admin.ModelAdmin):
"is_vote_finished",
"archived",
)
form = make_ajax_form(Election, {"voters": "users"})
autocomplete_fields = ("voters",)
@admin.register(Role)
@ -31,7 +30,7 @@ class ElectionListAdmin(admin.ModelAdmin):
@admin.register(Candidature)
class CandidatureAdmin(admin.ModelAdmin):
list_display = ("user", "role", "election_list")
form = make_ajax_form(Candidature, {"user": "users"})
autocomplete_fields = ("user",)
# Votes must stay fully anonymous, so no ModelAdmin for Vote model

View File

@ -19,19 +19,16 @@ from haystack.admin import SearchModelAdmin
from forum.models import *
@admin.register(Forum)
class ForumAdmin(SearchModelAdmin):
search_fields = ["name", "description"]
@admin.register(ForumTopic)
class ForumTopicAdmin(SearchModelAdmin):
search_fields = ["_title", "description"]
@admin.register(ForumMessage)
class ForumMessageAdmin(SearchModelAdmin):
search_fields = ["title", "message"]
admin.site.register(Forum, ForumAdmin)
admin.site.register(ForumTopic, ForumTopicAdmin)
admin.site.register(ForumMessage, ForumMessageAdmin)
admin.site.register(ForumUserInfo)

View File

@ -12,7 +12,6 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from launderette.models import *
@ -31,10 +30,10 @@ class MachineAdmin(admin.ModelAdmin):
@admin.register(Token)
class TokenAdmin(admin.ModelAdmin):
list_display = ("name", "launderette", "type", "user")
form = make_ajax_form(Token, {"user": "users"})
autocomplete_fields = ("user",)
@admin.register(Slot)
class SlotAdmin(admin.ModelAdmin):
list_display = ("machine", "user", "start_date")
form = make_ajax_form(Slot, {"user": "users"})
autocomplete_fields = ("user",)

View File

@ -20,7 +20,6 @@
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from haystack.admin import SearchModelAdmin
@ -31,7 +30,7 @@ from pedagogy.models import UV, UVComment, UVCommentReport
class UVAdmin(admin.ModelAdmin):
list_display = ("code", "title", "credit_type", "credits", "department")
search_fields = ("code", "title", "department")
form = make_ajax_form(UV, {"author": "users"})
autocomplete_fields = ("author",)
@admin.register(UVComment)
@ -43,7 +42,7 @@ class UVCommentAdmin(admin.ModelAdmin):
"author__last_name",
"uv__code",
)
form = make_ajax_form(UVComment, {"author": "users"})
autocomplete_fields = ("author",)
@admin.register(UVCommentReport)
@ -55,4 +54,4 @@ class UVCommentReportAdmin(SearchModelAdmin):
"reporter__last_name",
"comment__uv__code",
)
form = make_ajax_form(UVCommentReport, {"reporter": "users"})
autocomplete_fields = ("reporter",)

View File

@ -15,8 +15,20 @@
from django.contrib import admin
from sas.models import *
from sas.models import Album, PeoplePictureRelation, Picture
@admin.register(Picture)
class PictureAdmin(admin.ModelAdmin):
list_display = ("name", "parent", "date", "size", "is_moderated")
search_fields = ("name",)
autocomplete_fields = ("owner", "parent", "edit_groups", "view_groups", "moderator")
@admin.register(PeoplePictureRelation)
class PeoplePictureRelationAdmin(admin.ModelAdmin):
list_display = ("picture", "user")
autocomplete_fields = ("picture", "user")
admin.site.register(Album)
# admin.site.register(Picture)
admin.site.register(PeoplePictureRelation)

View File

@ -12,7 +12,6 @@
# OR WITHIN THE LOCAL FILE "LICENSE"
#
#
from ajax_select import make_ajax_form
from django.contrib import admin
from subscription.models import Subscription
@ -33,4 +32,4 @@ class SubscriptionAdmin(admin.ModelAdmin):
"subscription_end",
"subscription_type",
)
form = make_ajax_form(Subscription, {"member": "users"})
autocomplete_fields = ("member",)