Merge pull request #18740 from edx/pwnage101/add-partner-reporting-model-admin

Add ModelAdmin for UserRetirementPartnerReportingStatus
This commit is contained in:
Troy Sankey
2018-08-08 11:42:46 -04:00
committed by GitHub

View File

@@ -3,7 +3,7 @@ Django admin configuration pages for the user_api app
"""
from django.contrib import admin
from .models import RetirementState, UserRetirementStatus, UserRetirementRequest
from .models import UserRetirementPartnerReportingStatus, RetirementState, UserRetirementStatus, UserRetirementRequest
@admin.register(RetirementState)
@@ -22,7 +22,7 @@ class RetirementStateAdmin(admin.ModelAdmin):
@admin.register(UserRetirementStatus)
class UserRetirementStatusAdmin(admin.ModelAdmin):
"""
Admin interface for the UserRetirementStatusAdmin model.
Admin interface for the UserRetirementStatus model.
"""
list_display = ('user', 'original_username', 'current_state', 'modified')
list_filter = ('current_state',)
@@ -36,10 +36,54 @@ class UserRetirementStatusAdmin(admin.ModelAdmin):
@admin.register(UserRetirementRequest)
class UserRetirementRequestAdmin(admin.ModelAdmin):
"""
Admin interface for the UserRetirementRequestAdmin model.
Admin interface for the UserRetirementRequest model.
"""
list_display = ('user', 'created')
raw_id_fields = ('user',)
class Meta(object):
model = UserRetirementRequest
@admin.register(UserRetirementPartnerReportingStatus)
class UserRetirementPartnerReportingStatusAdmin(admin.ModelAdmin):
"""
Admin interface for the UserRetirementPartnerReportingStatus model.
"""
list_display = (
'user_id', # See user_id() below.
'original_username',
'is_being_processed',
'modified',
)
list_filter = ('is_being_processed',)
raw_id_fields = ('user',)
search_fields = ('user__id', 'original_username', 'original_email', 'original_name')
actions = [
'reset_state', # See reset_state() below.
]
class Meta(object):
model = UserRetirementPartnerReportingStatus
def user_id(self, obj):
"""
List display for the user_id field.
This is an alternative to listing the "user" field directly, since that would print the retired (hashed)
username which isn't super helpful.
"""
return obj.user.id
def reset_state(self, request, queryset):
"""
Action callback for bulk resetting is_being_processed to False (0).
"""
rows_updated = queryset.update(is_being_processed=0)
if rows_updated == 1:
message_bit = "one user was"
else:
message_bit = "%s users were" % rows_updated
self.message_user(request, "%s successfully reset." % message_bit)
reset_state.short_description = 'Reset is_being_processed to False'