From 3b4bd33e2a1be9013a8b5a9d90bb818bdfa6842a Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Thu, 3 Oct 2013 21:02:48 +0100 Subject: [PATCH] Rudimentary donations system --- spa/audio.py | 5 ++- static/img/donate-button.png | Bin 0 -> 1868 bytes static/js/app/appv2.coffee | 5 +++ static/js/app/appv2.js | 5 +++ static/js/app/views/widgets/headerView.coffee | 5 +++ static/js/app/views/widgets/headerView.js | 15 +++++--- templates/inc/paypal_donate.html | 0 templates/views/HeaderView.html | 1 + templates/views/dlg/Donate.html | 33 ++++++++++++++++++ 9 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 static/img/donate-button.png create mode 100644 templates/inc/paypal_donate.html create mode 100644 templates/views/dlg/Donate.html diff --git a/spa/audio.py b/spa/audio.py index 2ac60db..6343567 100755 --- a/spa/audio.py +++ b/spa/audio.py @@ -3,7 +3,7 @@ import os import logging from django.conf.urls import url -from django.http import Http404, HttpResponse +from django.http import Http404, HttpResponse, HttpResponseForbidden, HttpResponseNotFound from django.core.servers.basehttp import FileWrapper from sendfile import sendfile @@ -28,6 +28,9 @@ class AudioHandler(object): def download(request, mix_id): try: + if not request.user.is_authenticated(): + return HttpResponseForbidden("Get tae fuck!!!") + mix = Mix.objects.get(pk=mix_id) if mix is not None: if mix.download_allowed: diff --git a/static/img/donate-button.png b/static/img/donate-button.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae7f2c0cd6b755d2ac0e6e1d4b835debdabaffb GIT binary patch literal 1868 zcmV-S2ebHzP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000KNNkl2bJZD}zyL-EsI23krZ}QRJbI-kddcV0d-EIN{fEfDg*MU@& zEl3f_SG+^(o51PMVet5Spq%{-!auDOqzL4zzxo{@e=$-6r`JO0%*UXf{S?$w?}J+R zrXW=yU+31qKi{uLv1>K4n$&^XcR@M*0VpTl5Tq(+RzqLaTe{T#Q)@8rA*d%_7o<2! z{YOAPnN(PQKAC_2a!_mVxhil4JscM7q|rS$)w^OP>wFUb1Bb;hTP0?$bn(roZH4?XuZufkx!Jm z2s=+ZOWi8%56gBao)E*lgt>8quMW|?aauccMFEcw27k{@6T?xSaSr zTI;fxYV|-@!WuWP#VN=q^A%=+e0Y&#VB?BQ25%h`{pxS$j%l>(VikX0GNi!x zh&Ez2-0V#m&|}Tr4ssB~qfK!67muD|G{w6Gq=RN2QkntvaXHkYdB$3{7QTwH|6Gf6 zkWVHR&I9EzUabys-{59fZm26aBjXe zFJ6Sbjr_I1$itt>Pc`tHo|g|1*$5bItUF(uo3xgnqp#r<#bm_-0ntemZIW0d;1v7Ts-+HHuzlR2!#@MN1(2Wu1a0%k1F5axxj z*3SZIV>;BIY{XxR?0LLe`L)OwT40QVy~kk4%5?_v$)vq=K{?AulpO14Fo})Zb=EZHGuqUM;8;4ji+^GNER)Kmq$*bu^W-aZDORuHh~(GXT(vK-p>H(>P1RdMsZViUJ`c6ixcWI`aw$IBE|MtR>}y}?v6d!?P@v~1NTs&i zq8ZTDLj$;xEfm9iO==^kW{!pt@2}STEsgp`^5-mD&Mc7XjMLj^fs`sPwO{rSnc9BG1`)KsJYMZau zItYQfG-xf-*V1dzW6}A!`rRd_Zf78$%(rJczL$FPmNHtN4*r7a+E?CqGE{A&lDDz8 zxOr{kzm14An|WVGPpW;c8Sk&M`tfg9V%q3=2pV(MYjjferbwIh`Qz3?cNcsuW3E$> zPn7xuc4)KjOzaz#*gO#C%+Y9W)ZaE(Ek4(fC6iQ6e2}D?v8uSW=;BC+uy(!K*R|!@ z*G;H}E<|&Vvye~b+nok-Ii6O5DOUrX%)Bv^2s`OJqDq&G=WPXpUk&w8pvgM zS_Q6ve6o%mk3gt&n!qKHPv+b4FusX@RNxZGC+pb$5QIwbvLxSAyhOO$@i5z&(N#2d z(6i%i2z@O`704HPBY&n#ORCB5hdzNHa_0(C1o9Q@5ZJ#-Zf4y_)kE9>0000 + console.log("App: donate") + utils.modal "/dlg/Donate" + true + @listenTo vent, "mix:favourite", (model) -> console.log "App(vent): mix:favourite" model.save 'favourited', !model.get('favourited'), patch: true diff --git a/static/js/app/appv2.js b/static/js/app/appv2.js index dec1cc7..ad07045 100755 --- a/static/js/app/appv2.js +++ b/static/js/app/appv2.js @@ -52,6 +52,11 @@ utils.modal("/dlg/LoginView"); return true; }); + this.listenTo(vent, "app:donate", function() { + console.log("App: donate"); + utils.modal("/dlg/Donate"); + return true; + }); this.listenTo(vent, "mix:favourite", function(model) { console.log("App(vent): mix:favourite"); model.save('favourited', !model.get('favourited'), { diff --git a/static/js/app/views/widgets/headerView.coffee b/static/js/app/views/widgets/headerView.coffee index 2453888..104e183 100755 --- a/static/js/app/views/widgets/headerView.coffee +++ b/static/js/app/views/widgets/headerView.coffee @@ -18,6 +18,7 @@ define ["underscore", "marionette", "vent", "utils", "views/widgets/searchView", events: "click #header-play-pause-button": "togglePlayState" "click #header-login-button": "login" + "click #header-donate-button": "donate" "click #header-live-button.btn-success": "playLive" "click #header-live-button.btn-danger": "pauseLive" ui: @@ -42,6 +43,10 @@ define ["underscore", "marionette", "vent", "utils", "views/widgets/searchView", login: -> vent.trigger('app:login') + donate: -> + console.log("headerView: donate") + vent.trigger('app:donate') + logout: -> utils.showAlert "Success", "You are now logged out" diff --git a/static/js/app/views/widgets/headerView.js b/static/js/app/views/widgets/headerView.js index 378a608..8922cb3 100644 --- a/static/js/app/views/widgets/headerView.js +++ b/static/js/app/views/widgets/headerView.js @@ -1,4 +1,5 @@ -// Generated by CoffeeScript 1.6.2 +// Generated by CoffeeScript 1.4.0 + /* @license @@ -14,16 +15,14 @@ Code provided under the BSD License: __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; define(["underscore", "marionette", "vent", "utils", "views/widgets/searchView", "views/notifications/notificationsListView", "text!/tpl/HeaderView"], function(_, Marionette, vent, utils, SearchView, NotificationsListView, Template) { - var HeaderView, _ref; - + var HeaderView; HeaderView = (function(_super) { var NowrapRegion; __extends(HeaderView, _super); function HeaderView() { - _ref = HeaderView.__super__.constructor.apply(this, arguments); - return _ref; + return HeaderView.__super__.constructor.apply(this, arguments); } NowrapRegion = Marionette.Region.extend({ @@ -39,6 +38,7 @@ Code provided under the BSD License: HeaderView.prototype.events = { "click #header-play-pause-button": "togglePlayState", "click #header-login-button": "login", + "click #header-donate-button": "donate", "click #header-live-button.btn-success": "playLive", "click #header-live-button.btn-danger": "pauseLive" }; @@ -71,6 +71,11 @@ Code provided under the BSD License: return vent.trigger('app:login'); }; + HeaderView.prototype.donate = function() { + console.log("headerView: donate"); + return vent.trigger('app:donate'); + }; + HeaderView.prototype.logout = function() { return utils.showAlert("Success", "You are now logged out"); }; diff --git a/templates/inc/paypal_donate.html b/templates/inc/paypal_donate.html new file mode 100644 index 0000000..e69de29 diff --git a/templates/views/HeaderView.html b/templates/views/HeaderView.html index 5922134..608eac4 100755 --- a/templates/views/HeaderView.html +++ b/templates/views/HeaderView.html @@ -11,6 +11,7 @@