From 4035fc08cf16d0a600732cb1fed647e2023db286 Mon Sep 17 00:00:00 2001 From: afilsaime Date: Thu, 4 Jun 2015 14:18:53 +0200 Subject: [PATCH] implementing the facet selection for user playlist --- src/django-haystack | 2 +- telemeta/haystack_urls.py | 4 +- telemeta/templates/search/addplaylist.html | 83 ++++++++++++++++++- .../search/confirmation_add_playslist.html | 11 +++ telemeta/templates/search/search.html | 2 +- telemeta/views/new_playlist.py | 41 +++++++-- 6 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 telemeta/templates/search/confirmation_add_playslist.html diff --git a/src/django-haystack b/src/django-haystack index 3c88d41f..0576c809 160000 --- a/src/django-haystack +++ b/src/django-haystack @@ -1 +1 @@ -Subproject commit 3c88d41f9a02299d031eef8114dfd4fdc5ed358f +Subproject commit 0576c8093caf59bebedce75e0d711aacfd36f03f diff --git a/telemeta/haystack_urls.py b/telemeta/haystack_urls.py index 0eccfcef..4acb0937 100644 --- a/telemeta/haystack_urls.py +++ b/telemeta/haystack_urls.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, url +from django.views.generic.base import TemplateView from telemeta.views.haystack_search import * from telemeta.views.new_playlist import * from haystack.forms import * @@ -9,5 +10,6 @@ urlpatterns = patterns('', url(r'^quick/(?P[A-Za-z0-9._-]+)/$', HaystackSearch(), name='haystack_search_type'), url(r'^advance/$', HaystackAdvanceSearch(form_class=HayAdvanceForm, template='search/advanceSearch.html'), name='haystack_advance_search'), url(r'^advance/(?P[A-Za-z0-9._-]+)/$', HaystackAdvanceSearch(form_class=HayAdvanceForm, template='search/advanceSearch.html'), name='haystack_advance_search_type'), - url(r'^playlist_add/$', NewPlaylistView.as_view(), name='haystack_playlist'), + url(r'^playlist_add/$', NewPlaylistView().display, name='haystack_playlist'), + url(r'^playlist_confirmation/$',NewPlaylistView().addToPlaylist, name='add_confirmation'), ) diff --git a/telemeta/templates/search/addplaylist.html b/telemeta/templates/search/addplaylist.html index 90235f79..eed259cc 100644 --- a/telemeta/templates/search/addplaylist.html +++ b/telemeta/templates/search/addplaylist.html @@ -7,7 +7,88 @@ {% endblock %} {% block extra_stylesheets %} + {% endblock %} {% block content %} -{{ selected_items_list }} +
{% csrf_token %} + + + + + + + + {% for item in selected_items_list %} + + + + + {% endfor %} + +
{% trans "Title"%}
+ {{item.title}}
+ {% for item in selected_items_list %} + + {% endfor %} + +
+{% endblock %} +{% block extra_javascript %} + + + {% endblock %} \ No newline at end of file diff --git a/telemeta/templates/search/confirmation_add_playslist.html b/telemeta/templates/search/confirmation_add_playslist.html new file mode 100644 index 00000000..26e0f8b4 --- /dev/null +++ b/telemeta/templates/search/confirmation_add_playslist.html @@ -0,0 +1,11 @@ +{% extends 'telemeta/base.html' %} +{% load telemeta_utils %} +{% load i18n %} + +{% block title %} +{% trans "Playlist Confirmation" %} +{% endblock %} +{% block content %} + {{existing_playlists}} +

Added to PlayList

+{% endblock %} \ No newline at end of file diff --git a/telemeta/templates/search/search.html b/telemeta/templates/search/search.html index 8ef1ca52..bd306e59 100644 --- a/telemeta/templates/search/search.html +++ b/telemeta/templates/search/search.html @@ -34,7 +34,7 @@ {% endifequal %} {% include "search/filters.html" %} -
+ {% csrf_token %} {% with object_list as items %}
{% ifequal type 'item' %} diff --git a/telemeta/views/new_playlist.py b/telemeta/views/new_playlist.py index 646342cc..de2f144f 100644 --- a/telemeta/views/new_playlist.py +++ b/telemeta/views/new_playlist.py @@ -2,15 +2,38 @@ from telemeta.views.core import * from telemeta.models import * -class NewPlaylistView(TemplateView): - template_name = 'search/addplaylist.html' - def get_context_data(self, **kwargs): - # Call the base implementation first to get a context - context = super(NewPlaylistView, self).get_context_data(**kwargs) - # Add in the publisher - idlist = self.request.GET.getlist('selected_items_list') +class NewPlaylistView(object): + + def display(self, request): + + template_name = loader.get_template('search/addplaylist.html') + + idlist = request.POST.getlist('selected_items_list') itemlist = [] for itemid in idlist: itemlist.append(MediaItem.objects.all().get(id=itemid)) - context['selected_items_list'] = itemlist - return context \ No newline at end of file + context = RequestContext(request, { + 'selected_items_list': itemlist, + 'existing_playlists': Playlist.objects.all()}) + return HttpResponse(template_name.render(context)) + + def addToPlaylist(self, request): + template_name = loader.get_template('search/confirmation_add_playslist.html') + + idlist = request.POST.getlist('item_id') + selected_playlist_id = request.POST.get('playlist_id') + selected_playlist = Playlist.objects.all().get(id=selected_playlist_id) + + itemlist = [] + for itemid in idlist: + itemlist.append(MediaItem.objects.all().get(id=itemid)) + + for item in itemlist: + resource = PlaylistResource(resource_type='item',public_id='4567891542',resource_id=item.id,playlist=selected_playlist) + resource.save() + + context = RequestContext(request, { + 'existing_playlists': idlist}) + return HttpResponse(template_name.render(context)) + + -- 2.39.5