diff --git a/spa/admin.py b/spa/admin.py index 7847855..166da1b 100644 --- a/spa/admin.py +++ b/spa/admin.py @@ -1,18 +1,18 @@ from django.contrib import admin -from spa.models.Genre import Genre -from spa.models.UserProfile import UserProfile -from spa.models.ChatMessage import ChatMessage -from spa.models.Recurrence import Recurrence -from spa.models.Release import Release -from spa.models.Event import Event -from spa.models.Label import Label -from spa.models.Mix import Mix -from spa.models._Activity import _Activity -from spa.models.MixLike import MixLike -from spa.models.MixPlay import MixPlay -from spa.models.MixFavourite import MixFavourite -from spa.models.Release import ReleaseAudio -from spa.models.Venue import Venue +from spa.models.genre import Genre +from spa.models.userprofile import UserProfile +from spa.models.chatmessage import ChatMessage +from spa.models.recurrence import Recurrence +from spa.models.release import Release +from spa.models.event import Event +from spa.models.label import Label +from spa.models.mix import Mix +from spa.models.activity import _Activity +from spa.models.mixlike import MixLike +from spa.models.mixplay import MixPlay +from spa.models.mixfavourite import MixFavourite +from spa.models.release import ReleaseAudio +from spa.models.venue import Venue class DefaultAdmin(admin.ModelAdmin): diff --git a/spa/ajax.py b/spa/ajax.py index afac010..b8e7647 100644 --- a/spa/ajax.py +++ b/spa/ajax.py @@ -14,10 +14,10 @@ from django.views.decorators.csrf import csrf_exempt from core.utils import live from dss import localsettings, settings from spa import social -from spa.models import UserProfile, MixFavourite, Release, UserFollows -from spa.models.Mix import Mix -from spa.models.Comment import Comment -from spa.models.MixLike import MixLike +from spa.models import UserProfile, MixFavourite, Release +from spa.models.mix import Mix +from spa.models.comment import Comment +from spa.models.mixlike import MixLike from core.serialisers import json from core.tasks import create_waveform_task @@ -174,6 +174,8 @@ def like(request): @login_required() def toggle_follow(request): + pass + """ if request.is_ajax() and request.method == 'POST' and 'userId' in request.POST: follower = request.user following = User.objects.get(pk=request.POST['userId']) @@ -190,6 +192,7 @@ def toggle_follow(request): response = _get_json('Invalid') return HttpResponse(response) + """ @login_required() def favourite(request): diff --git a/spa/api/v1/ActivityResource.py b/spa/api/v1/ActivityResource.py index ca11c05..a352291 100644 --- a/spa/api/v1/ActivityResource.py +++ b/spa/api/v1/ActivityResource.py @@ -2,7 +2,7 @@ from tastypie.authentication import Authentication from tastypie.authorization import Authorization from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource from spa.models import UserProfile -from spa.models._Activity import _Activity +from spa.models.activity import _Activity class ActivityResource(BackboneCompatibleResource): diff --git a/spa/api/v1/ChatResource.py b/spa/api/v1/ChatResource.py index 5b19fa5..a4f6fb5 100644 --- a/spa/api/v1/ChatResource.py +++ b/spa/api/v1/ChatResource.py @@ -1,5 +1,5 @@ from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource -from spa.models.ChatMessage import ChatMessage +from spa.models.chatmessage import ChatMessage class CommentResource(BackboneCompatibleResource): class Meta: diff --git a/spa/api/v1/CommentResource.py b/spa/api/v1/CommentResource.py index 1784db4..60c72e2 100644 --- a/spa/api/v1/CommentResource.py +++ b/spa/api/v1/CommentResource.py @@ -2,7 +2,7 @@ from tastypie import fields from tastypie.authentication import Authentication from tastypie.authorization import Authorization from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource -from spa.models.Comment import Comment +from spa.models.comment import Comment class CommentResource(BackboneCompatibleResource): diff --git a/spa/api/v1/EventResource.py b/spa/api/v1/EventResource.py index 4805cd3..b7a8366 100644 --- a/spa/api/v1/EventResource.py +++ b/spa/api/v1/EventResource.py @@ -2,9 +2,9 @@ from django.core.exceptions import ObjectDoesNotExist import humanize from tastypie.authorization import Authorization from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource -from spa.models.Recurrence import Recurrence -from spa.models.Venue import Venue -from spa.models.Event import Event +from spa.models.recurrence import Recurrence +from spa.models.venue import Venue +from spa.models.event import Event class EventResource(BackboneCompatibleResource): class Meta: diff --git a/spa/api/v1/MixResource.py b/spa/api/v1/MixResource.py index 6b381d9..51455b7 100644 --- a/spa/api/v1/MixResource.py +++ b/spa/api/v1/MixResource.py @@ -12,7 +12,7 @@ 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 -from spa.models.Mix import Mix +from spa.models.mix import Mix class MixResource(BackboneCompatibleResource): diff --git a/spa/api/v1/ReleaseAudioResource.py b/spa/api/v1/ReleaseAudioResource.py index 3af9e3c..722151d 100644 --- a/spa/api/v1/ReleaseAudioResource.py +++ b/spa/api/v1/ReleaseAudioResource.py @@ -1,6 +1,6 @@ from tastypie import fields from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource -from spa.models.Release import ReleaseAudio +from spa.models.release import ReleaseAudio class ReleaseAudioResource(BackboneCompatibleResource): release = fields.ToOneField('spa.api.v1.ReleaseResource.ReleaseResource', 'release') diff --git a/spa/api/v1/ReleaseResource.py b/spa/api/v1/ReleaseResource.py index 12344ab..49fd50f 100644 --- a/spa/api/v1/ReleaseResource.py +++ b/spa/api/v1/ReleaseResource.py @@ -4,7 +4,7 @@ from tastypie.authorization import Authorization from tastypie.constants import ALL_WITH_RELATIONS from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource from spa.models import Label -from spa.models.Release import Release +from spa.models.release import Release from django.core.exceptions import ObjectDoesNotExist class ReleaseResource(BackboneCompatibleResource): release_audio = fields.ToManyField('spa.api.v1.ReleaseAudioResource.ReleaseAudioResource', 'release_audio', 'release', null=True, blank=True) diff --git a/spa/audio.py b/spa/audio.py index 3c9921d..4cafad7 100644 --- a/spa/audio.py +++ b/spa/audio.py @@ -6,7 +6,7 @@ from django.http import Http404 from sendfile import sendfile from dss import settings -from spa.models.Mix import Mix +from spa.models.mix import Mix from utils import here diff --git a/spa/forms.py b/spa/forms.py index bd4a3bb..04250e8 100644 --- a/spa/forms.py +++ b/spa/forms.py @@ -2,7 +2,7 @@ from django import forms from django.contrib.auth.models import User from django.forms.models import ModelForm -from spa.models.UserProfile import UserProfile +from spa.models.userprofile import UserProfile class UserForm(ModelForm): avatar_image_select = forms.ChoiceField( diff --git a/spa/management/commands/tracklists.py b/spa/management/commands/tracklists.py index 5b13aba..f0eb397 100644 --- a/spa/management/commands/tracklists.py +++ b/spa/management/commands/tracklists.py @@ -1,7 +1,7 @@ from django.core.management.base import NoArgsCommand from spa.models import Tracklist -from spa.models.Mix import Mix +from spa.models.mix import Mix class Command(NoArgsCommand): diff --git a/spa/management/commands/waveforms.py b/spa/management/commands/waveforms.py index 6b9b19e..3141a7f 100644 --- a/spa/management/commands/waveforms.py +++ b/spa/management/commands/waveforms.py @@ -1,7 +1,7 @@ import os from django.core.management.base import NoArgsCommand -from spa.models.Mix import Mix +from spa.models.mix import Mix from core.tasks import create_waveform_task diff --git a/spa/migrations/0007_auto__chg_field_mix_title__del_field_userfollows_user_to__del_field_us.py b/spa/migrations/0007_auto__del_userfollows__chg_field_mix_title.py similarity index 88% rename from spa/migrations/0007_auto__chg_field_mix_title__del_field_userfollows_user_to__del_field_us.py rename to spa/migrations/0007_auto__del_userfollows__chg_field_mix_title.py index 16ea526..e956a51 100644 --- a/spa/migrations/0007_auto__chg_field_mix_title__del_field_userfollows_user_to__del_field_us.py +++ b/spa/migrations/0007_auto__del_userfollows__chg_field_mix_title.py @@ -8,46 +8,25 @@ from django.db import models class Migration(SchemaMigration): def forwards(self, orm): + # Deleting model 'UserFollows' + db.delete_table(u'spa_userfollows') + # Changing field 'Mix.title' db.alter_column(u'spa_mix', 'title', self.gf('django.db.models.fields.CharField')(max_length=150)) - # Deleting field 'UserFollows.user_to' - db.delete_column(u'spa_userfollows', 'user_to_id') - - # Deleting field 'UserFollows.user_from' - db.delete_column(u'spa_userfollows', 'user_from_id') - - # Adding field 'UserFollows.follower' - db.add_column(u'spa_userfollows', 'follower', - self.gf('django.db.models.fields.related.OneToOneField')(default=-1, related_name='followers', unique=True, to=orm['spa.UserProfile']), - keep_default=False) - - # Adding field 'UserFollows.following' - db.add_column(u'spa_userfollows', 'following', - self.gf('django.db.models.fields.related.OneToOneField')(default=-1, related_name='following', unique=True, to=orm['spa.UserProfile']), - keep_default=False) - def backwards(self, orm): + # Adding model 'UserFollows' + db.create_table(u'spa_userfollows', ( + ('user_to', self.gf('django.db.models.fields.related.OneToOneField')(related_name='following', unique=True, to=orm['spa.UserProfile'])), + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user_from', self.gf('django.db.models.fields.related.OneToOneField')(related_name='followers', unique=True, to=orm['spa.UserProfile'])), + )) + db.send_create_signal('spa', ['UserFollows']) + # Changing field 'Mix.title' db.alter_column(u'spa_mix', 'title', self.gf('django.db.models.fields.CharField')(max_length=50)) - # Adding field 'UserFollows.user_to' - db.add_column(u'spa_userfollows', 'user_to', - self.gf('django.db.models.fields.related.OneToOneField')(default=-1, related_name='following', unique=True, to=orm['spa.UserProfile']), - keep_default=False) - - # Adding field 'UserFollows.user_from' - db.add_column(u'spa_userfollows', 'user_from', - self.gf('django.db.models.fields.related.OneToOneField')(default=-1, related_name='followers', unique=True, to=orm['spa.UserProfile']), - keep_default=False) - - # Deleting field 'UserFollows.follower' - db.delete_column(u'spa_userfollows', 'follower_id') - - # Deleting field 'UserFollows.following' - db.delete_column(u'spa_userfollows', 'following_id') - models = { u'auth.group': { @@ -220,12 +199,6 @@ class Migration(SchemaMigration): 'timeindex': ('django.db.models.fields.TimeField', [], {'null': 'True'}), 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) }, - 'spa.userfollows': { - 'Meta': {'object_name': 'UserFollows'}, - 'follower': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'followers'", 'unique': 'True', 'to': "orm['spa.UserProfile']"}), - 'following': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'following'", 'unique': 'True', 'to': "orm['spa.UserProfile']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, 'spa.userprofile': { 'Meta': {'object_name': 'UserProfile'}, 'activity_sharing': ('django.db.models.fields.IntegerField', [], {'default': '0'}), diff --git a/spa/migrations/0008_auto__del_field_userfollows_following__del_field_userfollows_follower.py b/spa/migrations/0008_auto__del_field_userfollows_following__del_field_userfollows_follower.py deleted file mode 100644 index b45db89..0000000 --- a/spa/migrations/0008_auto__del_field_userfollows_following__del_field_userfollows_follower.py +++ /dev/null @@ -1,251 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Deleting field 'UserFollows.following' - db.delete_column(u'spa_userfollows', 'following_id') - - # Deleting field 'UserFollows.follower' - db.delete_column(u'spa_userfollows', 'follower_id') - - # Adding M2M table for field follower on 'UserFollows' - db.create_table(u'spa_userfollows_follower', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('userfollows', models.ForeignKey(orm['spa.userfollows'], null=False)), - ('userprofile', models.ForeignKey(orm['spa.userprofile'], null=False)) - )) - db.create_unique(u'spa_userfollows_follower', ['userfollows_id', 'userprofile_id']) - - # Adding M2M table for field following on 'UserFollows' - db.create_table(u'spa_userfollows_following', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('userfollows', models.ForeignKey(orm['spa.userfollows'], null=False)), - ('userprofile', models.ForeignKey(orm['spa.userprofile'], null=False)) - )) - db.create_unique(u'spa_userfollows_following', ['userfollows_id', 'userprofile_id']) - - - def backwards(self, orm): - # Adding field 'UserFollows.following' - db.add_column(u'spa_userfollows', 'following', - self.gf('django.db.models.fields.related.OneToOneField')(default=-1, related_name='following', unique=True, to=orm['spa.UserProfile']), - keep_default=False) - - # Adding field 'UserFollows.follower' - db.add_column(u'spa_userfollows', 'follower', - self.gf('django.db.models.fields.related.OneToOneField')(default=-1, related_name='followers', unique=True, to=orm['spa.UserProfile']), - keep_default=False) - - # Removing M2M table for field follower on 'UserFollows' - db.delete_table('spa_userfollows_follower') - - # Removing M2M table for field following on 'UserFollows' - db.delete_table('spa_userfollows_following') - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'spa._activity': { - 'Meta': {'object_name': '_Activity'}, - 'date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'uid': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}) - }, - 'spa._lookup': { - 'Meta': {'object_name': '_Lookup'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, - 'spa.chatmessage': { - 'Meta': {'object_name': 'ChatMessage'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'message': ('django.db.models.fields.TextField', [], {}), - 'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'chat_messages'", 'null': 'True', 'to': "orm['spa.UserProfile']"}) - }, - 'spa.comment': { - 'Meta': {'object_name': 'Comment'}, - 'comment': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mix': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comments'", 'null': 'True', 'to': "orm['spa.Mix']"}), - 'time_index': ('django.db.models.fields.IntegerField', [], {}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}) - }, - 'spa.event': { - 'Meta': {'object_name': 'Event'}, - 'attendees': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'attendees'", 'symmetrical': 'False', 'to': u"orm['auth.User']"}), - 'date_created': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2013, 4, 30, 0, 0)'}), - 'event_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2013, 4, 30, 0, 0)'}), - 'event_description': ('tinymce.models.HTMLField', [], {}), - 'event_recurrence': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.Recurrence']"}), - 'event_time': ('django.db.models.fields.TimeField', [], {'default': 'datetime.datetime(2013, 4, 30, 0, 0)'}), - 'event_title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), - 'event_venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.Venue']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, - 'spa.genre': { - 'Meta': {'object_name': 'Genre'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'slug': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) - }, - 'spa.label': { - 'Meta': {'object_name': 'Label'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'spa.mix': { - 'Meta': {'object_name': 'Mix'}, - 'description': ('django.db.models.fields.TextField', [], {}), - 'download_allowed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'download_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), - 'genres': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['spa.Genre']", 'symmetrical': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_featured': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'local_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}), - 'mix_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}), - 'stream_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '150'}), - 'uid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '38', 'blank': 'True'}), - 'upload_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 4, 30, 0, 0)'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']"}), - 'waveform_generated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'spa.mixdownload': { - 'Meta': {'object_name': 'MixDownload', '_ormbases': ['spa._Activity']}, - u'_activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa._Activity']", 'unique': 'True', 'primary_key': 'True'}), - 'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'downloads'", 'to': "orm['spa.Mix']"}) - }, - 'spa.mixfavourite': { - 'Meta': {'object_name': 'MixFavourite', '_ormbases': ['spa._Activity']}, - u'_activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa._Activity']", 'unique': 'True', 'primary_key': 'True'}), - 'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'favourites'", 'to': "orm['spa.Mix']"}) - }, - 'spa.mixlike': { - 'Meta': {'object_name': 'MixLike', '_ormbases': ['spa._Activity']}, - u'_activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa._Activity']", 'unique': 'True', 'primary_key': 'True'}), - 'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'likes'", 'to': "orm['spa.Mix']"}) - }, - 'spa.mixplay': { - 'Meta': {'object_name': 'MixPlay', '_ormbases': ['spa._Activity']}, - u'_activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa._Activity']", 'unique': 'True', 'primary_key': 'True'}), - 'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'plays'", 'to': "orm['spa.Mix']"}) - }, - 'spa.purchaselink': { - 'Meta': {'object_name': 'PurchaseLink'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'provider': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'track': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'purchase_link'", 'to': "orm['spa.Tracklist']"}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'spa.recurrence': { - 'Meta': {'object_name': 'Recurrence', '_ormbases': ['spa._Lookup']}, - u'_lookup_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa._Lookup']", 'unique': 'True', 'primary_key': 'True'}) - }, - 'spa.release': { - 'Meta': {'object_name': 'Release'}, - 'embed_code': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'release_artist': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'release_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2013, 4, 30, 0, 0)'}), - 'release_description': ('django.db.models.fields.TextField', [], {}), - 'release_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}), - 'release_label': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.Label']"}), - 'release_title': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']"}) - }, - 'spa.releaseaudio': { - 'Meta': {'object_name': 'ReleaseAudio'}, - 'description': ('django.db.models.fields.TextField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'local_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), - 'release': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'release_audio'", 'null': 'True', 'to': "orm['spa.Release']"}) - }, - 'spa.tracklist': { - 'Meta': {'object_name': 'Tracklist'}, - 'artist': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'index': ('django.db.models.fields.SmallIntegerField', [], {}), - 'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tracklist'", 'to': "orm['spa.Mix']"}), - 'remixer': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'timeindex': ('django.db.models.fields.TimeField', [], {'null': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'spa.userfollows': { - 'Meta': {'object_name': 'UserFollows'}, - 'follower': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followers'", 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}), - 'following': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'following'", 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, - 'spa.userprofile': { - 'Meta': {'object_name': 'UserProfile'}, - 'activity_sharing': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'activity_sharing_networks': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'avatar_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}), - 'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'social'", 'max_length': '15'}), - 'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}), - 'display_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'default': 'None', 'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': u"orm['auth.User']"}) - }, - 'spa.venue': { - 'Meta': {'object_name': 'Venue'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), - 'venue_address': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'venue_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}), - 'venue_name': ('django.db.models.fields.CharField', [], {'max_length': '250'}) - } - } - - complete_apps = ['spa'] \ No newline at end of file diff --git a/spa/models/Recurrence.py b/spa/models/Recurrence.py deleted file mode 100644 index e25b67a..0000000 --- a/spa/models/Recurrence.py +++ /dev/null @@ -1,4 +0,0 @@ -from spa.models._Lookup import _Lookup - -class Recurrence(_Lookup): - pass diff --git a/spa/models/UserFollows.py b/spa/models/UserFollows.py index a37156f..bfeb325 100644 --- a/spa/models/UserFollows.py +++ b/spa/models/UserFollows.py @@ -1,9 +1,8 @@ from django.db import models -from spa.models.UserProfile import UserProfile -from spa.models._BaseModel import _BaseModel +from spa.models._basemodel import _BaseModel -class UserFollows(_BaseModel): - follower = models.ManyToManyField(UserProfile, related_name='followers') - following = models.ManyToManyField(UserProfile, related_name='following') +class __UserFollows(_BaseModel): + follower = models.OneToOneField('UserProfile', related_name='followers') + following = models.OneToOneField('UserProfile', related_name='following') diff --git a/spa/models/__init__.py b/spa/models/__init__.py index 82c73f3..c9e8565 100644 --- a/spa/models/__init__.py +++ b/spa/models/__init__.py @@ -1,19 +1,18 @@ -from _BaseModel import _BaseModel -from UserProfile import UserProfile -from ChatMessage import ChatMessage -from Recurrence import Recurrence -from Comment import Comment -from Venue import Venue -from Event import Event -from Label import Label -from Mix import Mix -from _Activity import _Activity -from MixLike import MixLike -from MixPlay import MixPlay -from MixFavourite import MixFavourite -from MixDownload import MixDownload -from Genre import Genre -from Tracklist import Tracklist -from PurchaseLink import PurchaseLink -from Release import Release -from UserFollows import UserFollows \ No newline at end of file +from _basemodel import _BaseModel +from userprofile import UserProfile +from chatmessage import ChatMessage +from recurrence import Recurrence +from comment import Comment +from venue import Venue +from event import Event +from label import Label +from mix import Mix +from activity import _Activity +from mixlike import MixLike +from mixplay import MixPlay +from mixfavourite import MixFavourite +from mixdownload import MixDownload +from genre import Genre +from tracklist import Tracklist +from purchaselink import PurchaseLink +from release import Release diff --git a/spa/models/_BaseModel.py b/spa/models/_basemodel.py similarity index 100% rename from spa/models/_BaseModel.py rename to spa/models/_basemodel.py diff --git a/spa/models/_Lookup.py b/spa/models/_lookup.py similarity index 87% rename from spa/models/_Lookup.py rename to spa/models/_lookup.py index 4a73a15..86b5f21 100644 --- a/spa/models/_Lookup.py +++ b/spa/models/_lookup.py @@ -1,6 +1,6 @@ from django.db import models from django.db.models.loading import get_model -from _BaseModel import _BaseModel +from _basemodel import _BaseModel class _Lookup(_BaseModel): description = models.CharField(max_length=100) diff --git a/spa/models/_Activity.py b/spa/models/activity.py similarity index 91% rename from spa/models/_Activity.py rename to spa/models/activity.py index 600bcb2..4ce6fec 100644 --- a/spa/models/_Activity.py +++ b/spa/models/activity.py @@ -5,7 +5,7 @@ from django.db import models from model_utils.managers import InheritanceManager -from spa.models._BaseModel import _BaseModel +from spa.models._basemodel import _BaseModel from spa.models.managers.QueuedActivityModelManager import QueuedActivityModelManager diff --git a/spa/models/ChatMessage.py b/spa/models/chatmessage.py similarity index 86% rename from spa/models/ChatMessage.py rename to spa/models/chatmessage.py index 0727948..3d8f25a 100644 --- a/spa/models/ChatMessage.py +++ b/spa/models/chatmessage.py @@ -1,6 +1,6 @@ from django.db import models from spa.models import _BaseModel -from spa.models.UserProfile import UserProfile +from spa.models.userprofile import UserProfile class ChatMessage(_BaseModel): message = models.TextField('Message') diff --git a/spa/models/Comment.py b/spa/models/comment.py similarity index 87% rename from spa/models/Comment.py rename to spa/models/comment.py index 0af0f7b..be218d5 100644 --- a/spa/models/Comment.py +++ b/spa/models/comment.py @@ -1,7 +1,7 @@ from django.contrib.auth.models import User from django.db import models -from spa.models._BaseModel import _BaseModel -from spa.models.Mix import Mix +from spa.models._basemodel import _BaseModel +from spa.models.mix import Mix class Comment(_BaseModel): class Meta: diff --git a/spa/models/Event.py b/spa/models/event.py similarity index 93% rename from spa/models/Event.py rename to spa/models/event.py index 008cd6e..33009e9 100644 --- a/spa/models/Event.py +++ b/spa/models/event.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import User from django.db import models from tinymce import models as tinymce_models from spa.models import Recurrence -from spa.models.Venue import Venue +from spa.models.venue import Venue class Event(models.Model): class Meta: diff --git a/spa/models/Genre.py b/spa/models/genre.py similarity index 100% rename from spa/models/Genre.py rename to spa/models/genre.py diff --git a/spa/models/Label.py b/spa/models/label.py similarity index 77% rename from spa/models/Label.py rename to spa/models/label.py index 5b58c56..49292d3 100644 --- a/spa/models/Label.py +++ b/spa/models/label.py @@ -1,5 +1,5 @@ from django.db import models -from spa.models._BaseModel import _BaseModel +from spa.models._basemodel import _BaseModel class Label(_BaseModel): class Meta: diff --git a/spa/models/Mix.py b/spa/models/mix.py similarity index 94% rename from spa/models/Mix.py rename to spa/models/mix.py index c3b1967..29adb74 100644 --- a/spa/models/Mix.py +++ b/spa/models/mix.py @@ -11,12 +11,12 @@ from django.db.models import Count from core.utils import url from core.utils.url import unique_slugify -from spa.models.Genre import Genre -from spa.models.MixPlay import MixPlay -from spa.models.MixDownload import MixDownload +from spa.models.genre import Genre +from spa.models.mixplay import MixPlay +from spa.models.mixdownload import MixDownload from dss import settings, localsettings -from spa.models.UserProfile import UserProfile -from spa.models._BaseModel import _BaseModel +from spa.models.userprofile import UserProfile +from spa.models._basemodel import _BaseModel from core.utils.file import generate_save_file_name diff --git a/spa/models/MixDownload.py b/spa/models/mixdownload.py similarity index 89% rename from spa/models/MixDownload.py rename to spa/models/mixdownload.py index 0cf5ed7..0338d59 100644 --- a/spa/models/MixDownload.py +++ b/spa/models/mixdownload.py @@ -1,5 +1,5 @@ from django.db import models -from spa.models._Activity import _Activity +from spa.models.activity import _Activity class MixDownload(_Activity): mix = models.ForeignKey('spa.Mix', related_name='downloads') diff --git a/spa/models/MixFavourite.py b/spa/models/mixfavourite.py similarity index 100% rename from spa/models/MixFavourite.py rename to spa/models/mixfavourite.py diff --git a/spa/models/MixLike.py b/spa/models/mixlike.py similarity index 88% rename from spa/models/MixLike.py rename to spa/models/mixlike.py index 308c084..93eee6d 100644 --- a/spa/models/MixLike.py +++ b/spa/models/mixlike.py @@ -1,5 +1,5 @@ from django.db import models -from spa.models._Activity import _Activity +from spa.models.activity import _Activity class MixLike(_Activity): mix = models.ForeignKey('spa.Mix', related_name='likes') diff --git a/spa/models/MixPlay.py b/spa/models/mixplay.py similarity index 90% rename from spa/models/MixPlay.py rename to spa/models/mixplay.py index 94042b2..2ed20bf 100644 --- a/spa/models/MixPlay.py +++ b/spa/models/mixplay.py @@ -1,5 +1,5 @@ from django.db import models -from spa.models._Activity import _Activity +from spa.models.activity import _Activity class MixPlay(_Activity): diff --git a/spa/models/PurchaseLink.py b/spa/models/purchaselink.py similarity index 100% rename from spa/models/PurchaseLink.py rename to spa/models/purchaselink.py diff --git a/spa/models/recurrence.py b/spa/models/recurrence.py new file mode 100644 index 0000000..275898a --- /dev/null +++ b/spa/models/recurrence.py @@ -0,0 +1,4 @@ +from spa.models._lookup import _Lookup + +class Recurrence(_Lookup): + pass diff --git a/spa/models/Release.py b/spa/models/release.py similarity index 90% rename from spa/models/Release.py rename to spa/models/release.py index 320d2d9..65d4663 100644 --- a/spa/models/Release.py +++ b/spa/models/release.py @@ -2,9 +2,9 @@ from datetime import datetime from django.db import models from core.utils.file import generate_save_file_name from dss import settings -from spa.models.Label import Label -from spa.models.UserProfile import UserProfile -from spa.models._BaseModel import _BaseModel +from spa.models.label import Label +from spa.models.userprofile import UserProfile +from spa.models._basemodel import _BaseModel def release_image_name(instance, filename): return generate_save_file_name('release-images', filename) diff --git a/spa/models/Tracklist.py b/spa/models/tracklist.py similarity index 100% rename from spa/models/Tracklist.py rename to spa/models/tracklist.py diff --git a/spa/models/UserProfile.py b/spa/models/userprofile.py similarity index 92% rename from spa/models/UserProfile.py rename to spa/models/userprofile.py index 4ff3f7c..999827f 100644 --- a/spa/models/UserProfile.py +++ b/spa/models/userprofile.py @@ -1,10 +1,10 @@ from logging import log +import logging import urlparse from django.contrib.auth.models import User from django.core.exceptions import SuspiciousOperation from django.db import models -from django.db.models.signals import post_save from django_gravatar.helpers import has_gravatar, get_gravatar_url from sorl.thumbnail import get_thumbnail @@ -12,8 +12,9 @@ from allauth.socialaccount.models import SocialAccount from core.utils.file import generate_save_file_name from core.utils.url import unique_slugify from dss import settings -from spa.models._BaseModel import _BaseModel +from spa.models._basemodel import _BaseModel +logger = logging.getLogger(__name__) def avatar_name(instance, filename): return generate_save_file_name(str(instance.id), 'avatars', filename) @@ -41,6 +42,7 @@ class UserProfile(_BaseModel): activity_sharing = models.IntegerField(default=0) activity_sharing_networks = models.IntegerField(default=0) + def __unicode__(self): return "%s - %s" % (self.user.get_full_name(), self.slug) @@ -83,12 +85,9 @@ class UserProfile(_BaseModel): def is_follower(self, user): try: - if user in self.followers.objects: - return True - else: - return False + return user in self.followers except Exception, ex: - log.debug(ex.message) + logger.error(ex.message) return False diff --git a/spa/models/Venue.py b/spa/models/venue.py similarity index 100% rename from spa/models/Venue.py rename to spa/models/venue.py diff --git a/spa/signals.py b/spa/signals.py index 20ec063..a51670d 100644 --- a/spa/signals.py +++ b/spa/signals.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import User from dss import localsettings from spa.models import _Activity from spa.models import UserProfile -from spa.models.Mix import Mix +from spa.models.mix import Mix import pika waveform_generated = Signal() diff --git a/spa/social/views.py b/spa/social/views.py index b644164..583e423 100644 --- a/spa/social/views.py +++ b/spa/social/views.py @@ -11,8 +11,8 @@ import requests from allauth.socialaccount.models import SocialToken from dss import settings -from spa.models.Mix import Mix -from spa.models.UserProfile import UserProfile +from spa.models.mix import Mix +from spa.models.userprofile import UserProfile logger = logging.getLogger(__name__)