Changeset View
Changeset View
Standalone View
Standalone View
blender_fund_main/admin.py
| Show All 9 Lines | from looper.admin import subscription_link, create_admin_fk_link, plan_link, EditableWhenNewMixin, \ | ||||
| copy_to_clipboard_link, USER_SEARCH_FIELDS | copy_to_clipboard_link, USER_SEARCH_FIELDS | ||||
| import looper.forms | import looper.forms | ||||
| import looper.models | import looper.models | ||||
| from . import models, forms | from . import models, forms | ||||
| admin.site.site_header = 'Blender Development Fund' | admin.site.site_header = 'Blender Development Fund' | ||||
| admin.site.index_title = 'Fund Membership and Subscription Administration' | admin.site.index_title = 'Fund Membership and Subscription Administration' | ||||
| membership_link = create_admin_fk_link( | |||||
| 'membership', 'Membership', 'admin:blender_fund_main_membership_change' | |||||
| ) | |||||
| user_link = create_admin_fk_link('user', 'user', 'admin:auth_user_change') | user_link = create_admin_fk_link('user', 'user', 'admin:auth_user_change') | ||||
| @decorators.short_description('Links for Customers') | @decorators.short_description('Links for Customers') | ||||
| def subscribe_memlev_link(memlev: models.MembershipLevel) -> str: | def subscribe_memlev_link(memlev: models.MembershipLevel) -> str: | ||||
| """Show the link to pay for & create a subscription, can be sent to users.""" | """Show the link to pay for & create a subscription, can be sent to users.""" | ||||
| if not memlev or not memlev.pk: | if not memlev or not memlev.pk: | ||||
| return '' | return '' | ||||
| ▲ Show 20 Lines • Show All 106 Lines • ▼ Show 20 Lines | class BadgerQueuedCallAdmin(admin.ModelAdmin): | ||||
| model = models.BadgerQueuedCall | model = models.BadgerQueuedCall | ||||
| list_display = ('action', 'badge', user_link, 'error_code', 'error_msg', 'created', | list_display = ('action', 'badge', user_link, 'error_code', 'error_msg', 'created', | ||||
| 'last_delivery_attempt') | 'last_delivery_attempt') | ||||
| list_filter = ('action', 'badge', 'user') | list_filter = ('action', 'badge', 'user') | ||||
| search_fields = ('badge', USER_SEARCH_FIELDS, 'error_code', 'error_msg') | search_fields = ('badge', USER_SEARCH_FIELDS, 'error_code', 'error_msg') | ||||
| admin.site.unregister(User) | admin.site.unregister(User) | ||||
| admin.site.unregister(looper.models.Subscription) | |||||
| @admin.register(looper.models.Subscription) | |||||
| class SubscriptionAdmin(looper.admin.SubscriptionAdmin): | |||||
| """Override Subscription admin, adding a link to the membership.""" | |||||
| readonly_fields = looper.admin.SubscriptionAdmin.readonly_fields + [membership_link] | |||||
| fieldsets = [ | |||||
| ( | |||||
| name, | |||||
| { | |||||
| 'fields': _set['fields'] + [membership_link] | |||||
| } if name is None else _set | |||||
| ) for name, _set in looper.admin.SubscriptionAdmin.fieldsets | |||||
| ] | |||||
| @admin.register(User) | @admin.register(User) | ||||
| class UserAdmin(BaseUserAdmin): | class UserAdmin(BaseUserAdmin): | ||||
| list_display = ('username', 'email', 'user_memberships_link', 'is_staff', 'is_superuser') | list_display = ('username', 'email', 'user_memberships_link', 'is_staff', 'is_superuser') | ||||
| add_fieldsets = ( | add_fieldsets = ( | ||||
| (None, { | (None, { | ||||
| ▲ Show 20 Lines • Show All 78 Lines • Show Last 20 Lines | |||||