-Subproject commit 3c88d41f9a02299d031eef8114dfd4fdc5ed358f
+Subproject commit 0576c8093caf59bebedce75e0d711aacfd36f03f
# -*- 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 *
url(r'^quick/(?P<type>[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<type>[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'),
)
{% endblock %}
{% block extra_stylesheets %}
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}telemeta/css/jquery-ui.css" />
+ <style>
+ .overflow{
+ max-height:200px;
+ }
+
+ .module ul, li {
+ border-radius: 0px 0px 0px 0px;
+ }
+
+ .ui-selectmenu-button.ui-widget.ui-state-default{
+ background-image:none;
+ background-color:#6a0307;
+ border-color:#6a0307;
+ color:white;
+ }
+ .ui-selectmenu-button.ui-widget.ui-state-hover{
+ background-image:none;
+ background-color:#6a0307;
+ border-color:#6a0307;
+ color:white;
+ }
+
+ .ui-selectmenu-button.ui-widget.ui-state-focus{
+ background-image:none;
+ background-color:#6a0307;
+ border-color:#6a0307;
+ color:white;
+ }
+
+ .ui-selectmenu-button.ui-widget.ui-state-default .ui-icon{
+ background-image:url("{{ STATIC_URL }}telemeta/css/images/ui-icons_ffffff_256x240.png");
+ }
+
+ .ui-menu-item{
+ background-color:white;
+ }
+
+ .ui-menu-item.ui-state-focus{
+ background-image:none;
+ background-color:#6a0307;
+ border-color:#6a0307;
+ color:white;
+ }
+
+ </style>
{% endblock %}
{% block content %}
-{{ selected_items_list }}
+ <form method="POST" action="{%url "add_confirmation"%}">{% csrf_token %}
+ <select name="playlist_id" style="min-width:200px" id="selection">
+ {% for playlist in existing_playlists %}
+ <option value="{{playlist.id}}">{{playlist.title}}</option>
+ {% endfor %}
+ </select>
+ <table class="listing">
+ <thead>
+ <tr><th>{% trans "Title"%}</th>
+
+ </tr>
+ </thead><tbody>
+ {% for item in selected_items_list %}
+ <tr>
+
+ <td><a href="#">
+ {{item.title}}</a></td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ {% for item in selected_items_list %}
+ <input type="hidden" name="item_id" value="{{item.id}}"/>
+ {% endfor %}
+ <input type="submit" value="add to playlist"/>
+ </form>
+{% endblock %}
+{% block extra_javascript %}
+ <script src="{{ STATIC_URL }}telemeta/js/jquery.js" type="text/javascript"></script>
+ <script src="{{ STATIC_URL }}telemeta/js/jquery-ui.min.js" type="text/javascript"></script>
+ <script>
+ $(document).ready(function() {
+ $("#selection").selectmenu({
+ icons : {button: "ui-icon-carat-2-n-s"}
+ }).selectmenu("menuWidget").addClass("overflow");
+ });
+ </script>
{% endblock %}
\ No newline at end of file
--- /dev/null
+{% extends 'telemeta/base.html' %}
+{% load telemeta_utils %}
+{% load i18n %}
+
+{% block title %}
+{% trans "Playlist Confirmation" %}
+{% endblock %}
+{% block content %}
+ {{existing_playlists}}
+ <h1>Added to PlayList</h1>
+{% endblock %}
\ No newline at end of file
{% endifequal %}
{% include "search/filters.html" %}
- <form method="GET" action="{% url "haystack_playlist"%} ">
+ <form method="POST" action="{% url "haystack_playlist"%} ">{% csrf_token %}
{% with object_list as items %}
<div class="fullpage">
{% ifequal type 'item' %}
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))
+
+