Merge
--HG-- branch : visible-grades
This commit is contained in:
@@ -151,7 +151,13 @@ def user_groups(user):
|
||||
# TODO: Rewrite in Django
|
||||
key = 'user_group_names_{user.id}'.format(user=user)
|
||||
cache_expiration = 60 * 60 # one hour
|
||||
group_names = cache.get(fasthash(key))
|
||||
|
||||
# Kill caching on dev machines -- we switch groups a lot
|
||||
if "dev" not in setting.DEFAULT_GROUPS:
|
||||
group_names = cache.get(fasthash(key))
|
||||
else:
|
||||
group_names = None
|
||||
|
||||
if group_names is None:
|
||||
group_names = [u.name for u in UserTestGroup.objects.filter(users=user)]
|
||||
cache.set(fasthash(key), group_names, cache_expiration)
|
||||
|
||||
@@ -6,6 +6,7 @@ import tempfile
|
||||
import djcelery
|
||||
|
||||
# from settings2.askbotsettings import LIVESETTINGS_OPTIONS
|
||||
DEFAULT_GROUPS = []
|
||||
|
||||
# Configuration option for when we want to grab server error pages
|
||||
STATIC_GRAB = False
|
||||
|
||||
@@ -29,6 +29,8 @@ class UserProfile(models.Model):
|
||||
meta = models.CharField(blank=True, max_length=255) # JSON dictionary for future expansion
|
||||
courseware = models.CharField(blank=True, max_length=255, default='course.xml')
|
||||
|
||||
## TODO: Should be renamed to generic UserGroup, and possibly
|
||||
# Given an optional field for type of group
|
||||
class UserTestGroup(models.Model):
|
||||
users = models.ManyToManyField(User, db_index=True)
|
||||
name = models.CharField(blank=False, max_length=32, db_index=True)
|
||||
@@ -57,3 +59,52 @@ class Registration(models.Model):
|
||||
#self.delete()
|
||||
|
||||
#cache_relation(User.profile)
|
||||
|
||||
#### Helper methods for use from python manage.py shell.
|
||||
|
||||
def get_user(email):
|
||||
u = User.objects.get(email = email)
|
||||
up = UserProfile.objects.get(user = u)
|
||||
return u,up
|
||||
|
||||
def user_info(email):
|
||||
u,up = get_user(email)
|
||||
print "User id", u.id
|
||||
print "Username", u.username
|
||||
print "E-mail", u.email
|
||||
print "Name", up.name
|
||||
print "Location", up.location
|
||||
print "Language", up.language
|
||||
return u,up
|
||||
|
||||
def change_email(old_email, new_email):
|
||||
u = User.objects.get(email = old_email)
|
||||
u.email = new_email
|
||||
u.save()
|
||||
|
||||
def change_name(email, new_name):
|
||||
u,up = get_user(email)
|
||||
up.name = new_name
|
||||
up.save()
|
||||
|
||||
def user_count():
|
||||
return User.objects.all().count()
|
||||
|
||||
def active_user_count():
|
||||
return User.objects.filter(is_active = True).count()
|
||||
|
||||
def create_group(name, description):
|
||||
utg = UserTestGroup()
|
||||
utg.name = name
|
||||
utg.description = description
|
||||
utg.save()
|
||||
|
||||
def add_user_to_group(group, user):
|
||||
utg = UserTestGroup.objects.get(name = group)
|
||||
utg.users.add(User.objects.get(username = user))
|
||||
utg.save()
|
||||
|
||||
def remove_user_from_group(group, user):
|
||||
utg = UserTestGroup.objects.get(name = group)
|
||||
utg.users.add(User.objects.get(username = user))
|
||||
utg.save()
|
||||
|
||||
Reference in New Issue
Block a user