Fix django admin search
This commit is contained in:
parent
5b64557d74
commit
e1d4de0ea2
|
@ -12,9 +12,10 @@ for model in app_models:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if hasattr(model, 'MY_FIELDS'):
|
if hasattr(model, 'list_display'):
|
||||||
MyAdmin.list_display = model.MY_FIELDS
|
MyAdmin.list_display = model.list_display
|
||||||
MyAdmin.search_fields = model.MY_FIELDS
|
if hasattr(model, 'search_fields'):
|
||||||
|
MyAdmin.search_fields = model.search_fields
|
||||||
|
|
||||||
admin.site.register(model, MyAdmin)
|
admin.site.register(model, MyAdmin)
|
||||||
except AlreadyRegistered:
|
except AlreadyRegistered:
|
||||||
|
|
|
@ -7,12 +7,14 @@ from django.utils.timezone import now, pytz
|
||||||
from simple_history.models import HistoricalRecords
|
from simple_history.models import HistoricalRecords
|
||||||
from simple_history import register
|
from simple_history import register
|
||||||
|
|
||||||
|
TIMEZONE_CALGARY = pytz.timezone('America/Edmonton')
|
||||||
|
|
||||||
register(User)
|
register(User)
|
||||||
|
|
||||||
IGNORE = '+'
|
IGNORE = '+'
|
||||||
|
|
||||||
def today_alberta_tz():
|
def today_alberta_tz():
|
||||||
return datetime.now(pytz.timezone('America/Edmonton')).date()
|
return datetime.now(TIMEZONE_CALGARY).date()
|
||||||
|
|
||||||
class Member(models.Model):
|
class Member(models.Model):
|
||||||
user = models.OneToOneField(User, related_name='member', blank=True, null=True, on_delete=models.SET_NULL)
|
user = models.OneToOneField(User, related_name='member', blank=True, null=True, on_delete=models.SET_NULL)
|
||||||
|
@ -61,7 +63,8 @@ class Member(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords(excluded_fields=['member_forms'])
|
history = HistoricalRecords(excluded_fields=['member_forms'])
|
||||||
|
|
||||||
MY_FIELDS = ['user', 'preferred_name', 'last_name', 'status']
|
list_display = ['user', 'preferred_name', 'last_name', 'status']
|
||||||
|
search_fields = ['user__username', 'preferred_name', 'last_name', 'status']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return getattr(self.user, 'username', 'None')
|
return getattr(self.user, 'username', 'None')
|
||||||
|
|
||||||
|
@ -89,7 +92,8 @@ class Transaction(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords()
|
history = HistoricalRecords()
|
||||||
|
|
||||||
MY_FIELDS = ['date', 'user', 'amount', 'protocoin', 'account_type', 'category']
|
list_display = ['date', 'user', 'amount', 'protocoin', 'account_type', 'category']
|
||||||
|
search_fields = ['date', 'user__username', 'account_type', 'category']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '%s tx %s' % (user.username, date)
|
return '%s tx %s' % (user.username, date)
|
||||||
|
|
||||||
|
@ -101,7 +105,8 @@ class PayPalHint(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords()
|
history = HistoricalRecords()
|
||||||
|
|
||||||
MY_FIELDS = ['account', 'user']
|
list_display = ['account', 'user']
|
||||||
|
search_fields = ['account', 'user__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.account
|
return self.account
|
||||||
|
|
||||||
|
@ -112,7 +117,8 @@ class IPN(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords()
|
history = HistoricalRecords()
|
||||||
|
|
||||||
MY_FIELDS = ['datetime', 'status']
|
list_display = ['datetime', 'status']
|
||||||
|
search_fields = ['datetime', 'status']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.datetime
|
return self.datetime
|
||||||
|
|
||||||
|
@ -128,7 +134,8 @@ class Card(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords(excluded_fields=['last_seen_at', 'last_seen'])
|
history = HistoricalRecords(excluded_fields=['last_seen_at', 'last_seen'])
|
||||||
|
|
||||||
MY_FIELDS = ['card_number', 'user', 'last_seen']
|
list_display = ['card_number', 'user', 'last_seen']
|
||||||
|
search_fields = ['card_number', 'user__username', 'last_seen']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.card_number
|
return self.card_number
|
||||||
|
|
||||||
|
@ -140,7 +147,8 @@ class Course(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords()
|
history = HistoricalRecords()
|
||||||
|
|
||||||
MY_FIELDS = ['name', 'id']
|
list_display = ['name', 'id']
|
||||||
|
search_fields = ['name', 'id']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -156,9 +164,10 @@ class Session(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords()
|
history = HistoricalRecords()
|
||||||
|
|
||||||
MY_FIELDS = ['datetime', 'course', 'instructor']
|
list_display = ['datetime', 'course', 'instructor']
|
||||||
|
search_fields = ['datetime', 'course__name', 'instructor__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '%s @ %s' % (self.course.name, self.datetime)
|
return '%s @ %s' % (self.course.name, self.datetime.astimezone(TIMEZONE_CALGARY).strftime('%Y-%m-%d %-I:%M %p'))
|
||||||
|
|
||||||
class Training(models.Model):
|
class Training(models.Model):
|
||||||
user = models.ForeignKey(User, related_name='training', blank=True, null=True, on_delete=models.SET_NULL)
|
user = models.ForeignKey(User, related_name='training', blank=True, null=True, on_delete=models.SET_NULL)
|
||||||
|
@ -171,7 +180,8 @@ class Training(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords()
|
history = HistoricalRecords()
|
||||||
|
|
||||||
MY_FIELDS = ['session', 'user']
|
list_display = ['session', 'user']
|
||||||
|
search_fields = ['session__course__name', 'user__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '%s taking %s @ %s' % (self.user, self.session.course.name, self.session.datetime)
|
return '%s taking %s @ %s' % (self.user, self.session.course.name, self.session.datetime)
|
||||||
|
|
||||||
|
@ -181,7 +191,8 @@ class Interest(models.Model):
|
||||||
|
|
||||||
satisfied_by = models.ForeignKey(Session, related_name='satisfies', null=True, on_delete=models.SET_NULL)
|
satisfied_by = models.ForeignKey(Session, related_name='satisfies', null=True, on_delete=models.SET_NULL)
|
||||||
|
|
||||||
MY_FIELDS = ['user', 'course', 'satisfied_by']
|
list_display = ['user', 'course', 'satisfied_by']
|
||||||
|
search_fields = ['user__username', 'course__name']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '%s interested in %s' % (self.user, self.course)
|
return '%s interested in %s' % (self.user, self.course)
|
||||||
|
|
||||||
|
@ -197,7 +208,8 @@ class StatsMemberCount(models.Model):
|
||||||
vetted_count = models.IntegerField()
|
vetted_count = models.IntegerField()
|
||||||
subscriber_count = models.IntegerField()
|
subscriber_count = models.IntegerField()
|
||||||
|
|
||||||
MY_FIELDS = ['date', 'member_count', 'green_count', 'six_month_plus_count', 'vetted_count', 'subscriber_count']
|
list_display = ['date', 'member_count', 'green_count', 'six_month_plus_count', 'vetted_count', 'subscriber_count']
|
||||||
|
search_fields = ['date', 'member_count', 'green_count', 'six_month_plus_count', 'vetted_count', 'subscriber_count']
|
||||||
|
|
||||||
class StatsSignupCount(models.Model):
|
class StatsSignupCount(models.Model):
|
||||||
month = models.DateField()
|
month = models.DateField()
|
||||||
|
@ -205,13 +217,15 @@ class StatsSignupCount(models.Model):
|
||||||
retain_count = models.IntegerField(default=0)
|
retain_count = models.IntegerField(default=0)
|
||||||
vetted_count = models.IntegerField(default=0)
|
vetted_count = models.IntegerField(default=0)
|
||||||
|
|
||||||
MY_FIELDS = ['month', 'signup_count', 'retain_count', 'vetted_count']
|
list_display = ['month', 'signup_count', 'retain_count', 'vetted_count']
|
||||||
|
search_fields = ['month', 'signup_count', 'retain_count', 'vetted_count']
|
||||||
|
|
||||||
class StatsSpaceActivity(models.Model):
|
class StatsSpaceActivity(models.Model):
|
||||||
date = models.DateField(default=today_alberta_tz)
|
date = models.DateField(default=today_alberta_tz)
|
||||||
card_scans = models.IntegerField()
|
card_scans = models.IntegerField()
|
||||||
|
|
||||||
MY_FIELDS = ['date', 'card_scans']
|
list_display = ['date', 'card_scans']
|
||||||
|
search_fields = ['date', 'card_scans']
|
||||||
|
|
||||||
class Usage(models.Model):
|
class Usage(models.Model):
|
||||||
user = models.ForeignKey(User, related_name='usages', blank=True, null=True, on_delete=models.SET_NULL)
|
user = models.ForeignKey(User, related_name='usages', blank=True, null=True, on_delete=models.SET_NULL)
|
||||||
|
@ -230,7 +244,8 @@ class Usage(models.Model):
|
||||||
|
|
||||||
history = HistoricalRecords(excluded_fields=['num_reports'])
|
history = HistoricalRecords(excluded_fields=['num_reports'])
|
||||||
|
|
||||||
MY_FIELDS = ['started_at', 'finished_at', 'user', 'num_seconds', 'should_bill']
|
list_display = ['started_at', 'finished_at', 'user', 'num_seconds', 'should_bill']
|
||||||
|
search_fields = ['started_at', 'finished_at', 'user__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.started_at)
|
return str(self.started_at)
|
||||||
|
|
||||||
|
@ -246,7 +261,8 @@ class PinballScore(models.Model):
|
||||||
|
|
||||||
# no history
|
# no history
|
||||||
|
|
||||||
MY_FIELDS = ['started_at', 'game_id', 'player', 'score', 'user']
|
list_display = ['started_at', 'game_id', 'player', 'score', 'user']
|
||||||
|
search_fields = ['started_at', 'game_id', 'player', 'score', 'user__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.started_at)
|
return str(self.started_at)
|
||||||
|
|
||||||
|
@ -259,7 +275,8 @@ class Hosting(models.Model):
|
||||||
|
|
||||||
# no history
|
# no history
|
||||||
|
|
||||||
MY_FIELDS = ['started_at', 'hours', 'finished_at', 'user']
|
list_display = ['started_at', 'hours', 'finished_at', 'user']
|
||||||
|
search_fields = ['started_at', 'hours', 'finished_at', 'user__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.started_at)
|
return str(self.started_at)
|
||||||
|
|
||||||
|
@ -279,7 +296,8 @@ class HistoryIndex(models.Model):
|
||||||
is_system = models.BooleanField()
|
is_system = models.BooleanField()
|
||||||
is_admin = models.BooleanField()
|
is_admin = models.BooleanField()
|
||||||
|
|
||||||
MY_FIELDS = ['history_date', 'history_user', 'history_type', 'owner_name', 'object_name']
|
list_display = ['history_date', 'history_user', 'history_type', 'owner_name', 'object_name']
|
||||||
|
search_fields = ['history_date', 'history_user__username', 'history_type', 'owner_name', 'object_name']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '%s changed %s\'s %s' % (self.history_user, self.owner_name, self.object_name)
|
return '%s changed %s\'s %s' % (self.history_user, self.owner_name, self.object_name)
|
||||||
|
|
||||||
|
@ -290,6 +308,7 @@ class HistoryChange(models.Model):
|
||||||
old = models.TextField()
|
old = models.TextField()
|
||||||
new = models.TextField()
|
new = models.TextField()
|
||||||
|
|
||||||
MY_FIELDS = ['field', 'old', 'new', 'index']
|
list_display = ['field', 'old', 'new', 'index']
|
||||||
|
search_fields = ['field', 'old', 'new', 'index__history_user__username']
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.field
|
return self.field
|
||||||
|
|
Loading…
Reference in New Issue
Block a user