filter marc records based on a user's wishlist

pull/1/head
eric 2013-07-29 17:59:52 -04:00
parent 9b901d838c
commit a5cc59d6f9
3 changed files with 15 additions and 4 deletions

View File

@ -70,7 +70,11 @@ ul.local li {
{% endfor %}
</ul>
{% endif %}
{% if userlist %}
<h2>Records for <a href="{% url supporter userlist %}">{{ userlist }}</a></h2>
{% else %}
<p> To restrict this list to works on your wishlist <a href="{% url user_marc request.user.username %}">click here</a> </p>
{% endif %}
{% if records %}
<div class="marc">
<form method="POST" id="record_form" action="{% url marc_concatenate %}">

View File

@ -45,6 +45,7 @@ urlpatterns = patterns(
url(r"^landing/$", "home", {'landing': True}, name="landing"),
url(r"^next/$", "next", name="next"),
url(r"^supporter/(?P<supporter_username>[^/]+)/$", "supporter", {'template_name': 'supporter.html'}, name="supporter"),
url(r"^supporter/(?P<userlist>[^/]+)/marc/$", "marc", name="user_marc"),
url(r"^accounts/manage/$", login_required(ManageAccount.as_view()), name="manage_account"),
url(r'^accounts/superlogin/$', 'superlogin', name='superlogin'),
url(r"^search/$", "search", name="search"),

View File

@ -2610,7 +2610,7 @@ def send_to_kindle_graceful(request, message):
{'message': int(message)}
)
def marc(request):
def marc(request, userlist=None):
link_target = 'UNGLUE'
libpref = {'marc_link_target': settings.MARC_CHOICES[1]}
try:
@ -2619,11 +2619,17 @@ def marc(request):
except:
if not request.user.is_anonymous():
libpref = models.Libpref(user=request.user)
records = models.MARCRecord.objects.filter(link_target=link_target)
if userlist:
records = []
user = get_object_or_404(User,username=userlist)
for work in user.wishlist.works.all():
records.extend(models.MARCRecord.objects.filter(edition__work=work,link_target=link_target))
else:
records = models.MARCRecord.objects.filter(link_target=link_target)
return render(
request,
'marc.html',
{'records': records, 'libpref' : libpref }
{'records': records, 'libpref' : libpref , 'userlist' : userlist}
)
class MARCUngluifyView(FormView):