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 @@ {{ app.id }} {{ app.character }} {{ app.corporation }} - {{ app.status_description }} + {{ app.get_status_display }} {% endfor %} diff --git a/templates/hr/applications/view.html b/templates/hr/applications/view.html index 24b3c1a..4cde790 100644 --- a/templates/hr/applications/view.html +++ b/templates/hr/applications/view.html @@ -11,7 +11,8 @@ {% ifnotequal app.status 5 %} @@ -24,8 +25,10 @@ Add NoteSend Message to Applicant, {% if app.status < 2 or app.status = 4 %} -Reject Application,  +Reject Application,  +{% ifequal app.blacklisted 0 %} Accept Application,  +{% endifequal %} {% ifnotequal app.status 4 %} Mark as In Query,  {% endifnotequal %} @@ -47,6 +50,16 @@ {% endif %} +{% if app.blacklisted %} +

Blacklist Triggers

+ + +{% for a in app.blacklist_values %} + +{% endfor %} +
Blacklist TypeBlacklisted ValueReason
{{ a.get_type_display }}{{ a.value }}{{ a.reason }}
+{% endif %} + {% if recs %}

Recommendations