class UserProfile(models.Model):
- user = models.OneToOneField(User)
-
- school = models.ForeignKey(School, blank=True, null=True)
+ user = models.OneToOneField(User)
+ thanked_notes = models.ManyToManyField('notes.Note', related_name='users_thanked', blank=True, null=True)
+ flagged_notes = models.ManyToManyField('notes.Note', related_name='users_flagged', blank=True, null=True)
+ flagged_courses = models.ManyToManyField('courses.Course', related_name='users_flagged', blank=True, null=True)
+ school = models.ForeignKey(School, blank=True, null=True)
def natural_key(self):
- return (self.user)
+ return (self.user,)
def get_points(self):
sum = 0
return sum
+ def get_id(self):
+ return self.user.id
+
+ def has_staff_status(self):
+ return self.user.is_staff
+
NO_BADGE = 0
PROSPECT = 1
BEGINNER = 2
class BaseKarmaEventManager(models.Manager):
""" Handle restoring data. """
def get_by_natural_key(self, points, user, timestamp):
- return self.get(points=points, user=user, timestamp=timestamp)
+ return self.get(user=user, timestamp=timestamp)
class BaseKarmaEvent(models.Model):
unique_together = ('points', 'user', 'timestamp')
def natural_key(self):
- return (self.points, self.user, self.timestamp)
+ return (self.user, self.timestamp)
def get_message(self):
raise NotImplemented()
GET_FLAGGED = 'get_flagged'
DOWNLOADED_NOTE = 'downloaded'
HAD_NOTE_DOWNLOADED = 'was_downloaded'
+ CREATED_KEYWORD = 'created_keyword'
EVENT_TYPE_CHOICES = (
(UPLOAD, "You uploaded a note"),
(GET_FLAGGED, "Your note was flagged as spam"),
(DOWNLOADED_NOTE, "You downloaded a note"),
(HAD_NOTE_DOWNLOADED, "Your note was downloaded"),
+ (CREATED_KEYWORD, "You created a keyword"),
)
note = models.ForeignKey('notes.Note')
event_type = models.CharField(max_length=15, choices=EVENT_TYPE_CHOICES)
GET_FLAGGED: -100,
DOWNLOADED_NOTE: -2,
HAD_NOTE_DOWNLOADED: 2,
+ CREATED_KEYWORD: 1,
}
def get_message(self):