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:
|
if arg in kwargs:
|
||||||
del kwargs['activity_sharing_networks_facebook']
|
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 dss import settings
|
||||||
from spa.api.v1.BaseResource import BaseResource
|
from spa.api.v1.BaseResource import BaseResource
|
||||||
from spa.api.v1.PlaylistResource import PlaylistResource
|
from spa.api.v1.PlaylistResource import PlaylistResource
|
||||||
|
from spa.models.basemodel import BaseModel
|
||||||
from spa.models.userprofile import UserProfile
|
from spa.models.userprofile import UserProfile
|
||||||
from spa.models.mix import Mix
|
from spa.models.mix import Mix
|
||||||
from core.tasks import update_geo_info_task
|
from core.tasks import update_geo_info_task
|
||||||
@@ -44,10 +45,6 @@ class UserResource(BaseResource):
|
|||||||
authorization = Authorization()
|
authorization = Authorization()
|
||||||
authentication = Authentication()
|
authentication = Authentication()
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _hydrate_bitmap_opt(source, comparator):
|
|
||||||
return True if (source & comparator) != 0 else False
|
|
||||||
|
|
||||||
def prepend_urls(self):
|
def prepend_urls(self):
|
||||||
return [
|
return [
|
||||||
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)%s$" %
|
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)%s$" %
|
||||||
@@ -96,36 +93,35 @@ class UserResource(BaseResource):
|
|||||||
return bundle.obj.get_profile_description()
|
return bundle.obj.get_profile_description()
|
||||||
|
|
||||||
def dehydrate(self, bundle):
|
def dehydrate(self, bundle):
|
||||||
del bundle.data['activity_sharing']
|
|
||||||
del bundle.data['activity_sharing_networks']
|
del bundle.data['activity_sharing_networks']
|
||||||
bundle.data['display_name'] = bundle.obj.get_nice_name()
|
bundle.data['display_name'] = bundle.obj.get_nice_name()
|
||||||
bundle.data['avatar_image'] = bundle.obj.get_avatar_image()
|
bundle.data['avatar_image'] = bundle.obj.get_avatar_image()
|
||||||
|
|
||||||
bundle.data['email_notification_plays'] = bundle.obj.email_notifications.plays.is_set
|
bundle = BaseResource.dehydrate_bitfield(
|
||||||
bundle.data['email_notification_likes'] = bundle.obj.email_notifications.likes.is_set
|
bundle=bundle,
|
||||||
bundle.data['email_notification_favourites'] = bundle.obj.email_notifications.favourites.is_set
|
field_name='email_notifications',
|
||||||
bundle.data['email_notification_follows'] = bundle.obj.email_notifications.follows.is_set
|
object_field=bundle.obj.email_notifications,
|
||||||
bundle.data['email_notification_comments'] = bundle.obj.email_notifications.comments.is_set
|
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:
|
if bundle.obj.user.id == bundle.request.user.id:
|
||||||
bundle.data['email'] = bundle.obj.email
|
bundle.data['email'] = bundle.obj.email
|
||||||
bundle.data['first_name'] = bundle.obj.first_name
|
bundle.data['first_name'] = bundle.obj.first_name
|
||||||
bundle.data['last_name'] = bundle.obj.last_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['like_count'] = Mix.objects.filter(likes__user=bundle.obj).count()
|
||||||
bundle.data['favourite_count'] = Mix.objects.filter(favourites__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
|
return bundle
|
||||||
|
|
||||||
def hydrate(self, bundle):
|
def hydrate(self, bundle):
|
||||||
if 'activity_sharing_likes' in bundle.data:
|
bundle = BaseResource.hydrate_bitfield(
|
||||||
plays = UserProfile.ACTIVITY_SHARE_PLAYS if bundle.data['activity_sharing_plays'] else 0
|
bundle=bundle,
|
||||||
likes = UserProfile.ACTIVITY_SHARE_LIKES if bundle.data['activity_sharing_likes'] else 0
|
field_name='email_notifications',
|
||||||
favourites = UserProfile.ACTIVITY_SHARE_FAVOURITES if bundle.data['activity_sharing_favourites'] else 0
|
object_field=UserProfile.email_notifications,
|
||||||
comments = UserProfile.ACTIVITY_SHARE_COMMENTS if bundle.data['activity_sharing_comments'] else 0
|
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||||
bundle.data['activity_sharing'] = (plays | likes | favourites | comments)
|
)
|
||||||
del bundle.data['activity_sharing_plays']
|
bundle = BaseResource.hydrate_bitfield(
|
||||||
del bundle.data['activity_sharing_likes']
|
bundle=bundle,
|
||||||
del bundle.data['activity_sharing_favourites']
|
field_name='activity_sharing_facebook',
|
||||||
del bundle.data['activity_sharing_comments']
|
object_field=UserProfile.activity_sharing_facebook,
|
||||||
|
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||||
|
)
|
||||||
|
|
||||||
if 'activity_sharing_networks_facebook' in bundle.data:
|
bundle = BaseResource.hydrate_bitfield(
|
||||||
facebook = UserProfile.ACTIVITY_SHARE_NETWORK_FACEBOOK if bundle.data[
|
bundle=bundle,
|
||||||
'activity_sharing_networks_facebook'] else 0
|
field_name='activity_sharing_twitter',
|
||||||
twitter = UserProfile.ACTIVITY_SHARE_NETWORK_TWITTER if bundle.data[
|
object_field=UserProfile.activity_sharing_twitter,
|
||||||
'activity_sharing_networks_twitter'] else 0
|
choices=UserProfile.NOTIFICATION_CHOICES,
|
||||||
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
|
|
||||||
|
|
||||||
return bundle
|
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 core.utils.url import unique_slugify
|
||||||
from dss import settings
|
from dss import settings
|
||||||
from spa.models.basemodel import BaseModel
|
from spa.models.basemodel import BaseModel
|
||||||
|
from spa.models.fields import MultiSelectField
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -35,10 +36,6 @@ class UserProfile(BaseModel):
|
|||||||
app_label = 'spa'
|
app_label = 'spa'
|
||||||
|
|
||||||
objects = UserProfileManager()
|
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_FACEBOOK = 1
|
||||||
ACTIVITY_SHARE_NETWORK_TWITTER = 2
|
ACTIVITY_SHARE_NETWORK_TWITTER = 2
|
||||||
@@ -50,16 +47,19 @@ class UserProfile(BaseModel):
|
|||||||
description = models.CharField(blank=True, max_length=2048)
|
description = models.CharField(blank=True, max_length=2048)
|
||||||
|
|
||||||
slug = models.SlugField(max_length=50, blank=True, null=True, default=None)
|
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)
|
activity_sharing_networks = models.IntegerField(default=0)
|
||||||
|
|
||||||
email_notifications = BitField(flags=(
|
NOTIFICATION_CHOICES = (
|
||||||
('plays', 'Plays'),
|
('plays', 'Plays'),
|
||||||
('likes', 'Likes'),
|
('likes', 'Likes'),
|
||||||
('favourites', 'Favourites'),
|
('favourites', 'Favourites'),
|
||||||
('follows', 'Follows'),
|
('follows', 'Follows'),
|
||||||
('comments', 'Comments'),
|
('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')
|
following = models.ManyToManyField('self', null=True, blank=True, symmetrical=False, related_name='followers')
|
||||||
|
|
||||||
|
|||||||
@@ -54,11 +54,6 @@
|
|||||||
else
|
else
|
||||||
"""
|
"""
|
||||||
toastr.info "Successfully updated yourself"
|
toastr.info "Successfully updated yourself"
|
||||||
alert("What to do")
|
|
||||||
"""
|
|
||||||
Backbone.history.navigate "/",
|
|
||||||
trigger: true
|
|
||||||
"""
|
|
||||||
true
|
true
|
||||||
error: ->
|
error: ->
|
||||||
toastr.error "There was an error updating your info. Please try again later."
|
toastr.error "There was an error updating your info. Please try again later."
|
||||||
|
|||||||
@@ -6,6 +6,27 @@ _.addTemplateHelpers
|
|||||||
renderCheckbox: (value) ->
|
renderCheckbox: (value) ->
|
||||||
return (if value then "checked" else "")
|
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) ->
|
isMe: (id) ->
|
||||||
return utils.isMe(id)
|
return utils.isMe(id)
|
||||||
|
|
||||||
|
|||||||
@@ -74,60 +74,75 @@
|
|||||||
<div class="widget-body">
|
<div class="widget-body">
|
||||||
<div class="widget-main padding-4">
|
<div class="widget-main padding-4">
|
||||||
<div class="col-xs-6 bordered-right">
|
<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="control-group form-inline">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="activity_sharing_plays" class="ace"
|
<input type="checkbox" class="ace"
|
||||||
id="activity_sharing_plays" <%= renderCheckbox(activity_sharing_plays) %>>
|
name="activity_sharing_facebook[plays]"
|
||||||
|
id="activity_sharing_facebook[plays]" <%= renderCheckbox(activity_sharing_facebook.plays) %>>
|
||||||
<span class="lbl"> Plays</span>
|
<span class="lbl"> Plays</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="activity_sharing_likes" class="ace"
|
<input type="checkbox" class="ace"
|
||||||
id="activity_sharing_likes" <%= renderCheckbox(activity_sharing_likes) %>>
|
name="activity_sharing_facebook[likes]"
|
||||||
|
id="activity_sharing_facebook[likes]" <%= renderCheckbox(activity_sharing_facebook.likes) %>>
|
||||||
<span class="lbl"> Likes</span>
|
<span class="lbl"> Likes</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="activity_sharing_favourites"
|
<input type="checkbox" class="ace"
|
||||||
class="ace"
|
name="activity_sharing_facebook[favourites]"
|
||||||
id="activity_sharing_favourites" <%= renderCheckbox(activity_sharing_favourites) %>>
|
id="activity_sharing_facebook[favourites]" <%= renderCheckbox(activity_sharing_facebook.favourites) %>>
|
||||||
<span class="lbl"> Favourites</span>
|
<span class="lbl"> Favourites</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="activity_sharing_comments" class="ace"
|
<input type="checkbox" class="ace"
|
||||||
id="activity_sharing_comments" <%= renderCheckbox(activity_sharing_comments) %>>
|
name="activity_sharing_facebook[comments]"
|
||||||
|
id="activity_sharing_facebook[comments]" <%= renderCheckbox(activity_sharing_facebook.comments) %>>
|
||||||
<span class="lbl"> Comments</span>
|
<span class="lbl"> Comments</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 bordered-left">
|
<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="control-group form-inline">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="activity_sharing_networks_facebook"
|
<input type="checkbox" class="ace"
|
||||||
class="ace"
|
name="activity_sharing_twitter[plays]"
|
||||||
id="activity_sharing_networks_facebook"
|
id="activity_sharing_twitter[plays]" <%= renderCheckbox(activity_sharing_twitter.plays) %>>
|
||||||
<%= renderCheckbox(activity_sharing_networks_facebook) %>>
|
<span class="lbl"> Plays</span>
|
||||||
<span class="lbl"> Facebook</span>
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="activity_sharing_networks_twitter"
|
<input type="checkbox" class="ace"
|
||||||
class="ace"
|
name="activity_sharing_twitter[likes]"
|
||||||
id="activity_sharing_networks_twitter"
|
id="activity_sharing_twitter[likes]" <%= renderCheckbox(activity_sharing_twitter.likes) %>>
|
||||||
<%= renderCheckbox(activity_sharing_networks_twitter) %>>
|
<span class="lbl"> Likes</span>
|
||||||
<span class="lbl"> Twitter</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>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -150,34 +165,40 @@
|
|||||||
<div class="control-group form-inline">
|
<div class="control-group form-inline">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="email_notification_plays" class="ace"
|
<input type="checkbox" name="email_notifications[plays]" class="ace"
|
||||||
id="email_notification_plays" <%= renderCheckbox(email_notification_plays) %>>
|
id="email_notifications[plays]" <%= renderCheckbox(email_notifications.plays) %>>
|
||||||
<span class="lbl"> Plays</span>
|
<span class="lbl"> Plays</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="email_notification_likes" class="ace"
|
<input type="checkbox" name="email_notifications[likes]" class="ace"
|
||||||
id="email_notification_likes" <%= renderCheckbox(email_notification_likes) %>>
|
id="email_notifications[likes]" <%= renderCheckbox(email_notifications.likes) %>>
|
||||||
<span class="lbl"> Likes</span>
|
<span class="lbl"> Likes</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="email_notification_favourites" class="ace"
|
<input type="checkbox" name="email_notifications[favourites]" class="ace"
|
||||||
id="email_notification_favourites" <%= renderCheckbox(email_notification_favourites) %>>
|
id="email_notifications[favourites]" <%= renderCheckbox(email_notifications.favourites) %>>
|
||||||
<span class="lbl"> Favourites</span>
|
<span class="lbl"> Favourites</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" name="email_notification_comments" class="ace"
|
<input type="checkbox" name="email_notifications[comments]" class="ace"
|
||||||
id="email_notification_comments" <%= renderCheckbox(email_notification_comments) %>>
|
id="email_notifications[comments]" <%= renderCheckbox(email_notifications.comments) %>>
|
||||||
<span class="lbl"> Comments</span>
|
<span class="lbl"> Comments</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,46 +1,70 @@
|
|||||||
// Backbone.Syphon, v0.4.1
|
(function(root, factory) {
|
||||||
// Copyright (c)2012 Derick Bailey, Muted Solutions, LLC.
|
|
||||||
// Distributed under MIT license
|
|
||||||
// http://github.com/derickbailey/backbone.syphon
|
|
||||||
Backbone.Syphon = (function(Backbone, $, _){
|
|
||||||
var Syphon = {};
|
|
||||||
|
|
||||||
|
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
|
// Ignore Element Types
|
||||||
// --------------------
|
// --------------------
|
||||||
|
|
||||||
// Tell Syphon to ignore all elements of these types. You can
|
// Tell Syphon to ignore all elements of these types. You can
|
||||||
// push new types to ignore directly in to this array.
|
// push new types to ignore directly in to this array.
|
||||||
Syphon.ignoredTypes = ["button", "submit", "reset", "fieldset"];
|
Syphon.ignoredTypes = ['button', 'submit', 'reset', 'fieldset'];
|
||||||
|
|
||||||
// Syphon
|
// Syphon
|
||||||
// ------
|
// ------
|
||||||
|
|
||||||
// Get a JSON object that represents
|
// Get a JSON object that represents
|
||||||
// all of the form inputs, in this view.
|
// all of the form inputs, in this view.
|
||||||
// Alternately, pass a form element directly
|
// Alternately, pass a form element directly
|
||||||
// in place of the view.
|
// in place of the view.
|
||||||
Syphon.serialize = function(view, options){
|
Syphon.serialize = function(view, options){
|
||||||
var data = {};
|
var data = {};
|
||||||
|
|
||||||
// Build the configuration
|
// Build the configuration
|
||||||
var config = buildConfig(options);
|
var config = buildConfig(options);
|
||||||
|
|
||||||
// Get all of the elements to process
|
// Get all of the elements to process
|
||||||
var elements = getInputElements(view, config);
|
var elements = getInputElements(view, config);
|
||||||
|
|
||||||
// Process all of the elements
|
// Process all of the elements
|
||||||
_.each(elements, function(el){
|
_.each(elements, function(el){
|
||||||
var $el = $(el);
|
var $el = $(el);
|
||||||
var type = getElementType($el);
|
var type = getElementType($el);
|
||||||
|
|
||||||
// Get the key for the input
|
// Get the key for the input
|
||||||
var keyExtractor = config.keyExtractors.get(type);
|
var keyExtractor = config.keyExtractors.get(type);
|
||||||
var key = keyExtractor($el);
|
var key = keyExtractor($el);
|
||||||
|
|
||||||
// Get the value for the input
|
// Get the value for the input
|
||||||
var inputReader = config.inputReaders.get(type);
|
var inputReader = config.inputReaders.get(type);
|
||||||
var value = inputReader($el);
|
var value = inputReader($el);
|
||||||
|
|
||||||
// Get the key assignment validator and make sure
|
// Get the key assignment validator and make sure
|
||||||
// it's valid before assigning the value to the key
|
// it's valid before assigning the value to the key
|
||||||
var validKeyAssignment = config.keyAssignmentValidators.get(type);
|
var validKeyAssignment = config.keyAssignmentValidators.get(type);
|
||||||
@@ -49,7 +73,7 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
data = assignKeyValue(data, keychain, value);
|
data = assignKeyValue(data, keychain, value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Done; send back the results.
|
// Done; send back the results.
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
@@ -61,50 +85,50 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
Syphon.deserialize = function(view, data, options){
|
Syphon.deserialize = function(view, data, options){
|
||||||
// Build the configuration
|
// Build the configuration
|
||||||
var config = buildConfig(options);
|
var config = buildConfig(options);
|
||||||
|
|
||||||
// Get all of the elements to process
|
// Get all of the elements to process
|
||||||
var elements = getInputElements(view, config);
|
var elements = getInputElements(view, config);
|
||||||
|
|
||||||
// Flatten the data structure that we are deserializing
|
// Flatten the data structure that we are deserializing
|
||||||
var flattenedData = flattenData(config, data);
|
var flattenedData = flattenData(config, data);
|
||||||
|
|
||||||
// Process all of the elements
|
// Process all of the elements
|
||||||
_.each(elements, function(el){
|
_.each(elements, function(el){
|
||||||
var $el = $(el);
|
var $el = $(el);
|
||||||
var type = getElementType($el);
|
var type = getElementType($el);
|
||||||
|
|
||||||
// Get the key for the input
|
// Get the key for the input
|
||||||
var keyExtractor = config.keyExtractors.get(type);
|
var keyExtractor = config.keyExtractors.get(type);
|
||||||
var key = keyExtractor($el);
|
var key = keyExtractor($el);
|
||||||
|
|
||||||
// Get the input writer and the value to write
|
// Get the input writer and the value to write
|
||||||
var inputWriter = config.inputWriters.get(type);
|
var inputWriter = config.inputWriters.get(type);
|
||||||
var value = flattenedData[key];
|
var value = flattenedData[key];
|
||||||
|
|
||||||
// Write the value to the input
|
// Write the value to the input
|
||||||
inputWriter($el, value);
|
inputWriter($el, value);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
// -------
|
// -------
|
||||||
|
|
||||||
// Retrieve all of the form inputs
|
// Retrieve all of the form inputs
|
||||||
// from the form
|
// from the form
|
||||||
var getInputElements = function(view, config){
|
var getInputElements = function(view, config){
|
||||||
var form = getForm(view);
|
var form = getForm(view);
|
||||||
var elements = form.elements;
|
var elements = form.elements;
|
||||||
|
|
||||||
elements = _.reject(elements, function(el){
|
elements = _.reject(elements, function(el){
|
||||||
var reject;
|
var reject;
|
||||||
var type = getElementType(el);
|
var type = getElementType(el);
|
||||||
var extractor = config.keyExtractors.get(type);
|
var extractor = config.keyExtractors.get(type);
|
||||||
var identifier = extractor($(el));
|
var identifier = extractor($(el));
|
||||||
|
|
||||||
var foundInIgnored = _.include(config.ignoredTypes, type);
|
var foundInIgnored = _.include(config.ignoredTypes, type);
|
||||||
var foundInInclude = _.include(config.include, identifier);
|
var foundInInclude = _.include(config.include, identifier);
|
||||||
var foundInExclude = _.include(config.exclude, identifier);
|
var foundInExclude = _.include(config.exclude, identifier);
|
||||||
|
|
||||||
if (foundInInclude){
|
if (foundInInclude){
|
||||||
reject = false;
|
reject = false;
|
||||||
} else {
|
} else {
|
||||||
@@ -114,13 +138,13 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
reject = (foundInExclude || foundInIgnored);
|
reject = (foundInExclude || foundInIgnored);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return reject;
|
return reject;
|
||||||
});
|
});
|
||||||
|
|
||||||
return elements;
|
return elements;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Determine what type of element this is. It
|
// Determine what type of element this is. It
|
||||||
// will either return the `type` attribute of
|
// will either return the `type` attribute of
|
||||||
// an `<input>` element, or the `tagName` of
|
// an `<input>` element, or the `tagName` of
|
||||||
@@ -130,37 +154,37 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
var $el = $(el);
|
var $el = $(el);
|
||||||
var tagName = $el[0].tagName;
|
var tagName = $el[0].tagName;
|
||||||
var type = tagName;
|
var type = tagName;
|
||||||
|
|
||||||
if (tagName.toLowerCase() === "input"){
|
if (tagName.toLowerCase() === 'input'){
|
||||||
typeAttr = $el.attr("type");
|
typeAttr = $el.attr('type');
|
||||||
if (typeAttr){
|
if (typeAttr){
|
||||||
type = typeAttr;
|
type = typeAttr;
|
||||||
} else {
|
} else {
|
||||||
type = "text";
|
type = 'text';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always return the type as lowercase
|
// Always return the type as lowercase
|
||||||
// so it can be matched to lowercase
|
// so it can be matched to lowercase
|
||||||
// type registrations.
|
// type registrations.
|
||||||
return type.toLowerCase();
|
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.
|
// Otherwise, get the form element from the view.
|
||||||
var getForm = function(viewOrForm){
|
var getForm = function(viewOrForm){
|
||||||
if (_.isUndefined(viewOrForm.$el) && viewOrForm.tagName.toLowerCase() === 'form'){
|
if (_.isUndefined(viewOrForm.$el) && viewOrForm.tagName.toLowerCase() === 'form'){
|
||||||
return viewOrForm;
|
return viewOrForm;
|
||||||
} else {
|
} 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
|
// Build a configuration object and initialize
|
||||||
// default values.
|
// default values.
|
||||||
var buildConfig = function(options){
|
var buildConfig = function(options){
|
||||||
var config = _.clone(options) || {};
|
var config = _.clone(options) || {};
|
||||||
|
|
||||||
config.ignoredTypes = _.clone(Syphon.ignoredTypes);
|
config.ignoredTypes = _.clone(Syphon.ignoredTypes);
|
||||||
config.inputReaders = config.inputReaders || Syphon.InputReaders;
|
config.inputReaders = config.inputReaders || Syphon.InputReaders;
|
||||||
config.inputWriters = config.inputWriters || Syphon.InputWriters;
|
config.inputWriters = config.inputWriters || Syphon.InputWriters;
|
||||||
@@ -168,41 +192,41 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
config.keySplitter = config.keySplitter || Syphon.KeySplitter;
|
config.keySplitter = config.keySplitter || Syphon.KeySplitter;
|
||||||
config.keyJoiner = config.keyJoiner || Syphon.KeyJoiner;
|
config.keyJoiner = config.keyJoiner || Syphon.KeyJoiner;
|
||||||
config.keyAssignmentValidators = config.keyAssignmentValidators || Syphon.KeyAssignmentValidators;
|
config.keyAssignmentValidators = config.keyAssignmentValidators || Syphon.KeyAssignmentValidators;
|
||||||
|
|
||||||
return config;
|
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
|
// The first parameter is the object which will be
|
||||||
// modified to store the key/value pair.
|
// modified to store the key/value pair.
|
||||||
//
|
//
|
||||||
// The second parameter accepts an array of keys as a
|
// The second parameter accepts an array of keys as a
|
||||||
// string with an option array containing a
|
// string with an option array containing a
|
||||||
// single string as the last option.
|
// single string as the last option.
|
||||||
//
|
//
|
||||||
// The third parameter is the value to be assigned.
|
// The third parameter is the value to be assigned.
|
||||||
//
|
//
|
||||||
// Examples:
|
// 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
|
// When the final value is an array with a string, the key
|
||||||
// becomes an array, and values are pushed in to the array,
|
// 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.
|
// assigned to the array.
|
||||||
var assignKeyValue = function(obj, keychain, value) {
|
var assignKeyValue = function(obj, keychain, value) {
|
||||||
if (!keychain){ return obj; }
|
if (!keychain){ return obj; }
|
||||||
|
|
||||||
var key = keychain.shift();
|
var key = keychain.shift();
|
||||||
|
|
||||||
// build the current object we need to store data
|
// build the current object we need to store data
|
||||||
if (!obj[key]){
|
if (!obj[key]){
|
||||||
obj[key] = _.isArray(key) ? [] : {};
|
obj[key] = _.isArray(key) ? [] : {};
|
||||||
}
|
}
|
||||||
|
|
||||||
// if it's the last key in the chain, assign the value directly
|
// if it's the last key in the chain, assign the value directly
|
||||||
if (keychain.length === 0){
|
if (keychain.length === 0){
|
||||||
if (_.isArray(obj[key])){
|
if (_.isArray(obj[key])){
|
||||||
@@ -211,15 +235,15 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
obj[key] = value;
|
obj[key] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// recursive parsing of the array, depth-first
|
// recursive parsing of the array, depth-first
|
||||||
if (keychain.length > 0){
|
if (keychain.length > 0){
|
||||||
assignKeyValue(obj[key], keychain, value);
|
assignKeyValue(obj[key], keychain, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Flatten the data structure in to nested strings, using the
|
// Flatten the data structure in to nested strings, using the
|
||||||
// provided `KeyJoiner` function.
|
// provided `KeyJoiner` function.
|
||||||
//
|
//
|
||||||
@@ -229,241 +253,231 @@ Backbone.Syphon = (function(Backbone, $, _){
|
|||||||
//
|
//
|
||||||
// ```js
|
// ```js
|
||||||
// {
|
// {
|
||||||
// widget: "wombat",
|
// widget: 'wombat',
|
||||||
// foo: {
|
// foo: {
|
||||||
// bar: "baz",
|
// bar: 'baz',
|
||||||
// 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:
|
// should produce this output:
|
||||||
//
|
//
|
||||||
// ```js
|
// ```js
|
||||||
// {
|
// {
|
||||||
// "widget": "wombat",
|
// 'widget': 'wombat',
|
||||||
// "foo[bar]": "baz",
|
// 'foo[bar]': 'baz',
|
||||||
// "foo[baz][quux]": "qux",
|
// 'foo[baz][quux]': 'qux',
|
||||||
// "foo[quux]": ["foo", "bar"]
|
// 'foo[quux]': ['foo', 'bar']
|
||||||
// }
|
// }
|
||||||
// ```
|
// ```
|
||||||
var flattenData = function(config, data, parentKey){
|
var flattenData = function(config, data, parentKey){
|
||||||
var flatData = {};
|
var flatData = {};
|
||||||
|
|
||||||
_.each(data, function(value, keyName){
|
_.each(data, function(value, keyName){
|
||||||
var hash = {};
|
var hash = {};
|
||||||
|
|
||||||
// If there is a parent key, join it with
|
// If there is a parent key, join it with
|
||||||
// the current, child key.
|
// the current, child key.
|
||||||
if (parentKey){
|
if (parentKey){
|
||||||
keyName = config.keyJoiner(parentKey, keyName);
|
keyName = config.keyJoiner(parentKey, keyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_.isArray(value)){
|
if (_.isArray(value)){
|
||||||
keyName += "[]";
|
keyName += '[]';
|
||||||
hash[keyName] = value;
|
hash[keyName] = value;
|
||||||
} else if (_.isObject(value)){
|
} else if (_.isObject(value)){
|
||||||
hash = flattenData(config, value, keyName);
|
hash = flattenData(config, value, keyName);
|
||||||
} else {
|
} else {
|
||||||
hash[keyName] = value;
|
hash[keyName] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the resulting key/value pairs in the
|
// Store the resulting key/value pairs in the
|
||||||
// final flattened data object
|
// final flattened data object
|
||||||
_.extend(flatData, hash);
|
_.extend(flatData, hash);
|
||||||
});
|
});
|
||||||
|
|
||||||
return flatData;
|
return flatData;
|
||||||
};
|
};
|
||||||
|
|
||||||
return Syphon;
|
// Type Registry
|
||||||
})(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
|
||||||
// Type Registries allow you to register something to
|
var TypeRegistry = Syphon.TypeRegistry = function() {
|
||||||
// an input type, and retrieve either the item registered
|
this.registeredTypes = {};
|
||||||
// for a specific type or the default registration
|
};
|
||||||
Backbone.Syphon.TypeRegistry = function(){
|
|
||||||
this.registeredTypes = {};
|
// Borrow Backbone's `extend` keyword for our TypeRegistry
|
||||||
};
|
TypeRegistry.extend = Backbone.Model.extend;
|
||||||
|
|
||||||
// Borrow Backbone's `extend` keyword for our TypeRegistry
|
_.extend(TypeRegistry.prototype, {
|
||||||
Backbone.Syphon.TypeRegistry.extend = Backbone.Model.extend;
|
|
||||||
|
// Get the registered item by type. If nothing is
|
||||||
_.extend(Backbone.Syphon.TypeRegistry.prototype, {
|
// found for the specified type, the default is
|
||||||
|
// returned.
|
||||||
// Get the registered item by type. If nothing is
|
get: function(type){
|
||||||
// found for the specified type, the default is
|
return this.registeredTypes[type] || this.registeredTypes['default'];
|
||||||
// returned.
|
},
|
||||||
get: function(type){
|
|
||||||
var item = this.registeredTypes[type];
|
// Register a new item for a specified type
|
||||||
|
register: function(type, item) {
|
||||||
if (!item){
|
this.registeredTypes[type] = item;
|
||||||
item = this.registeredTypes["default"];
|
},
|
||||||
|
|
||||||
|
// 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;
|
|
||||||
},
|
// Key Extractors
|
||||||
|
// --------------
|
||||||
// Register a new item for a specified type
|
|
||||||
register: function(type, item){
|
// Key extractors produce the "key" in `{key: "value"}`
|
||||||
this.registeredTypes[type] = item;
|
// pairs, when serializing.
|
||||||
},
|
var KeyExtractorSet = Syphon.KeyExtractorSet = TypeRegistry.extend();
|
||||||
|
|
||||||
// Register a default item to be used when no
|
// Built-in Key Extractors
|
||||||
// item for a specified type is found
|
var KeyExtractors = Syphon.KeyExtractors = new KeyExtractorSet();
|
||||||
registerDefault: function(item){
|
|
||||||
this.registeredTypes["default"] = item;
|
// The default key extractor, which uses the
|
||||||
},
|
// input element's "name" attribute
|
||||||
|
KeyExtractors.registerDefault(function($el) {
|
||||||
// Remove an item from a given type registration
|
return $el.prop('name') || '';
|
||||||
unregister: function(type){
|
});
|
||||||
if (this.registeredTypes[type]){
|
|
||||||
delete this.registeredTypes[type];
|
// 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 + ']';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return Backbone.Syphon;
|
||||||
|
}));
|
||||||
|
|
||||||
// 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 + "]";
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user