mirror of
https://github.com/fergalmoran/dss.git
synced 2025-12-26 03:27:33 +00:00
Added stream function
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
import pip
|
||||
from subprocess import call
|
||||
|
||||
for dist in pip.get_installed_distributions():
|
||||
call("pip install --upgrade " + dist.project_name, shell=True)
|
||||
@@ -151,6 +151,8 @@ class MixResource(BackboneCompatibleResource):
|
||||
|
||||
f_user = request.GET.get('user', None)
|
||||
|
||||
if request.GET.get('stream'):
|
||||
semi_filtered = semi_filtered.filter(user__in=request.user.get_profile().following.all())
|
||||
if f_user is not None:
|
||||
semi_filtered = semi_filtered.filter(user__slug=f_user)
|
||||
else:
|
||||
|
||||
@@ -37,26 +37,18 @@ class UserResource(BackboneCompatibleResource):
|
||||
}
|
||||
authorization = Authorization()
|
||||
authentication = Authentication()
|
||||
favourites = fields.ToManyField('spa.api.v1.MixResource', 'favourites')
|
||||
|
||||
def _hydrateBitmapOption(self, source, comparator):
|
||||
return True if (source & comparator) != 0 else False
|
||||
|
||||
def prepend_urls(self):
|
||||
return [
|
||||
url(r"^(?P<resource_name>%s)/(?P<slug>[\w\d_.-]+)/favourites%s$" % (
|
||||
self._meta.resource_name, trailing_slash()),
|
||||
self.wrap_view('get_user_favourites'), name="api_get_user_favourites"),
|
||||
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)/$" % self._meta.resource_name,
|
||||
self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
|
||||
url(r"^(?P<resource_name>%s)/(?P<slug>[\w\d_.-]+)/$" % self._meta.resource_name,
|
||||
self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
|
||||
]
|
||||
|
||||
def ___apply_filters(self, request, applicable_filters):
|
||||
semi_filtered = super(UserResource, self).apply_filters(request, applicable_filters)
|
||||
return semi_filtered
|
||||
|
||||
def apply_filters(self, request, applicable_filters):
|
||||
semi_filtered = super(UserResource, self).apply_filters(request, applicable_filters)
|
||||
q = request.GET.get('q', None)
|
||||
|
||||
@@ -15,6 +15,7 @@ from spa.models.userprofile import UserProfile
|
||||
from spa.models._basemodel import _BaseModel
|
||||
from core.utils.file import generate_save_file_name
|
||||
|
||||
|
||||
def mix_file_name(instance, filename):
|
||||
return generate_save_file_name(instance.uid, 'mixes', filename)
|
||||
|
||||
|
||||
24
spa/urls.py
24
spa/urls.py
@@ -13,17 +13,17 @@ from spa.api.v1.ReleaseResource import ReleaseResource
|
||||
from spa.api.v1.UserResource import UserResource
|
||||
from spa.api.v1.ActivityResource import ActivityResource
|
||||
|
||||
v1_api = Api(api_name='v1')
|
||||
v1_api.register(ChatResource())
|
||||
v1_api.register(CommentResource())
|
||||
v1_api.register(MixResource())
|
||||
v1_api.register(ReleaseResource())
|
||||
v1_api.register(ReleaseAudioResource())
|
||||
v1_api.register(EventResource())
|
||||
v1_api.register(UserResource())
|
||||
v1_api.register(ActivityResource())
|
||||
v1_api.register(NotificationResource())
|
||||
v1_api.register(DebugResource())
|
||||
api = Api(api_name='v1')
|
||||
api.register(ChatResource())
|
||||
api.register(CommentResource())
|
||||
api.register(MixResource())
|
||||
api.register(ReleaseResource())
|
||||
api.register(ReleaseAudioResource())
|
||||
api.register(EventResource())
|
||||
api.register(UserResource())
|
||||
api.register(ActivityResource())
|
||||
api.register(NotificationResource())
|
||||
api.register(DebugResource())
|
||||
|
||||
ajax = AjaxHandler()
|
||||
audio = AudioHandler()
|
||||
@@ -44,7 +44,7 @@ urlpatterns = patterns(
|
||||
url(r'_upload/', 'spa.ajax.upload', name='jfu_upload'),
|
||||
url(r'^ajax/', include(ajax.urls)),
|
||||
url(r'^audio/', include(audio.urls)),
|
||||
url(r'^api/', include(v1_api.urls)),
|
||||
url(r'^api/', include(api.urls)),
|
||||
url(r'^comments/', include('django.contrib.comments.urls')),
|
||||
(r'^.*/$', 'spa.views.default')
|
||||
)
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
define ['app', 'marionette', 'vent', 'utils'
|
||||
'views/mix/mixListLayout', 'views/mix/mixListView', 'views/mix/mixDetailView'
|
||||
'views/stream/streamListLayout',
|
||||
'views/mix/mixEditView', 'views/user/userProfileView', 'views/user/userListView', 'views/user/userEditView',
|
||||
'models/mix/mixItem', 'models/mix/mixCollection', 'models/user/userItem'],
|
||||
(App, Marionette, vent, utils,
|
||||
MixListLayout, MixListView, MixDetailView,
|
||||
StreamListLayout,
|
||||
MixEditView, UserProfileView, UserListView, UserEditView,
|
||||
MixItem, MixCollection, UserItem)->
|
||||
class DssController extends Marionette.Controller
|
||||
@@ -19,6 +21,9 @@ define ['app', 'marionette', 'vent', 'utils'
|
||||
app = require('app')
|
||||
app.contentRegion.show(new MixListLayout(options or {order_by: 'latest'}))
|
||||
|
||||
showStreamList: () ->
|
||||
@showMixList({stream: true})
|
||||
|
||||
showMixListType: (type) ->
|
||||
@showMixList({order_by: type})
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var __hasProp = {}.hasOwnProperty,
|
||||
__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(['app', 'marionette', 'vent', 'utils', 'views/mix/mixListLayout', 'views/mix/mixListView', 'views/mix/mixDetailView', 'views/mix/mixEditView', 'views/user/userProfileView', 'views/user/userListView', 'views/user/userEditView', 'models/mix/mixItem', 'models/mix/mixCollection', 'models/user/userItem'], function(App, Marionette, vent, utils, MixListLayout, MixListView, MixDetailView, MixEditView, UserProfileView, UserListView, UserEditView, MixItem, MixCollection, UserItem) {
|
||||
define(['app', 'marionette', 'vent', 'utils', 'views/mix/mixListLayout', 'views/mix/mixListView', 'views/mix/mixDetailView', 'views/stream/streamListLayout', 'views/mix/mixEditView', 'views/user/userProfileView', 'views/user/userListView', 'views/user/userEditView', 'models/mix/mixItem', 'models/mix/mixCollection', 'models/user/userItem'], function(App, Marionette, vent, utils, MixListLayout, MixListView, MixDetailView, StreamListLayout, MixEditView, UserProfileView, UserListView, UserEditView, MixItem, MixCollection, UserItem) {
|
||||
var DssController;
|
||||
DssController = (function(_super) {
|
||||
|
||||
@@ -30,6 +30,12 @@
|
||||
}));
|
||||
};
|
||||
|
||||
DssController.prototype.showStreamList = function() {
|
||||
return this.showMixList({
|
||||
stream: true
|
||||
});
|
||||
};
|
||||
|
||||
DssController.prototype.showMixListType = function(type) {
|
||||
return this.showMixList({
|
||||
order_by: type
|
||||
|
||||
@@ -13,7 +13,8 @@ define ['marionette', 'vent', 'app.lib/controller'],
|
||||
"mix/edit/:slug": "editMix",
|
||||
|
||||
"chat": "showChat",
|
||||
#"random": "showRandomMix",
|
||||
"random": "showRandomMix",
|
||||
"stream": "showStreamList",
|
||||
|
||||
"users": "showUserList"
|
||||
"user/:slug/favourites": "showUserFavourites"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"mix/:slug": "showMix",
|
||||
"mix/edit/:slug": "editMix",
|
||||
"chat": "showChat",
|
||||
"random": "showRandomMix",
|
||||
"stream": "showStreamList",
|
||||
"users": "showUserList",
|
||||
"user/:slug/favourites": "showUserFavourites",
|
||||
"user/:slug/likes": "showUserLikes",
|
||||
|
||||
@@ -11,7 +11,10 @@
|
||||
<ul class="nav ace-nav">
|
||||
<li><a href="/mixes"><i class="icon-music icon-white"></i>Mixes</a></li>
|
||||
<li><a href="/users"><i class="icon-user icon-white"></i>Users</a></li>
|
||||
<li><a data-bypass="true" id="header-random-button"><i class="icon-cogs icon-white"></i>Random</a></li>
|
||||
{% if user.is_authenticated %}
|
||||
<li><a href="/stream" title="Show mixes from people you follow" id="header-stream-button"><i class="icon-circle-arrow-down icon-white"></i>Stream</a></li>
|
||||
{% endif %}
|
||||
<li><a data-bypass="true" title="Show random mix from our vaults" id="header-random-button"><i class="icon-cogs icon-white"></i>Random</a></li>
|
||||
<li><a data-bypass="true" target="_blank" href="/podcast"><i class="icon-rss icon-white"></i>Podcast</a></li>
|
||||
{% if false %}
|
||||
<li class="purple">
|
||||
|
||||
Reference in New Issue
Block a user