Disable recommendations for people with blacklists

This commit is contained in:
2011-08-06 21:24:48 +01:00
parent ce9b7b6ebc
commit 104ac78f5b
3 changed files with 12 additions and 4 deletions

View File

@@ -8,11 +8,13 @@
<h3>Applications</h3> <h3>Applications</h3>
<p><a href="{% url hr.views.view_applications %}">View your current open applications</a><br/> <p><a href="{% url hr.views.view_applications %}">View your current open applications</a><br/>
<a href="{% url hr.views.add_application %}">Create a application</a><br/></p> <a href="{% url hr.views.add_application %}">Create a application</a><br/></p>
{% if can_recommend %}
<h3>Recommendations</h3> <h3>Recommendations</h3>
<p> <p>
<a href="{% url hr.views.view_recommendations %}">View your current open recommendations</a><br/> <a href="{% url hr.views.view_recommendations %}">View your current open recommendations</a><br/>
<a href="{% url hr.views.add_recommendation %}">Add a recommendation</a><br/> <a href="{% url hr.views.add_recommendation %}">Add a recommendation</a><br/>
</p> </p>
{% endif %}
{% if hrstaff %} {% if hrstaff %}
<h3>HR Admin</h3> <h3>HR Admin</h3>

View File

@@ -21,13 +21,13 @@ def installed(value):
return False return False
def blacklist_values(user): def blacklist_values(user, level=BLACKLIST_LEVEL_NOTE):
""" """
Returns a list of blacklist values that apply to the application Returns a list of blacklist values that apply to the application
""" """
blacklist = [] blacklist = []
bl_items = Blacklist.objects.filter(models.Q(expiry_date__gt=datetime.now()) | models.Q(expiry_date=None)) bl_items = Blacklist.objects.filter(level__lte=level, models.Q(expiry_date__gt=datetime.now()) | models.Q(expiry_date=None))
# Check Reddit blacklists # Check Reddit blacklists
if installed('reddit'): if installed('reddit'):

View File

@@ -1,6 +1,6 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
from django.utils import simplejson from django.utils import simplejson
from django.http import HttpResponseRedirect, HttpResponse from django.http import HttpResponseRedirect, HttpResponse, Http404
from django.shortcuts import render_to_response, get_object_or_404, redirect from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib import messages from django.contrib import messages
@@ -10,7 +10,7 @@ from django.template import RequestContext
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.conf import settings from django.conf import settings
from utils import installed from utils import installed, blacklist_values
from eve_api.models import EVEAccount, EVEPlayerCorporation, EVEPlayerCharacter from eve_api.models import EVEAccount, EVEPlayerCorporation, EVEPlayerCharacter
from hr.forms import CreateRecommendationForm, CreateApplicationForm, NoteForm, BlacklistUserForm, AdminNoteForm from hr.forms import CreateRecommendationForm, CreateApplicationForm, NoteForm, BlacklistUserForm, AdminNoteForm
@@ -64,6 +64,7 @@ def check_permissions(user, application=None):
@login_required @login_required
def index(request): def index(request):
hrstaff = check_permissions(request.user) hrstaff = check_permissions(request.user)
can_recommend = len(blacklist_values(request.user, BLACKLIST_LEVEL_ADVISORY))
return render_to_response('hr/index.html', locals(), context_instance=RequestContext(request)) return render_to_response('hr/index.html', locals(), context_instance=RequestContext(request))
### Application Management ### Application Management
@@ -135,6 +136,11 @@ def view_recommendations(request):
@login_required @login_required
def add_recommendation(request): def add_recommendation(request):
""" Add a recommendation to a user's application """
# If the person has a blacklist, stop recommendations
if len(blacklist_values(request.user, BLACKLIST_LEVEL_ADVISORY)):
raise Http404
clsform = CreateRecommendationForm(request.user) clsform = CreateRecommendationForm(request.user)
if request.method == 'POST': if request.method == 'POST':