Skip to content
This repository was archived by the owner on Jul 17, 2018. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions djangoratings/compat.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from django.conf import settings


# Django 1.5 compatibility utilities, providing support for custom User models.
# Since get_user_model() causes a circular import if called when app models are
# being loaded, the user_model_label should be used when possible, with calls
# to get_user_model deferred to execution time

user_model_label = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')

try:
from django.contrib.auth import get_user_model
except ImportError:
from django.contrib.auth.models import User
get_user_model = lambda: User
7 changes: 5 additions & 2 deletions djangoratings/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
from django.db import models
from djangoratings.models import *

from djangoratings.compat import user_model_label


class Migration:

def forwards(self, orm):
Expand Down Expand Up @@ -69,7 +72,7 @@ def backwards(self, orm):
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
user_model_label: {
'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'}),
Expand Down Expand Up @@ -110,7 +113,7 @@ def backwards(self, orm):
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'score': ('django.db.models.fields.IntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['%s']" % user_model_label})
}
}

Expand Down
9 changes: 6 additions & 3 deletions djangoratings/migrations/0002_add_mean_and_stddev.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
from south.v2 import SchemaMigration
from django.db import models

from djangoratings.compat import user_model_label


class Migration(SchemaMigration):

def forwards(self, orm):
Expand Down Expand Up @@ -38,8 +41,8 @@ def backwards(self, orm):
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
user_model_label: {
'Meta': {'object_name': user_model_label.split('.')[-1]},
'_battlenet_profiles': ('django.db.models.fields.TextField', [], {'null': 'True', 'db_column': "'battlenet_profiles'", 'blank': 'True'}),
'avatar': ('django.db.models.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
'bio': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
Expand Down Expand Up @@ -92,7 +95,7 @@ def backwards(self, orm):
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'score': ('django.db.models.fields.IntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['%s']" % user_model_label})
}
}

Expand Down
9 changes: 6 additions & 3 deletions djangoratings/migrations/0003_add_correlations.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
from south.v2 import SchemaMigration
from django.db import models

from djangoratings.compat import user_model_label


class Migration(SchemaMigration):

def forwards(self, orm):
Expand Down Expand Up @@ -40,8 +43,8 @@ def backwards(self, orm):
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
user_model_label: {
'Meta': {'object_name': user_model_label.split('.')[-1]},
'_battlenet_profiles': ('django.db.models.fields.TextField', [], {'null': 'True', 'db_column': "'battlenet_profiles'", 'blank': 'True'}),
'avatar': ('django.db.models.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
'bio': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
Expand Down Expand Up @@ -103,7 +106,7 @@ def backwards(self, orm):
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'score': ('django.db.models.fields.IntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['%s']" % user_model_label})
}
}

Expand Down
16 changes: 9 additions & 7 deletions djangoratings/migrations/0004_rethink_recommendations.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
from south.v2 import SchemaMigration
from django.db import models

from djangoratings.compat import user_model_label

class Migration(SchemaMigration):

def forwards(self, orm):
Expand All @@ -13,11 +15,11 @@ def forwards(self, orm):

# Adding model 'SimilarUser'
db.create_table('djangoratings_similaruser', (
('to_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='similar_users_from', to=orm['auth.User'])),
('to_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='similar_users_from', to=orm[user_model_label])),
('agrees', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('disagrees', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
('from_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='similar_users', to=orm['auth.User'])),
('from_user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='similar_users', to=orm[user_model_label])),
))
db.send_create_signal('djangoratings', ['SimilarUser'])

Expand Down Expand Up @@ -65,8 +67,8 @@ def backwards(self, orm):
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
user_model_label: {
'Meta': {'object_name': user_model_label.split('.')[-1]},
'_battlenet_profiles': ('django.db.models.fields.TextField', [], {'null': 'True', 'db_column': "'battlenet_profiles'", 'blank': 'True'}),
'avatar': ('django.db.models.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
'bio': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
Expand Down Expand Up @@ -111,9 +113,9 @@ def backwards(self, orm):
'Meta': {'unique_together': "(('from_user', 'to_user'),)", 'object_name': 'SimilarUser'},
'agrees': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'disagrees': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users'", 'to': "orm['auth.User']"}),
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users'", 'to': "orm['%s']" % user_model_label}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users_from'", 'to': "orm['auth.User']"})
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users_from'", 'to': "orm['%s']" % user_model_label})
},
'djangoratings.vote': {
'Meta': {'unique_together': "(('content_type', 'object_id', 'key', 'user', 'ip_address'),)", 'object_name': 'Vote'},
Expand All @@ -125,7 +127,7 @@ def backwards(self, orm):
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'score': ('django.db.models.fields.IntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['%s']" % user_model_label})
}
}

Expand Down
17 changes: 10 additions & 7 deletions djangoratings/migrations/0005_add_exclusions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
from south.v2 import SchemaMigration
from django.db import models

from djangoratings.compat import user_model_label


class Migration(SchemaMigration):

def forwards(self, orm):
Expand All @@ -13,7 +16,7 @@ def forwards(self, orm):
('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm[user_model_label])),
))
db.send_create_signal('djangoratings', ['IgnoredObject'])

Expand Down Expand Up @@ -44,8 +47,8 @@ def backwards(self, orm):
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
user_model_label: {
'Meta': {'object_name': user_model_label.split('.')[-1]},
'_battlenet_profiles': ('django.db.models.fields.TextField', [], {'null': 'True', 'db_column': "'battlenet_profiles'", 'blank': 'True'}),
'avatar': ('django.db.models.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
'bio': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
Expand Down Expand Up @@ -82,7 +85,7 @@ def backwards(self, orm):
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['%s']" % user_model_label})
},
'djangoratings.score': {
'Meta': {'unique_together': "(('content_type', 'object_id', 'key'),)", 'object_name': 'Score'},
Expand All @@ -98,9 +101,9 @@ def backwards(self, orm):
'agrees': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'disagrees': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'exclude': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users'", 'to': "orm['auth.User']"}),
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users'", 'to': "orm['%s']" % user_model_label}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users_from'", 'to': "orm['auth.User']"})
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users_from'", 'to': "orm['%s']" % user_model_label})
},
'djangoratings.vote': {
'Meta': {'unique_together': "(('content_type', 'object_id', 'key', 'user', 'ip_address'),)", 'object_name': 'Vote'},
Expand All @@ -112,7 +115,7 @@ def backwards(self, orm):
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'score': ('django.db.models.fields.IntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['%s']" % user_model_label})
}
}

Expand Down
14 changes: 8 additions & 6 deletions djangoratings/migrations/0006_add_cookies.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
from south.v2 import SchemaMigration
from django.db import models

from djangoratings.compat import user_model_label

class Migration(SchemaMigration):

def forwards(self, orm):
Expand Down Expand Up @@ -44,8 +46,8 @@ def backwards(self, orm):
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
user_model_label: {
'Meta': {'object_name': user_model_label.split('.')[-1]},
'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'}),
Expand All @@ -72,7 +74,7 @@ def backwards(self, orm):
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['%s']" % user_model_label})
},
'djangoratings.score': {
'Meta': {'unique_together': "(('content_type', 'object_id', 'key'),)", 'object_name': 'Score'},
Expand All @@ -88,9 +90,9 @@ def backwards(self, orm):
'agrees': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'disagrees': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'exclude': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users'", 'to': "orm['auth.User']"}),
'from_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users'", 'to': "orm['%s']" % user_model_label}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users_from'", 'to': "orm['auth.User']"})
'to_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'similar_users_from'", 'to': "orm['%s']" % user_model_label})
},
'djangoratings.vote': {
'Meta': {'unique_together': "(('content_type', 'object_id', 'key', 'user', 'ip_address', 'cookie'),)", 'object_name': 'Vote'},
Expand All @@ -103,7 +105,7 @@ def backwards(self, orm):
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
'score': ('django.db.models.fields.IntegerField', [], {}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['auth.User']"})
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'votes'", 'null': 'True', 'to': "orm['%s']" % user_model_label})
}
}

Expand Down
5 changes: 4 additions & 1 deletion djangoratings/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from django.contrib.auth.models import User

# support for custom User models in Django 1.5+
from djangoratings.compat import user_model_label
User = user_model_label

try:
from django.utils.timezone import now
Expand Down
5 changes: 4 additions & 1 deletion djangoratings/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@
import random

from django.db import models
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.conf import settings

from exceptions import *
from models import Vote, SimilarUser, IgnoredObject
from fields import AnonymousRatingField, RatingField

# support for custom User models in Django 1.5+
from djangoratings.compat import user_model_label
User = user_model_label

settings.RATINGS_VOTES_PER_IP = 1

class RatingTestModel(models.Model):
Expand Down