mirror of
https://github.com/fergalmoran/dss.git
synced 2025-12-22 09:38:18 +00:00
Updated useredit page
This commit is contained in:
@@ -11,4 +11,29 @@ class BaseResource(ModelResource):
|
||||
if arg in kwargs:
|
||||
del kwargs['activity_sharing_networks_facebook']
|
||||
|
||||
return kwargs
|
||||
return kwargs
|
||||
|
||||
@staticmethod
|
||||
def hydrate_bitfield(field_name, bundle, object_field, choices, remove_field=True):
|
||||
if not hasattr(bundle, field_name + '____processed'):
|
||||
mask = 0
|
||||
for choice in choices:
|
||||
if choice[0] in bundle.data[field_name]:
|
||||
if bundle.data[field_name][choice[0]]:
|
||||
mask |= getattr(object_field, choice[0])
|
||||
|
||||
bundle.data[field_name] = mask
|
||||
setattr(bundle, field_name + '____processed', True)
|
||||
return bundle
|
||||
|
||||
@staticmethod
|
||||
def dehydrate_bitfield(field_name, bundle, object_field, choices, remove_field=True):
|
||||
if remove_field:
|
||||
del bundle.data[field_name]
|
||||
|
||||
d = {}
|
||||
for choice in choices:
|
||||
d[choice[0]] = getattr(object_field, choice[0]).is_set
|
||||
|
||||
bundle.data[field_name] = d
|
||||
return bundle
|
||||
@@ -12,6 +12,7 @@ from tastypie_msgpack import Serializer
|
||||
from dss import settings
|
||||
from spa.api.v1.BaseResource import BaseResource
|
||||
from spa.api.v1.PlaylistResource import PlaylistResource
|
||||
from spa.models.basemodel import BaseModel
|
||||
from spa.models.userprofile import UserProfile
|
||||
from spa.models.mix import Mix
|
||||
from core.tasks import update_geo_info_task
|
||||
@@ -44,10 +45,6 @@ class UserResource(BaseResource):
|
||||
authorization = Authorization()
|
||||
authentication = Authentication()
|
||||
|
||||
@staticmethod
|
||||
def _hydrate_bitmap_opt(source, comparator):
|
||||
return True if (source & comparator) != 0 else False
|
||||
|
||||
def prepend_urls(self):
|
||||
return [
|
||||
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)%s$" %
|
||||
@@ -96,36 +93,35 @@ class UserResource(BaseResource):
|
||||
return bundle.obj.get_profile_description()
|
||||
|
||||
def dehydrate(self, bundle):
|
||||
del bundle.data['activity_sharing']
|
||||
del bundle.data['activity_sharing_networks']
|
||||
bundle.data['display_name'] = bundle.obj.get_nice_name()
|
||||
bundle.data['avatar_image'] = bundle.obj.get_avatar_image()
|
||||
|
||||
bundle.data['email_notification_plays'] = bundle.obj.email_notifications.plays.is_set
|
||||
bundle.data['email_notification_likes'] = bundle.obj.email_notifications.likes.is_set
|
||||
bundle.data['email_notification_favourites'] = bundle.obj.email_notifications.favourites.is_set
|
||||
bundle.data['email_notification_follows'] = bundle.obj.email_notifications.follows.is_set
|
||||
bundle.data['email_notification_comments'] = bundle.obj.email_notifications.comments.is_set
|
||||
bundle = BaseResource.dehydrate_bitfield(
|
||||
bundle=bundle,
|
||||
field_name='email_notifications',
|
||||
object_field=bundle.obj.email_notifications,
|
||||
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||
)
|
||||
|
||||
bundle = BaseResource.dehydrate_bitfield(
|
||||
bundle=bundle,
|
||||
field_name='activity_sharing_facebook',
|
||||
object_field=bundle.obj.activity_sharing_facebook,
|
||||
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||
)
|
||||
|
||||
bundle = BaseResource.dehydrate_bitfield(
|
||||
bundle=bundle,
|
||||
field_name='activity_sharing_twitter',
|
||||
object_field=bundle.obj.activity_sharing_twitter,
|
||||
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||
)
|
||||
|
||||
if bundle.obj.user.id == bundle.request.user.id:
|
||||
bundle.data['email'] = bundle.obj.email
|
||||
bundle.data['first_name'] = bundle.obj.first_name
|
||||
bundle.data['last_name'] = bundle.obj.last_name
|
||||
bundle.data['activity_sharing_likes'] = \
|
||||
self._hydrate_bitmap_opt(bundle.obj.activity_sharing, UserProfile.ACTIVITY_SHARE_LIKES)
|
||||
bundle.data['activity_sharing_favourites'] = \
|
||||
self._hydrate_bitmap_opt(bundle.obj.activity_sharing, UserProfile.ACTIVITY_SHARE_FAVOURITES)
|
||||
bundle.data['activity_sharing_comments'] = \
|
||||
self._hydrate_bitmap_opt(bundle.obj.activity_sharing, UserProfile.ACTIVITY_SHARE_COMMENTS)
|
||||
bundle.data['activity_sharing_plays'] = \
|
||||
self._hydrate_bitmap_opt(bundle.obj.activity_sharing, UserProfile.ACTIVITY_SHARE_PLAYS)
|
||||
|
||||
bundle.data['activity_sharing_networks_facebook'] = \
|
||||
self._hydrate_bitmap_opt(bundle.obj.activity_sharing_networks,
|
||||
UserProfile.ACTIVITY_SHARE_NETWORK_FACEBOOK)
|
||||
bundle.data['activity_sharing_networks_twitter'] = \
|
||||
self._hydrate_bitmap_opt(bundle.obj.activity_sharing_networks,
|
||||
UserProfile.ACTIVITY_SHARE_NETWORK_TWITTER)
|
||||
|
||||
bundle.data['like_count'] = Mix.objects.filter(likes__user=bundle.obj).count()
|
||||
bundle.data['favourite_count'] = Mix.objects.filter(favourites__user=bundle.obj).count()
|
||||
@@ -141,32 +137,25 @@ class UserResource(BaseResource):
|
||||
return bundle
|
||||
|
||||
def hydrate(self, bundle):
|
||||
if 'activity_sharing_likes' in bundle.data:
|
||||
plays = UserProfile.ACTIVITY_SHARE_PLAYS if bundle.data['activity_sharing_plays'] else 0
|
||||
likes = UserProfile.ACTIVITY_SHARE_LIKES if bundle.data['activity_sharing_likes'] else 0
|
||||
favourites = UserProfile.ACTIVITY_SHARE_FAVOURITES if bundle.data['activity_sharing_favourites'] else 0
|
||||
comments = UserProfile.ACTIVITY_SHARE_COMMENTS if bundle.data['activity_sharing_comments'] else 0
|
||||
bundle.data['activity_sharing'] = (plays | likes | favourites | comments)
|
||||
del bundle.data['activity_sharing_plays']
|
||||
del bundle.data['activity_sharing_likes']
|
||||
del bundle.data['activity_sharing_favourites']
|
||||
del bundle.data['activity_sharing_comments']
|
||||
bundle = BaseResource.hydrate_bitfield(
|
||||
bundle=bundle,
|
||||
field_name='email_notifications',
|
||||
object_field=UserProfile.email_notifications,
|
||||
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||
)
|
||||
bundle = BaseResource.hydrate_bitfield(
|
||||
bundle=bundle,
|
||||
field_name='activity_sharing_facebook',
|
||||
object_field=UserProfile.activity_sharing_facebook,
|
||||
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||
)
|
||||
|
||||
if 'activity_sharing_networks_facebook' in bundle.data:
|
||||
facebook = UserProfile.ACTIVITY_SHARE_NETWORK_FACEBOOK if bundle.data[
|
||||
'activity_sharing_networks_facebook'] else 0
|
||||
twitter = UserProfile.ACTIVITY_SHARE_NETWORK_TWITTER if bundle.data[
|
||||
'activity_sharing_networks_twitter'] else 0
|
||||
bundle.data['activity_sharing_networks'] = (facebook | twitter)
|
||||
del bundle.data['activity_sharing_networks_facebook']
|
||||
del bundle.data['activity_sharing_networks_twitter']
|
||||
|
||||
bundle.data['email_notifications'] = \
|
||||
UserProfile.email_notifications.plays if bundle.data['email_notification_plays'] else False | \
|
||||
UserProfile.email_notifications.likes if bundle.data['email_notification_likes'] else False | \
|
||||
UserProfile.email_notifications.favourites if bundle.data['email_notification_favourites'] else False | \
|
||||
UserProfile.email_notifications.follows if bundle.data['email_notification_follows'] else False | \
|
||||
UserProfile.email_notifications.comments if bundle.data['email_notification_comments'] else False
|
||||
bundle = BaseResource.hydrate_bitfield(
|
||||
bundle=bundle,
|
||||
field_name='activity_sharing_twitter',
|
||||
object_field=UserProfile.activity_sharing_twitter,
|
||||
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||
)
|
||||
|
||||
return bundle
|
||||
|
||||
|
||||
@@ -0,0 +1,304 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
|
||||
# Changing field 'UserProfile.email_notifications'
|
||||
db.alter_column(u'spa_userprofile', 'email_notifications', self.gf('spa.models.fields.MultiSelectField')(max_length=104))
|
||||
|
||||
def backwards(self, orm):
|
||||
|
||||
# Changing field 'UserProfile.email_notifications'
|
||||
db.alter_column(u'spa_userprofile', 'email_notifications', self.gf('django.db.models.fields.BigIntegerField')())
|
||||
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
|
||||
'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'})
|
||||
},
|
||||
'schedule.calendar': {
|
||||
'Meta': {'object_name': 'Calendar'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '200'})
|
||||
},
|
||||
'schedule.event': {
|
||||
'Meta': {'object_name': 'Event'},
|
||||
'calendar': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Calendar']", 'null': 'True', 'blank': 'True'}),
|
||||
'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'creator'", 'null': 'True', 'to': u"orm['auth.User']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'end': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'end_recurring_period': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'rule': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Rule']", 'null': 'True', 'blank': 'True'}),
|
||||
'start': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'updated_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'schedule.rule': {
|
||||
'Meta': {'object_name': 'Rule'},
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'frequency': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'params': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activity': {
|
||||
'Meta': {'object_name': 'Activity'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activitycomment': {
|
||||
'Meta': {'object_name': 'ActivityComment', '_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': "'activity_comments'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activitydownload': {
|
||||
'Meta': {'object_name': 'ActivityDownload', '_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': "'activity_downloads'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfavourite': {
|
||||
'Meta': {'object_name': 'ActivityFavourite', '_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': "'activity_favourites'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfollow': {
|
||||
'Meta': {'object_name': 'ActivityFollow', '_ormbases': ['spa.Activity']},
|
||||
u'activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa.Activity']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_follow'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.activitylike': {
|
||||
'Meta': {'object_name': 'ActivityLike', '_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': "'activity_likes'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityplay': {
|
||||
'Meta': {'object_name': 'ActivityPlay', '_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': "'activity_plays'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.chatmessage': {
|
||||
'Meta': {'object_name': 'ChatMessage'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'message': ('django.db.models.fields.TextField', [], {}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'liked_comments'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comments'", 'null': 'True', 'to': "orm['spa.Mix']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'time_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.mix': {
|
||||
'Meta': {'object_name': 'Mix'},
|
||||
'archive_path': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
|
||||
'archive_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'download_allowed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'favourites': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'favourites'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'filetype': ('django.db.models.fields.CharField', [], {'default': "'mp3'", 'max_length': '10'}),
|
||||
'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'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'likes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'mp3tags_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'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', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mixes'", 'to': "orm['spa.UserProfile']"}),
|
||||
'waveform_generated': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
||||
},
|
||||
'spa.notification': {
|
||||
'Meta': {'object_name': 'Notification'},
|
||||
'accepted_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'notifications'", 'null': 'True', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'notification_html': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_text': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'target': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'to_notications'", 'to': "orm['spa.UserProfile']"}),
|
||||
'verb': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'})
|
||||
},
|
||||
'spa.playlist': {
|
||||
'Meta': {'object_name': 'Playlist'},
|
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mixes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['spa.Mix']", 'symmetrical': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'playlists'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.purchaselink': {
|
||||
'Meta': {'object_name': 'PurchaseLink'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release_artist': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'release_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 1, 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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'release_audio'", 'null': 'True', 'to': "orm['spa.Release']"})
|
||||
},
|
||||
'spa.show': {
|
||||
'Meta': {'object_name': 'Show', '_ormbases': ['schedule.Event']},
|
||||
u'event_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['schedule.Event']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'show'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'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']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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.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': '1024', 'blank': 'True'}),
|
||||
'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'social'", 'max_length': '15'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'country': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
|
||||
'display_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
|
||||
'email_notifications': ('spa.models.fields.MultiSelectField', [], {'max_length': '104'}),
|
||||
'following': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'followers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_known_session': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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']
|
||||
@@ -0,0 +1,305 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as 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 'UserProfile.email_notifications'
|
||||
db.delete_column(u'spa_userprofile', 'email_notifications')
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'UserProfile.email_notifications'
|
||||
db.add_column(u'spa_userprofile', 'email_notifications',
|
||||
self.gf('django.db.models.fields.BigIntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
|
||||
'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'})
|
||||
},
|
||||
'schedule.calendar': {
|
||||
'Meta': {'object_name': 'Calendar'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '200'})
|
||||
},
|
||||
'schedule.event': {
|
||||
'Meta': {'object_name': 'Event'},
|
||||
'calendar': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Calendar']", 'null': 'True', 'blank': 'True'}),
|
||||
'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'creator'", 'null': 'True', 'to': u"orm['auth.User']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'end': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'end_recurring_period': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'rule': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Rule']", 'null': 'True', 'blank': 'True'}),
|
||||
'start': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'updated_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'schedule.rule': {
|
||||
'Meta': {'object_name': 'Rule'},
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'frequency': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'params': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activity': {
|
||||
'Meta': {'object_name': 'Activity'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activitycomment': {
|
||||
'Meta': {'object_name': 'ActivityComment', '_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': "'activity_comments'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activitydownload': {
|
||||
'Meta': {'object_name': 'ActivityDownload', '_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': "'activity_downloads'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfavourite': {
|
||||
'Meta': {'object_name': 'ActivityFavourite', '_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': "'activity_favourites'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfollow': {
|
||||
'Meta': {'object_name': 'ActivityFollow', '_ormbases': ['spa.Activity']},
|
||||
u'activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa.Activity']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_follow'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.activitylike': {
|
||||
'Meta': {'object_name': 'ActivityLike', '_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': "'activity_likes'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityplay': {
|
||||
'Meta': {'object_name': 'ActivityPlay', '_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': "'activity_plays'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.chatmessage': {
|
||||
'Meta': {'object_name': 'ChatMessage'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'message': ('django.db.models.fields.TextField', [], {}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'liked_comments'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comments'", 'null': 'True', 'to': "orm['spa.Mix']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'time_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.mix': {
|
||||
'Meta': {'object_name': 'Mix'},
|
||||
'archive_path': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
|
||||
'archive_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'download_allowed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'favourites': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'favourites'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'filetype': ('django.db.models.fields.CharField', [], {'default': "'mp3'", 'max_length': '10'}),
|
||||
'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'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'likes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'mp3tags_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'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', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mixes'", 'to': "orm['spa.UserProfile']"}),
|
||||
'waveform_generated': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
||||
},
|
||||
'spa.notification': {
|
||||
'Meta': {'object_name': 'Notification'},
|
||||
'accepted_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'notifications'", 'null': 'True', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'notification_html': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_text': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'target': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'to_notications'", 'to': "orm['spa.UserProfile']"}),
|
||||
'verb': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'})
|
||||
},
|
||||
'spa.playlist': {
|
||||
'Meta': {'object_name': 'Playlist'},
|
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mixes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['spa.Mix']", 'symmetrical': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'playlists'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.purchaselink': {
|
||||
'Meta': {'object_name': 'PurchaseLink'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release_artist': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'release_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 1, 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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'release_audio'", 'null': 'True', 'to': "orm['spa.Release']"})
|
||||
},
|
||||
'spa.show': {
|
||||
'Meta': {'object_name': 'Show', '_ormbases': ['schedule.Event']},
|
||||
u'event_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['schedule.Event']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'show'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'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']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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.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': '1024', 'blank': 'True'}),
|
||||
'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'social'", 'max_length': '15'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'country': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
|
||||
'display_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
|
||||
'following': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'followers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_known_session': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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']
|
||||
@@ -0,0 +1,306 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'UserProfile.email_notifications'
|
||||
db.add_column(u'spa_userprofile', 'email_notifications',
|
||||
self.gf('django.db.models.fields.BigIntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'UserProfile.email_notifications'
|
||||
db.delete_column(u'spa_userprofile', 'email_notifications')
|
||||
|
||||
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
|
||||
'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'})
|
||||
},
|
||||
'schedule.calendar': {
|
||||
'Meta': {'object_name': 'Calendar'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '200'})
|
||||
},
|
||||
'schedule.event': {
|
||||
'Meta': {'object_name': 'Event'},
|
||||
'calendar': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Calendar']", 'null': 'True', 'blank': 'True'}),
|
||||
'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'creator'", 'null': 'True', 'to': u"orm['auth.User']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'end': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'end_recurring_period': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'rule': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Rule']", 'null': 'True', 'blank': 'True'}),
|
||||
'start': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'updated_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'schedule.rule': {
|
||||
'Meta': {'object_name': 'Rule'},
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'frequency': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'params': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activity': {
|
||||
'Meta': {'object_name': 'Activity'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activitycomment': {
|
||||
'Meta': {'object_name': 'ActivityComment', '_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': "'activity_comments'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activitydownload': {
|
||||
'Meta': {'object_name': 'ActivityDownload', '_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': "'activity_downloads'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfavourite': {
|
||||
'Meta': {'object_name': 'ActivityFavourite', '_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': "'activity_favourites'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfollow': {
|
||||
'Meta': {'object_name': 'ActivityFollow', '_ormbases': ['spa.Activity']},
|
||||
u'activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa.Activity']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_follow'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.activitylike': {
|
||||
'Meta': {'object_name': 'ActivityLike', '_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': "'activity_likes'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityplay': {
|
||||
'Meta': {'object_name': 'ActivityPlay', '_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': "'activity_plays'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.chatmessage': {
|
||||
'Meta': {'object_name': 'ChatMessage'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'message': ('django.db.models.fields.TextField', [], {}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'liked_comments'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comments'", 'null': 'True', 'to': "orm['spa.Mix']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'time_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.mix': {
|
||||
'Meta': {'object_name': 'Mix'},
|
||||
'archive_path': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
|
||||
'archive_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'download_allowed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'favourites': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'favourites'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'filetype': ('django.db.models.fields.CharField', [], {'default': "'mp3'", 'max_length': '10'}),
|
||||
'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'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'likes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'mp3tags_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'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', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mixes'", 'to': "orm['spa.UserProfile']"}),
|
||||
'waveform_generated': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
||||
},
|
||||
'spa.notification': {
|
||||
'Meta': {'object_name': 'Notification'},
|
||||
'accepted_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'notifications'", 'null': 'True', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'notification_html': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_text': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'target': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'to_notications'", 'to': "orm['spa.UserProfile']"}),
|
||||
'verb': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'})
|
||||
},
|
||||
'spa.playlist': {
|
||||
'Meta': {'object_name': 'Playlist'},
|
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mixes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['spa.Mix']", 'symmetrical': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'playlists'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.purchaselink': {
|
||||
'Meta': {'object_name': 'PurchaseLink'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release_artist': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'release_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 1, 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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'release_audio'", 'null': 'True', 'to': "orm['spa.Release']"})
|
||||
},
|
||||
'spa.show': {
|
||||
'Meta': {'object_name': 'Show', '_ormbases': ['schedule.Event']},
|
||||
u'event_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['schedule.Event']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'show'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'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']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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.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': '1024', 'blank': 'True'}),
|
||||
'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'social'", 'max_length': '15'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'country': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
|
||||
'display_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
|
||||
'email_notifications': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
|
||||
'following': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'followers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_known_session': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 1, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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']
|
||||
@@ -0,0 +1,304 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
|
||||
# Changing field 'UserProfile.activity_sharing'
|
||||
db.alter_column(u'spa_userprofile', 'activity_sharing', self.gf('django.db.models.fields.BigIntegerField')())
|
||||
|
||||
def backwards(self, orm):
|
||||
|
||||
# Changing field 'UserProfile.activity_sharing'
|
||||
db.alter_column(u'spa_userprofile', 'activity_sharing', self.gf('django.db.models.fields.IntegerField')())
|
||||
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
|
||||
'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'})
|
||||
},
|
||||
'schedule.calendar': {
|
||||
'Meta': {'object_name': 'Calendar'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '200'})
|
||||
},
|
||||
'schedule.event': {
|
||||
'Meta': {'object_name': 'Event'},
|
||||
'calendar': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Calendar']", 'null': 'True', 'blank': 'True'}),
|
||||
'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'creator'", 'null': 'True', 'to': u"orm['auth.User']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'end': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'end_recurring_period': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'rule': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Rule']", 'null': 'True', 'blank': 'True'}),
|
||||
'start': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'updated_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'schedule.rule': {
|
||||
'Meta': {'object_name': 'Rule'},
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'frequency': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'params': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activity': {
|
||||
'Meta': {'object_name': 'Activity'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activitycomment': {
|
||||
'Meta': {'object_name': 'ActivityComment', '_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': "'activity_comments'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activitydownload': {
|
||||
'Meta': {'object_name': 'ActivityDownload', '_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': "'activity_downloads'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfavourite': {
|
||||
'Meta': {'object_name': 'ActivityFavourite', '_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': "'activity_favourites'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfollow': {
|
||||
'Meta': {'object_name': 'ActivityFollow', '_ormbases': ['spa.Activity']},
|
||||
u'activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa.Activity']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_follow'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.activitylike': {
|
||||
'Meta': {'object_name': 'ActivityLike', '_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': "'activity_likes'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityplay': {
|
||||
'Meta': {'object_name': 'ActivityPlay', '_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': "'activity_plays'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.chatmessage': {
|
||||
'Meta': {'object_name': 'ChatMessage'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'message': ('django.db.models.fields.TextField', [], {}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'liked_comments'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comments'", 'null': 'True', 'to': "orm['spa.Mix']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'time_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.mix': {
|
||||
'Meta': {'object_name': 'Mix'},
|
||||
'archive_path': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
|
||||
'archive_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'download_allowed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'favourites': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'favourites'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'filetype': ('django.db.models.fields.CharField', [], {'default': "'mp3'", 'max_length': '10'}),
|
||||
'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'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'likes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'mp3tags_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'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', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mixes'", 'to': "orm['spa.UserProfile']"}),
|
||||
'waveform_generated': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
||||
},
|
||||
'spa.notification': {
|
||||
'Meta': {'object_name': 'Notification'},
|
||||
'accepted_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'notifications'", 'null': 'True', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'notification_html': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_text': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'target': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'to_notications'", 'to': "orm['spa.UserProfile']"}),
|
||||
'verb': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'})
|
||||
},
|
||||
'spa.playlist': {
|
||||
'Meta': {'object_name': 'Playlist'},
|
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mixes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['spa.Mix']", 'symmetrical': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'playlists'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.purchaselink': {
|
||||
'Meta': {'object_name': 'PurchaseLink'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release_artist': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'release_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 2, 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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'release_audio'", 'null': 'True', 'to': "orm['spa.Release']"})
|
||||
},
|
||||
'spa.show': {
|
||||
'Meta': {'object_name': 'Show', '_ormbases': ['schedule.Event']},
|
||||
u'event_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['schedule.Event']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'show'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'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']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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.userprofile': {
|
||||
'Meta': {'object_name': 'UserProfile'},
|
||||
'activity_sharing': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
|
||||
'activity_sharing_networks': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'avatar_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'social'", 'max_length': '15'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'country': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
|
||||
'display_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
|
||||
'email_notifications': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
|
||||
'following': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'followers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_known_session': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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']
|
||||
@@ -0,0 +1,323 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as 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 'UserProfile.activity_sharing'
|
||||
db.delete_column(u'spa_userprofile', 'activity_sharing')
|
||||
|
||||
# Adding field 'UserProfile.activity_sharing_facebook'
|
||||
db.add_column(u'spa_userprofile', 'activity_sharing_facebook',
|
||||
self.gf('django.db.models.fields.BigIntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'UserProfile.activity_sharing_twitter'
|
||||
db.add_column(u'spa_userprofile', 'activity_sharing_twitter',
|
||||
self.gf('django.db.models.fields.BigIntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'UserProfile.activity_sharing'
|
||||
db.add_column(u'spa_userprofile', 'activity_sharing',
|
||||
self.gf('django.db.models.fields.BigIntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
# Deleting field 'UserProfile.activity_sharing_facebook'
|
||||
db.delete_column(u'spa_userprofile', 'activity_sharing_facebook')
|
||||
|
||||
# Deleting field 'UserProfile.activity_sharing_twitter'
|
||||
db.delete_column(u'spa_userprofile', 'activity_sharing_twitter')
|
||||
|
||||
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
|
||||
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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
|
||||
'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'})
|
||||
},
|
||||
'schedule.calendar': {
|
||||
'Meta': {'object_name': 'Calendar'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '200'})
|
||||
},
|
||||
'schedule.event': {
|
||||
'Meta': {'object_name': 'Event'},
|
||||
'calendar': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Calendar']", 'null': 'True', 'blank': 'True'}),
|
||||
'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'creator'", 'null': 'True', 'to': u"orm['auth.User']"}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'end': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'end_recurring_period': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'rule': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['schedule.Rule']", 'null': 'True', 'blank': 'True'}),
|
||||
'start': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'updated_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'schedule.rule': {
|
||||
'Meta': {'object_name': 'Rule'},
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'frequency': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'params': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activity': {
|
||||
'Meta': {'object_name': 'Activity'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['spa.UserProfile']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.activitycomment': {
|
||||
'Meta': {'object_name': 'ActivityComment', '_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': "'activity_comments'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activitydownload': {
|
||||
'Meta': {'object_name': 'ActivityDownload', '_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': "'activity_downloads'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfavourite': {
|
||||
'Meta': {'object_name': 'ActivityFavourite', '_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': "'activity_favourites'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityfollow': {
|
||||
'Meta': {'object_name': 'ActivityFollow', '_ormbases': ['spa.Activity']},
|
||||
u'activity_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['spa.Activity']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_follow'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.activitylike': {
|
||||
'Meta': {'object_name': 'ActivityLike', '_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': "'activity_likes'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.activityplay': {
|
||||
'Meta': {'object_name': 'ActivityPlay', '_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': "'activity_plays'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'spa.chatmessage': {
|
||||
'Meta': {'object_name': 'ChatMessage'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'message': ('django.db.models.fields.TextField', [], {}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'liked_comments'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'comments'", 'null': 'True', 'to': "orm['spa.Mix']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'time_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'})
|
||||
},
|
||||
'spa.mix': {
|
||||
'Meta': {'object_name': 'Mix'},
|
||||
'archive_path': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
|
||||
'archive_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'download_allowed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'favourites': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'favourites'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'filetype': ('django.db.models.fields.CharField', [], {'default': "'mp3'", 'max_length': '10'}),
|
||||
'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'}),
|
||||
'likes': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'likes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
'mix_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'mp3tags_updated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'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', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mixes'", 'to': "orm['spa.UserProfile']"}),
|
||||
'waveform_generated': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
|
||||
},
|
||||
'spa.notification': {
|
||||
'Meta': {'object_name': 'Notification'},
|
||||
'accepted_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'notifications'", 'null': 'True', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'notification_html': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_text': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||
'notification_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'target': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
|
||||
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'to_notications'", 'to': "orm['spa.UserProfile']"}),
|
||||
'verb': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'})
|
||||
},
|
||||
'spa.playlist': {
|
||||
'Meta': {'object_name': 'Playlist'},
|
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mixes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['spa.Mix']", 'symmetrical': 'False'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'playlists'", 'to': "orm['spa.UserProfile']"})
|
||||
},
|
||||
'spa.purchaselink': {
|
||||
'Meta': {'object_name': 'PurchaseLink'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release_artist': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'release_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 2, 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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'release_audio'", 'null': 'True', 'to': "orm['spa.Release']"})
|
||||
},
|
||||
'spa.show': {
|
||||
'Meta': {'object_name': 'Show', '_ormbases': ['schedule.Event']},
|
||||
u'event_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['schedule.Event']", 'unique': 'True', 'primary_key': 'True'}),
|
||||
'mix': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'show'", 'to': "orm['spa.Mix']"})
|
||||
},
|
||||
'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']"}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
|
||||
'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.userprofile': {
|
||||
'Meta': {'object_name': 'UserProfile'},
|
||||
'activity_sharing_facebook': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
|
||||
'activity_sharing_networks': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'activity_sharing_twitter': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
|
||||
'avatar_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'social'", 'max_length': '15'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'country': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
|
||||
'display_name': ('django.db.models.fields.CharField', [], {'max_length': '35', 'blank': 'True'}),
|
||||
'email_notifications': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
|
||||
'following': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'followers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['spa.UserProfile']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'last_known_session': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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'}),
|
||||
'object_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'object_updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)', 'auto_now': 'True', 'db_index': 'True', 'blank': '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']
|
||||
105
spa/models/fields.py
Normal file
105
spa/models/fields.py
Normal file
@@ -0,0 +1,105 @@
|
||||
import sys
|
||||
|
||||
import django
|
||||
|
||||
from django.db import models
|
||||
from django.utils.text import capfirst
|
||||
from django.core import exceptions
|
||||
|
||||
if sys.version_info[0] == 2:
|
||||
string_type = unicode
|
||||
else:
|
||||
string_type = str
|
||||
|
||||
# Code from six egg https://bitbucket.org/gutworth/six/src/a3641cb211cc360848f1e2dd92e9ae6cd1de55dd/six.py?at=default
|
||||
|
||||
|
||||
def add_metaclass(metaclass):
|
||||
"""Class decorator for creating a class with a metaclass."""
|
||||
def wrapper(cls):
|
||||
orig_vars = cls.__dict__.copy()
|
||||
orig_vars.pop('__dict__', None)
|
||||
orig_vars.pop('__weakref__', None)
|
||||
for slots_var in orig_vars.get('__slots__', ()):
|
||||
orig_vars.pop(slots_var)
|
||||
return metaclass(cls.__name__, cls.__bases__, orig_vars)
|
||||
return wrapper
|
||||
|
||||
|
||||
def get_max_length(choices, max_length, default=200):
|
||||
if max_length is None:
|
||||
if choices:
|
||||
return len(','.join([string_type(key) for key, label in choices]))
|
||||
else:
|
||||
return default
|
||||
return max_length
|
||||
|
||||
|
||||
class MultiSelectField(models.CharField):
|
||||
""" Choice values can not contain commas. """
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(MultiSelectField, self).__init__(*args, **kwargs)
|
||||
self.max_length = get_max_length(self.choices, self.max_length)
|
||||
|
||||
def get_choices_default(self):
|
||||
return self.get_choices(include_blank=False)
|
||||
|
||||
def get_choices_selected(self, arr_choices):
|
||||
choices_selected = []
|
||||
for choice_selected in arr_choices:
|
||||
choices_selected.append(string_type(choice_selected[0]))
|
||||
return choices_selected
|
||||
|
||||
def value_to_string(self, obj):
|
||||
value = self._get_val_from_obj(obj)
|
||||
return self.get_prep_value(value)
|
||||
|
||||
def validate(self, value, model_instance):
|
||||
arr_choices = self.get_choices_selected(self.get_choices_default())
|
||||
for opt_select in value:
|
||||
if opt_select not in arr_choices:
|
||||
if django.VERSION[0] >= 1 and django.VERSION[1] >= 6:
|
||||
raise exceptions.ValidationError(self.error_messages['invalid_choice'] % {"value": value})
|
||||
else:
|
||||
raise exceptions.ValidationError(self.error_messages['invalid_choice'] % value)
|
||||
|
||||
def get_default(self):
|
||||
default = super(MultiSelectField, self).get_default()
|
||||
if isinstance(default, int):
|
||||
default = string_type(default)
|
||||
return default
|
||||
|
||||
def get_prep_value(self, value):
|
||||
return ",".join(value)
|
||||
|
||||
def to_python(self, value):
|
||||
if value is not None:
|
||||
return value if isinstance(value, list) else value.split(',')
|
||||
return ''
|
||||
|
||||
def contribute_to_class(self, cls, name, virtual_only=False):
|
||||
super(MultiSelectField, self).contribute_to_class(cls, name, virtual_only)
|
||||
if self.choices:
|
||||
def get_display(obj):
|
||||
fieldname = name
|
||||
choicedict = dict(self.choices)
|
||||
display = []
|
||||
for value in getattr(obj, fieldname):
|
||||
item_display = choicedict.get(value, None)
|
||||
if item_display is None:
|
||||
try:
|
||||
item_display = choicedict.get(int(value), value)
|
||||
except (ValueError, TypeError):
|
||||
item_display = value
|
||||
display.append(string_type(item_display))
|
||||
return ", ".join(display)
|
||||
setattr(cls, 'get_%s_display' % self.name, get_display)
|
||||
|
||||
MultiSelectField = add_metaclass(models.SubfieldBase)(MultiSelectField)
|
||||
|
||||
try:
|
||||
from south.modelsinspector import add_introspection_rules
|
||||
add_introspection_rules([], ['^spa\.models.fields\.MultiSelectField'])
|
||||
except ImportError:
|
||||
pass
|
||||
@@ -16,6 +16,7 @@ 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.fields import MultiSelectField
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -35,10 +36,6 @@ class UserProfile(BaseModel):
|
||||
app_label = 'spa'
|
||||
|
||||
objects = UserProfileManager()
|
||||
ACTIVITY_SHARE_LIKES = 1
|
||||
ACTIVITY_SHARE_FAVOURITES = 2
|
||||
ACTIVITY_SHARE_COMMENTS = 4
|
||||
ACTIVITY_SHARE_PLAYS = 8
|
||||
|
||||
ACTIVITY_SHARE_NETWORK_FACEBOOK = 1
|
||||
ACTIVITY_SHARE_NETWORK_TWITTER = 2
|
||||
@@ -50,16 +47,19 @@ class UserProfile(BaseModel):
|
||||
description = models.CharField(blank=True, max_length=2048)
|
||||
|
||||
slug = models.SlugField(max_length=50, blank=True, null=True, default=None)
|
||||
activity_sharing = models.IntegerField(default=0)
|
||||
activity_sharing_networks = models.IntegerField(default=0)
|
||||
|
||||
email_notifications = BitField(flags=(
|
||||
NOTIFICATION_CHOICES = (
|
||||
('plays', 'Plays'),
|
||||
('likes', 'Likes'),
|
||||
('favourites', 'Favourites'),
|
||||
('follows', 'Follows'),
|
||||
('comments', 'Comments'),
|
||||
), default=0)
|
||||
)
|
||||
|
||||
activity_sharing_facebook = BitField(flags=NOTIFICATION_CHOICES, default=0)
|
||||
activity_sharing_twitter = BitField(flags=NOTIFICATION_CHOICES, default=0)
|
||||
email_notifications = BitField(flags=NOTIFICATION_CHOICES, default=0)
|
||||
|
||||
following = models.ManyToManyField('self', null=True, blank=True, symmetrical=False, related_name='followers')
|
||||
|
||||
|
||||
@@ -54,11 +54,6 @@
|
||||
else
|
||||
"""
|
||||
toastr.info "Successfully updated yourself"
|
||||
alert("What to do")
|
||||
"""
|
||||
Backbone.history.navigate "/",
|
||||
trigger: true
|
||||
"""
|
||||
true
|
||||
error: ->
|
||||
toastr.error "There was an error updating your info. Please try again later."
|
||||
|
||||
@@ -6,6 +6,27 @@ _.addTemplateHelpers
|
||||
renderCheckbox: (value) ->
|
||||
return (if value then "checked" else "")
|
||||
|
||||
renderOptionList: (list) ->
|
||||
|
||||
"""
|
||||
TODO: Won't get this working without sending the field label down in the REST api
|
||||
Pretty sure I don't really want to do that
|
||||
"""
|
||||
tpl = """
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="||PROPERTY||[||ITEM||]" class="ace"
|
||||
id="||PROPERTY||[||ITEM||]" <%= renderCheckbox(||PROPERTY||.||ITEM||) %>>
|
||||
<span class="lbl"> Plays</span>
|
||||
</label>
|
||||
</div>
|
||||
"""
|
||||
optionList = ""
|
||||
_.each list, (item)->
|
||||
optionList += tpl.replace("||PROPERTY||", "property").replace("||ITEM||", "item")
|
||||
|
||||
optionList
|
||||
|
||||
isMe: (id) ->
|
||||
return utils.isMe(id)
|
||||
|
||||
|
||||
@@ -74,60 +74,75 @@
|
||||
<div class="widget-body">
|
||||
<div class="widget-main padding-4">
|
||||
<div class="col-xs-6 bordered-right">
|
||||
<label class="control-label bolder blue">Share this activity</label>
|
||||
|
||||
<label class="control-label bolder blue"><i class="ace-icon fa fa-facebook"></i> Facebook</label>
|
||||
<div class="control-group form-inline">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="activity_sharing_plays" class="ace"
|
||||
id="activity_sharing_plays" <%= renderCheckbox(activity_sharing_plays) %>>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_facebook[plays]"
|
||||
id="activity_sharing_facebook[plays]" <%= renderCheckbox(activity_sharing_facebook.plays) %>>
|
||||
<span class="lbl"> Plays</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="activity_sharing_likes" class="ace"
|
||||
id="activity_sharing_likes" <%= renderCheckbox(activity_sharing_likes) %>>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_facebook[likes]"
|
||||
id="activity_sharing_facebook[likes]" <%= renderCheckbox(activity_sharing_facebook.likes) %>>
|
||||
<span class="lbl"> Likes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="activity_sharing_favourites"
|
||||
class="ace"
|
||||
id="activity_sharing_favourites" <%= renderCheckbox(activity_sharing_favourites) %>>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_facebook[favourites]"
|
||||
id="activity_sharing_facebook[favourites]" <%= renderCheckbox(activity_sharing_facebook.favourites) %>>
|
||||
<span class="lbl"> Favourites</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="activity_sharing_comments" class="ace"
|
||||
id="activity_sharing_comments" <%= renderCheckbox(activity_sharing_comments) %>>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_facebook[comments]"
|
||||
id="activity_sharing_facebook[comments]" <%= renderCheckbox(activity_sharing_facebook.comments) %>>
|
||||
<span class="lbl"> Comments</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 bordered-left">
|
||||
<label class="control-label bolder blue">On these networks</label>
|
||||
|
||||
<label class="control-label bolder blue"><i class="ace-icon fa fa-twitter"></i> Twitter</label>
|
||||
<div class="control-group form-inline">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="activity_sharing_networks_facebook"
|
||||
class="ace"
|
||||
id="activity_sharing_networks_facebook"
|
||||
<%= renderCheckbox(activity_sharing_networks_facebook) %>>
|
||||
<span class="lbl"> Facebook</span>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_twitter[plays]"
|
||||
id="activity_sharing_twitter[plays]" <%= renderCheckbox(activity_sharing_twitter.plays) %>>
|
||||
<span class="lbl"> Plays</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="activity_sharing_networks_twitter"
|
||||
class="ace"
|
||||
id="activity_sharing_networks_twitter"
|
||||
<%= renderCheckbox(activity_sharing_networks_twitter) %>>
|
||||
<span class="lbl"> Twitter</span>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_twitter[likes]"
|
||||
id="activity_sharing_twitter[likes]" <%= renderCheckbox(activity_sharing_twitter.likes) %>>
|
||||
<span class="lbl"> Likes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_twitter[favourites]"
|
||||
id="activity_sharing_twitter[favourites]" <%= renderCheckbox(activity_sharing_twitter.favourites) %>>
|
||||
<span class="lbl"> Favourites</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" class="ace"
|
||||
name="activity_sharing_twitter[comments]"
|
||||
id="activity_sharing_twitter[comments]" <%= renderCheckbox(activity_sharing_twitter.comments) %>>
|
||||
<span class="lbl"> Comments</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -150,34 +165,40 @@
|
||||
<div class="control-group form-inline">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="email_notification_plays" class="ace"
|
||||
id="email_notification_plays" <%= renderCheckbox(email_notification_plays) %>>
|
||||
<input type="checkbox" name="email_notifications[plays]" class="ace"
|
||||
id="email_notifications[plays]" <%= renderCheckbox(email_notifications.plays) %>>
|
||||
<span class="lbl"> Plays</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="email_notification_likes" class="ace"
|
||||
id="email_notification_likes" <%= renderCheckbox(email_notification_likes) %>>
|
||||
<input type="checkbox" name="email_notifications[likes]" class="ace"
|
||||
id="email_notifications[likes]" <%= renderCheckbox(email_notifications.likes) %>>
|
||||
<span class="lbl"> Likes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="email_notification_favourites" class="ace"
|
||||
id="email_notification_favourites" <%= renderCheckbox(email_notification_favourites) %>>
|
||||
<input type="checkbox" name="email_notifications[favourites]" class="ace"
|
||||
id="email_notifications[favourites]" <%= renderCheckbox(email_notifications.favourites) %>>
|
||||
<span class="lbl"> Favourites</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="email_notification_comments" class="ace"
|
||||
id="email_notification_comments" <%= renderCheckbox(email_notification_comments) %>>
|
||||
<input type="checkbox" name="email_notifications[comments]" class="ace"
|
||||
id="email_notifications[comments]" <%= renderCheckbox(email_notifications.comments) %>>
|
||||
<span class="lbl"> Comments</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="email_notifications[follows]" class="ace"
|
||||
id="email_notifications[follows]" <%= renderCheckbox(email_notifications.follows) %>>
|
||||
<span class="lbl"> Follows</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,46 +1,70 @@
|
||||
// Backbone.Syphon, v0.4.1
|
||||
// Copyright (c)2012 Derick Bailey, Muted Solutions, LLC.
|
||||
// Distributed under MIT license
|
||||
// http://github.com/derickbailey/backbone.syphon
|
||||
Backbone.Syphon = (function(Backbone, $, _){
|
||||
var Syphon = {};
|
||||
(function(root, factory) {
|
||||
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define(['underscore', 'backbone', 'jquery'], function(_, Backbone, $) {
|
||||
return factory(_, Backbone, $);
|
||||
});
|
||||
} else if (typeof exports !== 'undefined') {
|
||||
var _ = require('underscore');
|
||||
var Backbone = require('backbone');
|
||||
var $ = require('jquery');
|
||||
module.exports = factory(_, Backbone, $);
|
||||
} else {
|
||||
factory(root._, root.Backbone, root.jQuery);
|
||||
}
|
||||
|
||||
}(this, function(_, Backbone, $) {
|
||||
'use strict';
|
||||
|
||||
var previousSyphon = Backbone.Syphon;
|
||||
|
||||
var Syphon = Backbone.Syphon = {};
|
||||
|
||||
Syphon.VERSION = '0.5.0';
|
||||
|
||||
Syphon.noConflict = function() {
|
||||
Backbone.Syphon = previousSyphon;
|
||||
return this;
|
||||
};
|
||||
|
||||
/* jshint maxstatements: 13, maxlen: 102, maxcomplexity: 8, latedef: false */
|
||||
|
||||
// Ignore Element Types
|
||||
// --------------------
|
||||
|
||||
|
||||
// Tell Syphon to ignore all elements of these types. You can
|
||||
// push new types to ignore directly in to this array.
|
||||
Syphon.ignoredTypes = ["button", "submit", "reset", "fieldset"];
|
||||
|
||||
Syphon.ignoredTypes = ['button', 'submit', 'reset', 'fieldset'];
|
||||
|
||||
// Syphon
|
||||
// ------
|
||||
|
||||
|
||||
// Get a JSON object that represents
|
||||
// all of the form inputs, in this view.
|
||||
// Alternately, pass a form element directly
|
||||
// in place of the view.
|
||||
Syphon.serialize = function(view, options){
|
||||
var data = {};
|
||||
|
||||
|
||||
// Build the configuration
|
||||
var config = buildConfig(options);
|
||||
|
||||
|
||||
// Get all of the elements to process
|
||||
var elements = getInputElements(view, config);
|
||||
|
||||
|
||||
// Process all of the elements
|
||||
_.each(elements, function(el){
|
||||
var $el = $(el);
|
||||
var type = getElementType($el);
|
||||
|
||||
var type = getElementType($el);
|
||||
|
||||
// Get the key for the input
|
||||
var keyExtractor = config.keyExtractors.get(type);
|
||||
var key = keyExtractor($el);
|
||||
|
||||
|
||||
// Get the value for the input
|
||||
var inputReader = config.inputReaders.get(type);
|
||||
var value = inputReader($el);
|
||||
|
||||
|
||||
// Get the key assignment validator and make sure
|
||||
// it's valid before assigning the value to the key
|
||||
var validKeyAssignment = config.keyAssignmentValidators.get(type);
|
||||
@@ -49,7 +73,7 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
data = assignKeyValue(data, keychain, value);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Done; send back the results.
|
||||
return data;
|
||||
};
|
||||
@@ -61,50 +85,50 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
Syphon.deserialize = function(view, data, options){
|
||||
// Build the configuration
|
||||
var config = buildConfig(options);
|
||||
|
||||
|
||||
// Get all of the elements to process
|
||||
var elements = getInputElements(view, config);
|
||||
|
||||
|
||||
// Flatten the data structure that we are deserializing
|
||||
var flattenedData = flattenData(config, data);
|
||||
|
||||
|
||||
// Process all of the elements
|
||||
_.each(elements, function(el){
|
||||
var $el = $(el);
|
||||
var type = getElementType($el);
|
||||
|
||||
var type = getElementType($el);
|
||||
|
||||
// Get the key for the input
|
||||
var keyExtractor = config.keyExtractors.get(type);
|
||||
var key = keyExtractor($el);
|
||||
|
||||
|
||||
// Get the input writer and the value to write
|
||||
var inputWriter = config.inputWriters.get(type);
|
||||
var value = flattenedData[key];
|
||||
|
||||
|
||||
// Write the value to the input
|
||||
inputWriter($el, value);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// Helpers
|
||||
// -------
|
||||
|
||||
|
||||
// Retrieve all of the form inputs
|
||||
// from the form
|
||||
var getInputElements = function(view, config){
|
||||
var form = getForm(view);
|
||||
var elements = form.elements;
|
||||
|
||||
|
||||
elements = _.reject(elements, function(el){
|
||||
var reject;
|
||||
var type = getElementType(el);
|
||||
var extractor = config.keyExtractors.get(type);
|
||||
var identifier = extractor($(el));
|
||||
|
||||
|
||||
var foundInIgnored = _.include(config.ignoredTypes, type);
|
||||
var foundInInclude = _.include(config.include, identifier);
|
||||
var foundInExclude = _.include(config.exclude, identifier);
|
||||
|
||||
|
||||
if (foundInInclude){
|
||||
reject = false;
|
||||
} else {
|
||||
@@ -114,13 +138,13 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
reject = (foundInExclude || foundInIgnored);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return reject;
|
||||
});
|
||||
|
||||
|
||||
return elements;
|
||||
};
|
||||
|
||||
|
||||
// Determine what type of element this is. It
|
||||
// will either return the `type` attribute of
|
||||
// an `<input>` element, or the `tagName` of
|
||||
@@ -130,37 +154,37 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
var $el = $(el);
|
||||
var tagName = $el[0].tagName;
|
||||
var type = tagName;
|
||||
|
||||
if (tagName.toLowerCase() === "input"){
|
||||
typeAttr = $el.attr("type");
|
||||
|
||||
if (tagName.toLowerCase() === 'input'){
|
||||
typeAttr = $el.attr('type');
|
||||
if (typeAttr){
|
||||
type = typeAttr;
|
||||
} else {
|
||||
type = "text";
|
||||
type = 'text';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Always return the type as lowercase
|
||||
// so it can be matched to lowercase
|
||||
// type registrations.
|
||||
return type.toLowerCase();
|
||||
};
|
||||
|
||||
// If a form element is given, just return it.
|
||||
// If a form element is given, just return it.
|
||||
// Otherwise, get the form element from the view.
|
||||
var getForm = function(viewOrForm){
|
||||
if (_.isUndefined(viewOrForm.$el) && viewOrForm.tagName.toLowerCase() === 'form'){
|
||||
return viewOrForm;
|
||||
} else {
|
||||
return viewOrForm.$el.is("form") ? viewOrForm.el : viewOrForm.$("form")[0];
|
||||
return viewOrForm.$el.is('form') ? viewOrForm.el : viewOrForm.$('form')[0];
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Build a configuration object and initialize
|
||||
// default values.
|
||||
var buildConfig = function(options){
|
||||
var config = _.clone(options) || {};
|
||||
|
||||
|
||||
config.ignoredTypes = _.clone(Syphon.ignoredTypes);
|
||||
config.inputReaders = config.inputReaders || Syphon.InputReaders;
|
||||
config.inputWriters = config.inputWriters || Syphon.InputWriters;
|
||||
@@ -168,41 +192,41 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
config.keySplitter = config.keySplitter || Syphon.KeySplitter;
|
||||
config.keyJoiner = config.keyJoiner || Syphon.KeyJoiner;
|
||||
config.keyAssignmentValidators = config.keyAssignmentValidators || Syphon.KeyAssignmentValidators;
|
||||
|
||||
|
||||
return config;
|
||||
};
|
||||
|
||||
// Assigns `value` to a parsed JSON key.
|
||||
|
||||
// Assigns `value` to a parsed JSON key.
|
||||
//
|
||||
// The first parameter is the object which will be
|
||||
// modified to store the key/value pair.
|
||||
//
|
||||
// The second parameter accepts an array of keys as a
|
||||
// string with an option array containing a
|
||||
// The second parameter accepts an array of keys as a
|
||||
// string with an option array containing a
|
||||
// single string as the last option.
|
||||
//
|
||||
// The third parameter is the value to be assigned.
|
||||
//
|
||||
// Examples:
|
||||
//
|
||||
// `["foo", "bar", "baz"] => {foo: {bar: {baz: "value"}}}`
|
||||
//
|
||||
// `["foo", "bar", ["baz"]] => {foo: {bar: {baz: ["value"]}}}`
|
||||
//
|
||||
// `['foo', 'bar', 'baz'] => {foo: {bar: {baz: 'value'}}}`
|
||||
//
|
||||
// `['foo', 'bar', ['baz']] => {foo: {bar: {baz: ['value']}}}`
|
||||
//
|
||||
// When the final value is an array with a string, the key
|
||||
// becomes an array, and values are pushed in to the array,
|
||||
// allowing multiple fields with the same name to be
|
||||
// allowing multiple fields with the same name to be
|
||||
// assigned to the array.
|
||||
var assignKeyValue = function(obj, keychain, value) {
|
||||
if (!keychain){ return obj; }
|
||||
|
||||
|
||||
var key = keychain.shift();
|
||||
|
||||
|
||||
// build the current object we need to store data
|
||||
if (!obj[key]){
|
||||
obj[key] = _.isArray(key) ? [] : {};
|
||||
}
|
||||
|
||||
|
||||
// if it's the last key in the chain, assign the value directly
|
||||
if (keychain.length === 0){
|
||||
if (_.isArray(obj[key])){
|
||||
@@ -211,15 +235,15 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
obj[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// recursive parsing of the array, depth-first
|
||||
if (keychain.length > 0){
|
||||
assignKeyValue(obj[key], keychain, value);
|
||||
}
|
||||
|
||||
|
||||
return obj;
|
||||
};
|
||||
|
||||
|
||||
// Flatten the data structure in to nested strings, using the
|
||||
// provided `KeyJoiner` function.
|
||||
//
|
||||
@@ -229,241 +253,231 @@ Backbone.Syphon = (function(Backbone, $, _){
|
||||
//
|
||||
// ```js
|
||||
// {
|
||||
// widget: "wombat",
|
||||
// widget: 'wombat',
|
||||
// foo: {
|
||||
// bar: "baz",
|
||||
// bar: 'baz',
|
||||
// baz: {
|
||||
// quux: "qux"
|
||||
// quux: 'qux'
|
||||
// },
|
||||
// quux: ["foo", "bar"]
|
||||
// quux: ['foo', 'bar']
|
||||
// }
|
||||
// }
|
||||
// ```
|
||||
//
|
||||
// With a KeyJoiner that uses [ ] square brackets,
|
||||
// With a KeyJoiner that uses [ ] square brackets,
|
||||
// should produce this output:
|
||||
//
|
||||
// ```js
|
||||
// {
|
||||
// "widget": "wombat",
|
||||
// "foo[bar]": "baz",
|
||||
// "foo[baz][quux]": "qux",
|
||||
// "foo[quux]": ["foo", "bar"]
|
||||
// 'widget': 'wombat',
|
||||
// 'foo[bar]': 'baz',
|
||||
// 'foo[baz][quux]': 'qux',
|
||||
// 'foo[quux]': ['foo', 'bar']
|
||||
// }
|
||||
// ```
|
||||
var flattenData = function(config, data, parentKey){
|
||||
var flatData = {};
|
||||
|
||||
|
||||
_.each(data, function(value, keyName){
|
||||
var hash = {};
|
||||
|
||||
|
||||
// If there is a parent key, join it with
|
||||
// the current, child key.
|
||||
if (parentKey){
|
||||
keyName = config.keyJoiner(parentKey, keyName);
|
||||
}
|
||||
|
||||
|
||||
if (_.isArray(value)){
|
||||
keyName += "[]";
|
||||
keyName += '[]';
|
||||
hash[keyName] = value;
|
||||
} else if (_.isObject(value)){
|
||||
hash = flattenData(config, value, keyName);
|
||||
} else {
|
||||
hash[keyName] = value;
|
||||
}
|
||||
|
||||
|
||||
// Store the resulting key/value pairs in the
|
||||
// final flattened data object
|
||||
_.extend(flatData, hash);
|
||||
});
|
||||
|
||||
|
||||
return flatData;
|
||||
};
|
||||
|
||||
return Syphon;
|
||||
})(Backbone, jQuery, _);
|
||||
|
||||
// Type Registry
|
||||
// -------------
|
||||
|
||||
// Type Registries allow you to register something to
|
||||
// an input type, and retrieve either the item registered
|
||||
// for a specific type or the default registration
|
||||
Backbone.Syphon.TypeRegistry = function(){
|
||||
this.registeredTypes = {};
|
||||
};
|
||||
|
||||
// Borrow Backbone's `extend` keyword for our TypeRegistry
|
||||
Backbone.Syphon.TypeRegistry.extend = Backbone.Model.extend;
|
||||
|
||||
_.extend(Backbone.Syphon.TypeRegistry.prototype, {
|
||||
|
||||
// Get the registered item by type. If nothing is
|
||||
// found for the specified type, the default is
|
||||
// returned.
|
||||
get: function(type){
|
||||
var item = this.registeredTypes[type];
|
||||
|
||||
if (!item){
|
||||
item = this.registeredTypes["default"];
|
||||
|
||||
// Type Registry
|
||||
// -------------
|
||||
|
||||
// Type Registries allow you to register something to
|
||||
// an input type, and retrieve either the item registered
|
||||
// for a specific type or the default registration
|
||||
var TypeRegistry = Syphon.TypeRegistry = function() {
|
||||
this.registeredTypes = {};
|
||||
};
|
||||
|
||||
// Borrow Backbone's `extend` keyword for our TypeRegistry
|
||||
TypeRegistry.extend = Backbone.Model.extend;
|
||||
|
||||
_.extend(TypeRegistry.prototype, {
|
||||
|
||||
// Get the registered item by type. If nothing is
|
||||
// found for the specified type, the default is
|
||||
// returned.
|
||||
get: function(type){
|
||||
return this.registeredTypes[type] || this.registeredTypes['default'];
|
||||
},
|
||||
|
||||
// Register a new item for a specified type
|
||||
register: function(type, item) {
|
||||
this.registeredTypes[type] = item;
|
||||
},
|
||||
|
||||
// Register a default item to be used when no
|
||||
// item for a specified type is found
|
||||
registerDefault: function(item) {
|
||||
this.registeredTypes['default'] = item;
|
||||
},
|
||||
|
||||
// Remove an item from a given type registration
|
||||
unregister: function(type) {
|
||||
if (this.registeredTypes[type]) {
|
||||
delete this.registeredTypes[type];
|
||||
}
|
||||
}
|
||||
|
||||
return item;
|
||||
},
|
||||
|
||||
// Register a new item for a specified type
|
||||
register: function(type, item){
|
||||
this.registeredTypes[type] = item;
|
||||
},
|
||||
|
||||
// Register a default item to be used when no
|
||||
// item for a specified type is found
|
||||
registerDefault: function(item){
|
||||
this.registeredTypes["default"] = item;
|
||||
},
|
||||
|
||||
// Remove an item from a given type registration
|
||||
unregister: function(type){
|
||||
if (this.registeredTypes[type]){
|
||||
delete this.registeredTypes[type];
|
||||
});
|
||||
|
||||
// Key Extractors
|
||||
// --------------
|
||||
|
||||
// Key extractors produce the "key" in `{key: "value"}`
|
||||
// pairs, when serializing.
|
||||
var KeyExtractorSet = Syphon.KeyExtractorSet = TypeRegistry.extend();
|
||||
|
||||
// Built-in Key Extractors
|
||||
var KeyExtractors = Syphon.KeyExtractors = new KeyExtractorSet();
|
||||
|
||||
// The default key extractor, which uses the
|
||||
// input element's "name" attribute
|
||||
KeyExtractors.registerDefault(function($el) {
|
||||
return $el.prop('name') || '';
|
||||
});
|
||||
|
||||
// Input Readers
|
||||
// -------------
|
||||
|
||||
// Input Readers are used to extract the value from
|
||||
// an input element, for the serialized object result
|
||||
var InputReaderSet = Syphon.InputReaderSet = TypeRegistry.extend();
|
||||
|
||||
// Built-in Input Readers
|
||||
var InputReaders = Syphon.InputReaders = new InputReaderSet();
|
||||
|
||||
// The default input reader, which uses an input
|
||||
// element's "value"
|
||||
InputReaders.registerDefault(function($el){
|
||||
return $el.val();
|
||||
});
|
||||
|
||||
// Checkbox reader, returning a boolean value for
|
||||
// whether or not the checkbox is checked.
|
||||
InputReaders.register('checkbox', function($el) {
|
||||
return $el.prop('checked');
|
||||
});
|
||||
|
||||
// Input Writers
|
||||
// -------------
|
||||
|
||||
// Input Writers are used to insert a value from an
|
||||
// object into an input element.
|
||||
var InputWriterSet = Syphon.InputWriterSet = TypeRegistry.extend();
|
||||
|
||||
// Built-in Input Writers
|
||||
var InputWriters = Syphon.InputWriters = new InputWriterSet();
|
||||
|
||||
// The default input writer, which sets an input
|
||||
// element's "value"
|
||||
InputWriters.registerDefault(function($el, value) {
|
||||
$el.val(value);
|
||||
});
|
||||
|
||||
// Checkbox writer, set whether or not the checkbox is checked
|
||||
// depending on the boolean value.
|
||||
InputWriters.register('checkbox', function($el, value) {
|
||||
$el.prop('checked', value);
|
||||
});
|
||||
|
||||
// Radio button writer, set whether or not the radio button is
|
||||
// checked. The button should only be checked if it's value
|
||||
// equals the given value.
|
||||
InputWriters.register('radio', function($el, value) {
|
||||
$el.prop('checked', $el.val() === value.toString());
|
||||
});
|
||||
|
||||
// Key Assignment Validators
|
||||
// -------------------------
|
||||
|
||||
// Key Assignment Validators are used to determine whether or not a
|
||||
// key should be assigned to a value, after the key and value have been
|
||||
// extracted from the element. This is the last opportunity to prevent
|
||||
// bad data from getting serialized to your object.
|
||||
|
||||
var KeyAssignmentValidatorSet = Syphon.KeyAssignmentValidatorSet = TypeRegistry.extend();
|
||||
|
||||
// Build-in Key Assignment Validators
|
||||
var KeyAssignmentValidators = Syphon.KeyAssignmentValidators = new KeyAssignmentValidatorSet();
|
||||
|
||||
// Everything is valid by default
|
||||
KeyAssignmentValidators.registerDefault(function() {
|
||||
return true;
|
||||
});
|
||||
|
||||
// But only the "checked" radio button for a given
|
||||
// radio button group is valid
|
||||
KeyAssignmentValidators.register('radio', function($el, key, value) {
|
||||
return $el.prop('checked');
|
||||
});
|
||||
|
||||
// Backbone.Syphon.KeySplitter
|
||||
// ---------------------------
|
||||
|
||||
// This function is used to split DOM element keys in to an array
|
||||
// of parts, which are then used to create a nested result structure.
|
||||
// returning `["foo", "bar"]` results in `{foo: { bar: "value" }}`.
|
||||
//
|
||||
// Override this method to use a custom key splitter, such as:
|
||||
// `<input name="foo.bar.baz">`, `return key.split(".")`
|
||||
Syphon.KeySplitter = function(key) {
|
||||
var matches = key.match(/[^\[\]]+/g);
|
||||
var lastKey;
|
||||
|
||||
if (key.indexOf('[]') === key.length - 2) {
|
||||
lastKey = matches.pop();
|
||||
matches.push([lastKey]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return matches;
|
||||
};
|
||||
|
||||
// Backbone.Syphon.KeyJoiner
|
||||
// -------------------------
|
||||
|
||||
// Take two segments of a key and join them together, to create the
|
||||
// de-normalized key name, when deserializing a data structure back
|
||||
// in to a form.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// With this data strucutre `{foo: { bar: {baz: "value", quux: "another"} } }`,
|
||||
// the key joiner will be called with these parameters, and assuming the
|
||||
// join happens with "[ ]" square brackets, the specified output:
|
||||
//
|
||||
// `KeyJoiner("foo", "bar")` //=> "foo[bar]"
|
||||
// `KeyJoiner("foo[bar]", "baz")` //=> "foo[bar][baz]"
|
||||
// `KeyJoiner("foo[bar]", "quux")` //=> "foo[bar][quux]"
|
||||
|
||||
Syphon.KeyJoiner = function(parentKey, childKey) {
|
||||
return parentKey + '[' + childKey + ']';
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Key Extractors
|
||||
// --------------
|
||||
|
||||
// Key extractors produce the "key" in `{key: "value"}`
|
||||
// pairs, when serializing.
|
||||
Backbone.Syphon.KeyExtractorSet = Backbone.Syphon.TypeRegistry.extend();
|
||||
|
||||
// Built-in Key Extractors
|
||||
Backbone.Syphon.KeyExtractors = new Backbone.Syphon.KeyExtractorSet();
|
||||
|
||||
// The default key extractor, which uses the
|
||||
// input element's "id" attribute
|
||||
Backbone.Syphon.KeyExtractors.registerDefault(function($el){
|
||||
return $el.prop("name");
|
||||
});
|
||||
|
||||
|
||||
// Input Readers
|
||||
// -------------
|
||||
|
||||
// Input Readers are used to extract the value from
|
||||
// an input element, for the serialized object result
|
||||
Backbone.Syphon.InputReaderSet = Backbone.Syphon.TypeRegistry.extend();
|
||||
|
||||
// Built-in Input Readers
|
||||
Backbone.Syphon.InputReaders = new Backbone.Syphon.InputReaderSet();
|
||||
|
||||
// The default input reader, which uses an input
|
||||
// element's "value"
|
||||
Backbone.Syphon.InputReaders.registerDefault(function($el){
|
||||
return $el.val();
|
||||
});
|
||||
|
||||
// Checkbox reader, returning a boolean value for
|
||||
// whether or not the checkbox is checked.
|
||||
Backbone.Syphon.InputReaders.register("checkbox", function($el){
|
||||
var checked = $el.prop("checked");
|
||||
return checked;
|
||||
});
|
||||
|
||||
|
||||
// Input Writers
|
||||
// -------------
|
||||
|
||||
// Input Writers are used to insert a value from an
|
||||
// object into an input element.
|
||||
Backbone.Syphon.InputWriterSet = Backbone.Syphon.TypeRegistry.extend();
|
||||
|
||||
// Built-in Input Writers
|
||||
Backbone.Syphon.InputWriters = new Backbone.Syphon.InputWriterSet();
|
||||
|
||||
// The default input writer, which sets an input
|
||||
// element's "value"
|
||||
Backbone.Syphon.InputWriters.registerDefault(function($el, value){
|
||||
$el.val(value);
|
||||
});
|
||||
|
||||
// Checkbox writer, set whether or not the checkbox is checked
|
||||
// depending on the boolean value.
|
||||
Backbone.Syphon.InputWriters.register("checkbox", function($el, value){
|
||||
$el.prop("checked", value);
|
||||
});
|
||||
|
||||
// Radio button writer, set whether or not the radio button is
|
||||
// checked. The button should only be checked if it's value
|
||||
// equals the given value.
|
||||
Backbone.Syphon.InputWriters.register("radio", function($el, value){
|
||||
$el.prop("checked", $el.val() === value);
|
||||
});
|
||||
|
||||
// Key Assignment Validators
|
||||
// -------------------------
|
||||
|
||||
// Key Assignment Validators are used to determine whether or not a
|
||||
// key should be assigned to a value, after the key and value have been
|
||||
// extracted from the element. This is the last opportunity to prevent
|
||||
// bad data from getting serialized to your object.
|
||||
|
||||
Backbone.Syphon.KeyAssignmentValidatorSet = Backbone.Syphon.TypeRegistry.extend();
|
||||
|
||||
// Build-in Key Assignment Validators
|
||||
Backbone.Syphon.KeyAssignmentValidators = new Backbone.Syphon.KeyAssignmentValidatorSet();
|
||||
|
||||
// Everything is valid by default
|
||||
Backbone.Syphon.KeyAssignmentValidators.registerDefault(function(){ return true; });
|
||||
|
||||
// But only the "checked" radio button for a given
|
||||
// radio button group is valid
|
||||
Backbone.Syphon.KeyAssignmentValidators.register("radio", function($el, key, value){
|
||||
return $el.prop("checked");
|
||||
});
|
||||
|
||||
|
||||
// Backbone.Syphon.KeySplitter
|
||||
// ---------------------------
|
||||
|
||||
// This function is used to split DOM element keys in to an array
|
||||
// of parts, which are then used to create a nested result structure.
|
||||
// returning `["foo", "bar"]` results in `{foo: { bar: "value" }}`.
|
||||
//
|
||||
// Override this method to use a custom key splitter, such as:
|
||||
// `<input name="foo.bar.baz">`, `return key.split(".")`
|
||||
Backbone.Syphon.KeySplitter = function(key){
|
||||
var matches = key.match(/[^\[\]]+/g);
|
||||
|
||||
if (key.indexOf("[]") === key.length - 2){
|
||||
lastKey = matches.pop();
|
||||
matches.push([lastKey]);
|
||||
}
|
||||
|
||||
return matches;
|
||||
}
|
||||
|
||||
|
||||
// Backbone.Syphon.KeyJoiner
|
||||
// -------------------------
|
||||
|
||||
// Take two segments of a key and join them together, to create the
|
||||
// de-normalized key name, when deserializing a data structure back
|
||||
// in to a form.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// With this data strucutre `{foo: { bar: {baz: "value", quux: "another"} } }`,
|
||||
// the key joiner will be called with these parameters, and assuming the
|
||||
// join happens with "[ ]" square brackets, the specified output:
|
||||
//
|
||||
// `KeyJoiner("foo", "bar")` //=> "foo[bar]"
|
||||
// `KeyJoiner("foo[bar]", "baz")` //=> "foo[bar][baz]"
|
||||
// `KeyJoiner("foo[bar]", "quux")` //=> "foo[bar][quux]"
|
||||
|
||||
Backbone.Syphon.KeyJoiner = function(parentKey, childKey){
|
||||
return parentKey + "[" + childKey + "]";
|
||||
}
|
||||
return Backbone.Syphon;
|
||||
}));
|
||||
Reference in New Issue
Block a user