make discussions work for new users

This commit is contained in:
Arjun Singh
2012-08-23 06:48:22 -07:00
parent 0a6f5567e1
commit 7f3a4889b8
7 changed files with 29 additions and 22 deletions

View File

@@ -51,6 +51,7 @@ from django.dispatch import receiver
from functools import partial
import comment_client as cc
from django_comment_client.models import Role, Permission
import logging
@@ -174,7 +175,6 @@ class PendingEmailChange(models.Model):
new_email = models.CharField(blank=True, max_length=255, db_index=True)
activation_key = models.CharField(('activation key'), max_length=32, unique=True, db_index=True)
class CourseEnrollment(models.Model):
user = models.ForeignKey(User)
course_id = models.CharField(max_length=255, db_index=True)
@@ -184,6 +184,16 @@ class CourseEnrollment(models.Model):
class Meta:
unique_together = (('user', 'course_id'), )
@receiver(post_save, sender=CourseEnrollment)
def assign_default_role(sender, instance, **kwargs):
if instance.user.is_staff:
role = Role.objects.get_or_create(course_id=instance.course_id, name="Moderator")[0]
else:
role = Role.objects.get_or_create(course_id=instance.course_id, name="Student")[0]
logging.info("assign_default_role: adding %s as %s" % (instance.user, role))
instance.user.roles.add(role)
#cache_relation(User.profile)
#### Helper methods for use from python manage.py shell.