diff --git a/hr/admin.py b/hr/admin.py index c83ec1e..e9d58cb 100644 --- a/hr/admin.py +++ b/hr/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin from django.contrib.auth.models import User from django.contrib.auth.admin import UserAdmin -from hr.models import Application, Recommendation, Audit +from hr.models import Application, Recommendation, Audit, Blacklist class ApplicationAdmin(admin.ModelAdmin): list_display = ('user', 'character', 'status', 'recommendations') @@ -28,3 +28,8 @@ class AuditAdmin(admin.ModelAdmin): admin.site.register(Audit, AuditAdmin) +class BlacklistAdmin(admin.ModelAdmin): + list_display = ('type', 'value', 'created_date', 'created_by') + +admin.site.register(Blacklist, BlacklistAdmin) + diff --git a/hr/models.py b/hr/models.py index 04fc170..501e506 100644 --- a/hr/models.py +++ b/hr/models.py @@ -17,16 +17,12 @@ class Application(models.Model): help_text="Current status of this application request.") @property - def status_description(self): - for choice in APPLICATION_STATUS_CHOICES: - if choice[0] == int(self.status): - return choice[1] - def blacklisted(self): if len(self.blacklist_values) > 0: return True return False + @property def blacklist_values(self): """ Returns a list of blacklist values that apply to the application @@ -35,24 +31,32 @@ class Application(models.Model): blacklist = [] # Check Reddit blacklists - reddit_uids = map(lambda x: x[0].lower(), self.user.redditaccount_set.all().values_list('username')) - objs = Blacklist.objects.filter(type=BLACKLIST_TYPE_REDDIT, value__in=reddit_uids) - blacklist.append(objs) + reddit_uids = self.user.redditaccount_set.all().values_list('username') + reddit = [a[0].lower() for a in reddit_uids if a and a[0]] + + objs = Blacklist.objects.filter(type=BLACKLIST_TYPE_REDDIT, value__in=reddit) + blacklist.extend(objs) # Check Character blacklists - chars = map(lambda x: x[0].lower(), EVEPlayerCharacter.objects.filter(eveaccount__user=self.user).values_list('name')) + chars_list = EVEPlayerCharacter.objects.filter(eveaccount__user=self.user).values_list('name') + chars = [a[0].lower() for a in chars_list if a and a[0]] + objs = Blacklist.objects.filter(type=BLACKLIST_TYPE_CHARACTER, value__in=chars) - blacklist.append(objs) + blacklist.extend(objs) # Check Corporation blacklists - corps = map(lambda x: x[0].lower(), EVEPlayerCharacter.objects.filter(eveaccount__user=self.user).values_list('corporation__name')) - objs = Blacklist.objects.filter(type=BLACKLIST_TYPE_CORPORATION, value__in=corps) - blacklist.append(objs) + corp_list = EVEPlayerCharacter.objects.filter(eveaccount__user=self.user).values_list('corporation__name') + corps = [a[0].lower() for a in corp_list if a and a[0]] + + objs = Blacklist.objects.filter(type=BLACKLIST_TYPE_CORPORATION, value__in=corps) + blacklist.extend(objs) + + # Check Alliance blacklists + alliance_list = EVEPlayerCharacter.objects.filter(eveaccount__user=self.user).values_list('corporation__alliance__name') + alliances = [a[0].lower() for a in alliance_list if a and a[0]] - # Check Character blacklists - alliances = map(lambda x: x[0].lower(), EVEPlayerCharacter.objects.filter(eveaccount__user=self.user).values_list('corporation__alliance__name')) objs = Blacklist.objects.filter(type=BLACKLIST_TYPE_ALLIANCE, value__in=alliances) - blacklist.append(objs) + blacklist.extend(objs) return blacklist @@ -65,7 +69,7 @@ class Application(models.Model): event.user = kwargs['user'] event.event = AUDIT_EVENT_STATUSCHANGE - event.text = "Status changed from %s to %s" % (old_instance.status_description, self.status_description) + event.text = "Status changed from %s to %s" % (old_instance.get_status_display(), self.get_status_display()) event.save() except: pass diff --git a/templates/hr/applications/admin/view_list.html b/templates/hr/applications/admin/view_list.html index 753102b..4043b62 100644 --- a/templates/hr/applications/admin/view_list.html +++ b/templates/hr/applications/admin/view_list.html @@ -17,7 +17,7 @@
| Blacklist Type | Blacklisted Value | Reason |
|---|---|---|
| {{ a.get_type_display }} | {{ a.value }} | {{ a.reason }} |