Added default initialsettings.py

This commit is contained in:
Fergal Moran
2013-01-08 22:39:00 +00:00
parent 8b7e5637b2
commit a8b5436b05
21 changed files with 305 additions and 95 deletions

View File

@@ -0,0 +1,40 @@
import os
DEBUG = True
if os.name == 'posix':
DSS_TEMP_PATH = "/tmp/"
DSS_LAME_PATH = "lame"
DSS_WAVE_PATH = "waveformgen"
else:
DSS_TEMP_PATH = "d:\\temp\\"
DSS_LAME_PATH = "D:\\Apps\\lame\\lame.exe"
DSS_WAVE_PATH = "d:\\Apps\\waveformgen.exe"
DATABASE_NAME = 'deepsouthsounds'
DATABASE_USER = 'root'
DATABASE_PASSWORD = ''
#DATABASE_HOST = ''
PIPELINE_YUI_BINARY = ""
FACEBOOK_APP_SECRET = ''
JS_SETTINGS = {
'CHAT_HOST' : "ext-test.deepsouthsounds.com:8081",
'API_URL' : "/api/v1/",
'LIVE_STREAM_URL' : "radio.deepsouthsounds.com",
'LIVE_STREAM_PORT' : "8000",
'LIVE_STREAM_MOUNT' : "mp3",
'DEFAULT_AUDIO_VOLUME' : "1",
'SM_DEBUG_MODE' : False,
'LIVE_STREAM_INFO_URL' : "radio.deepsouthsounds.com:8000/mp3"
}
"""
WAVEFORM_URL = 'http://waveforms.podnoms.com/'
IMAGE_URL = 'http://images.podnoms.com/'
STATIC_URL = 'http://static.podnoms.com/'
"""
IMAGE_URL = 'http://ext-test.deepsouthsounds.com:8000/media/'
GOOGLE_ANALYTICS_CODE = ''
SENDFILE_BACKEND = 'sendfile.backends.development'
#SENDFILE_BACKEND = 'sendfile.backends.xsendfile'
#SENDFILE_BACKEND = 'sendfile.backends.nginx'

View File

@@ -142,6 +142,7 @@ INSTALLED_APPS = (
'django_extensions',
'compressor',
'djcelery',
'polymodels',
'sorl.thumbnail',
'south', # the only requirement for SCT
'avatar',

View File

@@ -13,6 +13,22 @@ class ActivityResource(BackboneCompatibleResource):
authentication = Authentication()
always_return_data = True
def dehydrate(self, bundle):
def get_object_list(self, request):
return self._meta.queryset.select_subclasses()
return bundle
def dehydrate(self, bundle):
try:
if bundle.obj.user is not None:
bundle.data["message"] = "%s %s a %s on %s" %\
(bundle.obj.user.get_full_name(),
bundle.obj.get_verb_passed(),
bundle.obj.get_object_singular(),
bundle.obj.date)
return bundle
except AttributeError, ae:
self.logger.debug("AttributeError: Error dehydrating activity, %s" % ae.message)
except TypeError, te:
self.logger.debug("TypeError: Error dehydrating activity, %s" % te.message)
except Exception, ee:
self.logger.debug("Exception: Error dehydrating activity, %s" % ee.message)

View File

@@ -1,3 +1,4 @@
import logging
from django.conf.urls import url
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from tastypie import fields
@@ -7,4 +8,5 @@ from tastypie.utils import trailing_slash
class BackboneCompatibleResource(ModelResource):
logger = logging.getLogger(__name__)
pass

View File

@@ -6,6 +6,7 @@ from tastypie.authorization import Authorization
from tastypie.constants import ALL_WITH_RELATIONS
from tastypie.http import HttpMultipleChoices, HttpGone
from core.serialisers import json
from spa.api.v1.ActivityResource import ActivityResource
from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource
from spa.api.v1.CommentResource import CommentResource
from spa.models import Genre
@@ -15,8 +16,8 @@ from spa.models.Mix import Mix
class MixResource(BackboneCompatibleResource):
#comments = fields.ToManyField('spa.api.v1.CommentResource.CommentResource', 'comments', 'mix', null=True, full=True)
comments = fields.ToManyField('spa.api.v1.CommentResource.CommentResource', 'comments', 'mix', null=True)
activity = fields.ToManyField('spa.api.v1.ActivityResource.ActivityResource', 'activity', 'mix', null=True)
class Meta:
queryset = Mix.objects.filter(is_active=True)
@@ -39,13 +40,20 @@ class MixResource(BackboneCompatibleResource):
return ret
def _unpackGenreList(self, bundle, genres):
genre_list = self._parseGenreList(genres)
bundle.obj.genres = genre_list
bundle.obj.save()
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/children%s$" %
(self._meta.resource_name, trailing_slash()), self.wrap_view('get_children'), name="api_get_children"),
url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/comments%s$" %
(self._meta.resource_name, trailing_slash()), self.wrap_view('get_comments'), name="api_get_comments"),
url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/activity%s$" %
(self._meta.resource_name, trailing_slash()), self.wrap_view('get_activity'), name="api_get_activity"),
]
def get_children(self, request, **kwargs):
def get_comments(self, request, **kwargs):
try:
obj = self.cached_obj_get(request=request, **self.remove_api_resource_names(kwargs))
except ObjectDoesNotExist:
@@ -54,10 +62,14 @@ class MixResource(BackboneCompatibleResource):
child_resource = CommentResource()
return child_resource.get_list(request, mix=obj)
def _unpackGenreList(self, bundle, genres):
genre_list = self._parseGenreList(genres)
bundle.obj.genres = genre_list
bundle.obj.save()
def get_activity(self, request, **kwargs):
try:
obj = self.cached_obj_get(request=request, **self.remove_api_resource_names(kwargs))
except ObjectDoesNotExist:
return HttpGone()
child_resource = ActivityResource()
return child_resource.get_list(request, mix=obj)
def obj_create(self, bundle, request=None, **kwargs):
file_name = "mixes/%s.%s" % (bundle.data['upload-hash'], bundle.data['upload-extension'])

View File

@@ -3,3 +3,9 @@ from spa.models._Activity import _Activity
class MixDownload(_Activity):
mix = models.ForeignKey('spa.Mix', related_name='downloads')
def get_verb_passed(self):
return "downloaded"
def get_object_singular(self):
return "mix"

View File

@@ -3,3 +3,9 @@ from django.db import models
class MixFavourite(_Activity):
mix = models.ForeignKey(Mix, related_name='favourites')
def get_verb_passed(self):
return "favourited"
def get_object_singular(self):
return "mix"

View File

@@ -6,3 +6,9 @@ class MixLike(_Activity):
def __unicode__(self):
return "%s on %s" % (self.user.get_full_name(), self.mix.title)
def get_verb_passed(self):
return "liked"
def get_object_singular(self):
return "mix"

View File

@@ -2,4 +2,10 @@ from django.db import models
from spa.models._Activity import _Activity
class MixPlay(_Activity):
mix = models.ForeignKey('spa.Mix', related_name='plays')
mix = models.ForeignKey('spa.Mix', related_name='plays')
def get_verb_passed(self):
return "played"
def get_object_singular(self):
return "mix"

View File

@@ -99,9 +99,9 @@ class UserProfile(_BaseModel):
image = "%s%s" % (settings.MEDIA_URL, get_thumbnail(image, "170x170", crop='center').name)
return image
except SuspiciousOperation, ex:
self.logger.warn("Error getting small profile image: %s", ex.message)
self.logger.warn("Error getting medium profile image: %s", ex.message)
except IOError, ex:
self.logger.warn("Error getting small profile image: %s", ex.message)
self.logger.warn("Error getting medium profile image: %s", ex.message)
def get_small_profile_image(self):
try:
@@ -114,7 +114,6 @@ class UserProfile(_BaseModel):
except IOError, ex:
self.logger.warn("Error getting small profile image: %s", ex.message)
def get_avatar_image(self, size=150):
avatar_type = self.avatar_type
if avatar_type == 'gravatar':

View File

@@ -1,8 +1,28 @@
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.db import models
import abc
from model_utils.managers import InheritanceManager
from spa.models._BaseModel import _BaseModel
class _Activity(_BaseModel):
date = models.DateTimeField(auto_now=True)
user = models.ForeignKey(User, null=True)
uid = models.CharField(max_length=50, blank=True, null = True)
uid = models.CharField(max_length=50, blank=True, null=True)
date = models.DateTimeField(auto_now=True)
objects = InheritanceManager()
@abc.abstractmethod
def get_verb_passed(self):
return
@abc.abstractmethod
def get_verb_present(self):
return
@abc.abstractmethod
def get_object_singular(self):
return
@abc.abstractmethod
def get_object_plural(self):
return

View File

@@ -1,17 +1,12 @@
import logging
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.db.models import ForeignKey
from django.utils import simplejson
import os
from polymodels.models import BasePolymorphicModel
from core.utils import url
from dss import localsettings, settings
class _BaseModel(BasePolymorphicModel):
class _BaseModel(models.Model):
logger = logging.getLogger(__name__)
content_type = ForeignKey(ContentType, null=True)
CONTENT_TYPE_FIELD = 'content_type'
class Meta:
abstract = True

View File

@@ -61,13 +61,6 @@ var AppRouter = Backbone.Router.extend({
var mixList = new MixCollection();
mixList.type = type || 'latest';
$('#site-content-fill').html('');
this.sidebarView = new SidebarView();
$('#sidebar').html(this.sidebarView.el);
startChat(
$('#chat-messages-body', this.sidebarView.el),
$('#input', this.sidebarView.el),
$('#status', this.sidebarView.el),
$('#header-profile-edit').text());
var payload = $.extend(type != undefined ? {type:type} : null, data);
mixList.fetch({
@@ -83,6 +76,13 @@ var AppRouter = Backbone.Router.extend({
}
}
});
this.sidebarView = new SidebarView();
$('#sidebar').html(this.sidebarView.el);
startChat(
$('#chat-messages-body', this.sidebarView.el),
$('#input', this.sidebarView.el),
$('#status', this.sidebarView.el),
$('#header-profile-edit').text());
},
mixDetails:function (id) {
var mix = new Mix({
@@ -239,7 +239,7 @@ var AppRouter = Backbone.Router.extend({
}
});
com.podnoms.utils.loadTemplate(['HeaderView', 'SidebarView', 'UserView', 'MixListView', 'MixListItemView', 'MixView', 'MixCreateView', 'CommentListView', 'CommentListItemView', 'ReleaseListView', 'ReleaseListItemView', 'ReleaseItemView', 'ReleaseView', 'ReleaseCreateView', 'ReleaseAudioListView', 'ReleaseAudioItemView', 'EventCreateView', 'EventListView', 'EventListItemView', 'EventView', 'EventItemView'], function () {
com.podnoms.utils.loadTemplate(['HeaderView', 'SidebarView', 'UserView', 'MixListView', 'MixListItemView', 'MixView', 'MixCreateView', 'CommentListView', 'CommentListItemView', 'ActivityListView', 'ActivityListItemView', 'ReleaseListView', 'ReleaseListItemView', 'ReleaseItemView', 'ReleaseView', 'ReleaseCreateView', 'ReleaseAudioListView', 'ReleaseAudioItemView', 'EventCreateView', 'EventListView', 'EventListItemView', 'EventView', 'EventItemView'], function () {
window.app = new AppRouter();
$(document).on('click', 'a:internal:not(.no-click)', function (event) {
Backbone.history.navigate($(this).attr('href'), {

View File

@@ -0,0 +1,19 @@
/** @license
----------------------------------------------
Copyright (c) 2012, Fergal Moran. All rights reserved.
Code provided under the BSD License:
*/
var Activity = DSSModel.extend({
urlRoot:com.podnoms.settings.urlRoot + "activity/"
});
var ActivityCollection = TastypieCollection.extend({
model: Activity,
url:com.podnoms.settings.urlRoot + "activity/",
comparator: function (activity) {
return -activity.get("id");
}
});

View File

@@ -0,0 +1,33 @@
/** @license
----------------------------------------------
Copyright (c) 2012, Fergal Moran. All rights reserved.
Code provided under the BSD License:
*/
window.ActivityListItemView = Backbone.View.extend({
tagName:"li",
initialize:function () {
$(this.el).data("id", this.model.get("id"));
$(this.el).addClass("activity-entry");
},
render:function () {
$(this.el).html(this.template({"item":this.model.toJSON()}));
return this;
}
});
window.ActivityListView = Backbone.View.extend({
initialize:function () {
//this.collection.bind('add', this.render);
this.render();
},
render:function () {
$(this.el).html(this.template()).append('<ul class="activity-listing list-nostyle"></ul>');
this.collection.each(function (item) {
$('.activity-listing', this.el).append(new ActivityListItemView({model:item}).render().el);
}, this);
return this;
}
});

View File

@@ -8,11 +8,11 @@
*/
window.SidebarView = Backbone.View.extend({
events:{
"click #sidebar-play-pause-button-small":"togglePlayState",
"click #sidebar-listen-live":"playLive"
events: {
"click #sidebar-play-pause-button-small": "togglePlayState",
"click #sidebar-listen-live": "playLive"
},
initialize:function () {
initialize: function () {
this.render();
_.bindAll(this, "trackChanged");
_.bindAll(this, "trackPlaying");
@@ -26,27 +26,36 @@ window.SidebarView = Backbone.View.extend({
$("#live-now-playing", this.el).text(data.title);
});
},
render:function () {
render: function () {
$(this.el).html(this.template());
var activity = new ActivityCollection();
activity.fetch({
success: function () {
var content = new ActivityListView({
collection: activity
}).el;
$('.sidebar-content-activity', this.el).html(content.el);
}
});
return this;
},
togglePlayState:function () {
togglePlayState: function () {
},
trackChanged:function (data) {
trackChanged: function (data) {
$(this.el).find('#now-playing').text(data.title);
if (data.item_url != undefined)
$(this.el).find('#now-playing').attr("href", "#" + data.item_url);
},
trackPlaying:function (data) {
trackPlaying: function (data) {
$(this.el).find('#header-play-button-icon').removeClass('icon-play');
$(this.el).find('#header-play-button-icon').addClass('icon-pause');
},
trackPaused:function (data) {
trackPaused: function (data) {
$(this.el).find('#header-play-button-icon').removeClass('icon-pause');
$(this.el).find('#header-play-button-icon').addClass('icon-play');
},
playLive:function () {
playLive: function () {
var liveButton = $(this.el).find('#sidebar-listen-live');
if ((liveButton).hasClass('btn-danger')) {
com.podnoms.player.stopPlaying();
@@ -55,7 +64,7 @@ window.SidebarView = Backbone.View.extend({
} else {
liveButton.button('loading');
com.podnoms.player.playLive({
success:function () {
success: function () {
$.getJSON(
'ajax/live_now_playing/',
function (data) {
@@ -66,7 +75,7 @@ window.SidebarView = Backbone.View.extend({
liveButton.removeClass('btn-success').addClass('btn-danger').text('Stop listening');
}
);
}
}
});
}
_eventAggregator.trigger("track_playing")

View File

@@ -7,18 +7,18 @@
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
{% load compress %}
{% compress css %}
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap-datepicker.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap-timepicker.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap-responsive.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/jasny/jasny-bootstrap.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/jasny/jasny-bootstrap-responsive.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/select2.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/colorbox.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/deepsouthsounds.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/uploadifive.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/com.podnoms.player.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/emoticons.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap-datepicker.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap-timepicker.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap/bootstrap-responsive.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/jasny/jasny-bootstrap.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/jasny/jasny-bootstrap-responsive.min.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/select2.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/colorbox.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/deepsouthsounds.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/uploadifive.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/com.podnoms.player.css">
<link rel="stylesheet" href="{{ STATIC_URL }}css/emoticons.css">
{% endcompress %}
<script type="text/javascript">
if (window.location.hash == '#_=_') {
@@ -79,45 +79,47 @@
<script src="{{ STATIC_URL }}js/libs/bootstrap/bootstrap-datepicker.js"></script>
<script src="{{ STATIC_URL }}js/libs/bootstrap/bootstrap.min.js"></script>
{% compress js %}
<script src="{{ STATIC_URL }}js/libs/sm/soundmanager2-nodebug-jsmin.js"></script>
<script src="{{ STATIC_URL }}js/app/chat.js"></script>
<script src="{{ STATIC_URL }}js/app/site.js"></script>
<script src="{{ STATIC_URL }}js/libs/ajaxfileupload.js"></script>
<script src="{{ STATIC_URL }}js/libs/uploadify/jquery.uploadifive.js"></script>
<script src="{{ STATIC_URL }}js/libs/jquery.iphone-switch.js"></script>
<script src="{{ STATIC_URL }}js/libs/jquery.tablesorter.js"></script>
<script src="{{ STATIC_URL }}js/libs/tiny_mce/jquery.tinymce.js"></script>
<script src="{{ STATIC_URL }}js/libs/modernizr.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/underscore.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/moment.js"></script>
<script src="{{ STATIC_URL }}js/libs/ICanHaz.js"></script>
<script src="{{ STATIC_URL }}js/libs/select2.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone.mine.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone.infiniscroll.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone-tastypie.js"></script>
<script src="{{ STATIC_URL }}js/libs/clickify.js"></script>
<script src="{{ STATIC_URL }}js/libs/jquery.colorbox.js"></script>
<script src="{{ STATIC_URL }}js/com.podnoms.utils.js"></script>
<script src="{{ STATIC_URL }}js/com.podnoms.storage.js"></script>
<script src="{{ STATIC_URL }}js/com.podnoms.player.js"></script>
<script src="{{ STATIC_URL }}js/app/social.js"></script>
<script src="{{ STATIC_URL }}js/app/models/mix.js"></script>
<script src="{{ STATIC_URL }}js/app/models/user.js"></script>
<script src="{{ STATIC_URL }}js/app/models/comment.js"></script>
<script src="{{ STATIC_URL }}js/app/models/release.js"></script>
<script src="{{ STATIC_URL }}js/app/models/release_audio.js"></script>
<script src="{{ STATIC_URL }}js/app/models/event.js"></script>
<script src="{{ STATIC_URL }}js/app/views/header.js"></script>
<script src="{{ STATIC_URL }}js/app/views/sidebar.js"></script>
<script src="{{ STATIC_URL }}js/app/views/mix.js"></script>
<script src="{{ STATIC_URL }}js/app/views/user.js"></script>
<script src="{{ STATIC_URL }}js/app/views/comment.js"></script>
<script src="{{ STATIC_URL }}js/app/views/release.js"></script>
<script src="{{ STATIC_URL }}js/app/views/release_audio.js"></script>
<script src="{{ STATIC_URL }}js/app/views/event.js"></script>
<script src="{{ STATIC_URL }}js/app/app.js"></script>
<script src="{{ STATIC_URL }}js/app/social.js"></script>
<script src="{{ STATIC_URL }}js/libs/sm/soundmanager2-nodebug-jsmin.js"></script>
<script src="{{ STATIC_URL }}js/app/chat.js"></script>
<script src="{{ STATIC_URL }}js/app/site.js"></script>
<script src="{{ STATIC_URL }}js/libs/ajaxfileupload.js"></script>
<script src="{{ STATIC_URL }}js/libs/uploadify/jquery.uploadifive.js"></script>
<script src="{{ STATIC_URL }}js/libs/jquery.iphone-switch.js"></script>
<script src="{{ STATIC_URL }}js/libs/jquery.tablesorter.js"></script>
<script src="{{ STATIC_URL }}js/libs/tiny_mce/jquery.tinymce.js"></script>
<script src="{{ STATIC_URL }}js/libs/modernizr.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/underscore.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/moment.js"></script>
<script src="{{ STATIC_URL }}js/libs/ICanHaz.js"></script>
<script src="{{ STATIC_URL }}js/libs/select2.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone.mine.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone.infiniscroll.js"></script>
<script src="{{ STATIC_URL }}js/libs/backbone/backbone-tastypie.js"></script>
<script src="{{ STATIC_URL }}js/libs/clickify.js"></script>
<script src="{{ STATIC_URL }}js/libs/jquery.colorbox.js"></script>
<script src="{{ STATIC_URL }}js/com.podnoms.utils.js"></script>
<script src="{{ STATIC_URL }}js/com.podnoms.storage.js"></script>
<script src="{{ STATIC_URL }}js/com.podnoms.player.js"></script>
<script src="{{ STATIC_URL }}js/app/social.js"></script>
<script src="{{ STATIC_URL }}js/app/models/mix.js"></script>
<script src="{{ STATIC_URL }}js/app/models/user.js"></script>
<script src="{{ STATIC_URL }}js/app/models/activity.js"></script>
<script src="{{ STATIC_URL }}js/app/models/comment.js"></script>
<script src="{{ STATIC_URL }}js/app/models/release.js"></script>
<script src="{{ STATIC_URL }}js/app/models/release_audio.js"></script>
<script src="{{ STATIC_URL }}js/app/models/event.js"></script>
<script src="{{ STATIC_URL }}js/app/views/header.js"></script>
<script src="{{ STATIC_URL }}js/app/views/sidebar.js"></script>
<script src="{{ STATIC_URL }}js/app/views/mix.js"></script>
<script src="{{ STATIC_URL }}js/app/views/user.js"></script>
<script src="{{ STATIC_URL }}js/app/views/comment.js"></script>
<script src="{{ STATIC_URL }}js/app/views/activity.js"></script>
<script src="{{ STATIC_URL }}js/app/views/release.js"></script>
<script src="{{ STATIC_URL }}js/app/views/release_audio.js"></script>
<script src="{{ STATIC_URL }}js/app/views/event.js"></script>
<script src="{{ STATIC_URL }}js/app/app.js"></script>
<script src="{{ STATIC_URL }}js/app/social.js"></script>
{% endcompress %}
{% block footerscripts %}
{% endblock %}

View File

@@ -0,0 +1,15 @@
<div class="activity-block">
<a href="">
<img class="image-avatar-small" src="<%= item.avatar_image %>" alt="">
</a>
<div class="activity-details">
<a class="activity-user" href="<%= item.user_url %>">
<%= item.user_name %>
</a>
<blockquote class="pull-right">
<p><%= item.activity %></p>
<small><%= item.date_created %></small>
</blockquote>
</div>
</div>

View File

@@ -0,0 +1,17 @@
{% load account_tags %}
<div class="activity-block">
<a href="">
<img class="image-avatar-small" src="<%= item.avatar_image %>" alt="">
</a>
<div class="activity-details">
<a class="activity-user" href="<%= item.user_url %>">
<%= item.user_name %>
</a>
<blockquote class="pull-right">
<p><%= item.activity %></p>
<small><%= item.date_created %></small>
</blockquote>
</div>
</div>

View File

@@ -0,0 +1,2 @@
<h3 class="bordered">Activity</h3>
<div id="comment-list-container"></div>

View File

@@ -1,9 +1,13 @@
<ul id="mix-tab" class="nav nav-tabs">
<li class="active"><a class="no-click" href="#nowplaying" data-toggle="tab">Now Playing</a></li>
<li class="active"><a class="no-click" href="#activity" data-toggle="tab">Activity</a></li>
<li class=""><a class="no-click" href="#nowplaying" data-toggle="tab">Now Playing</a></li>
<li class=""><a class="no-click" href="#chat" data-toggle="tab">Chat</a></li>
</ul>
<div id="mix-tabContent" class="tab-content">
<div class="tab-pane active in fade" id="nowplaying">
<div class="tab-pane active in fade" id="activity">
<div id="sidebar-content-activity">Hello Sailor</div>
</div>
<div class="tab-pane fade" id="nowplaying">
{% include 'inc/side-player.html' %}
{% include 'inc/twitter.html' %}
</div>