move oxuser to user
This commit is contained in:
parent
925e4d8f18
commit
b6431b70a4
13 changed files with 8 additions and 6 deletions
93
pandora/user/models.py
Normal file
93
pandora/user/models.py
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# vi:si:et:sw=4:sts=4:ts=4
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
from django.db.models import signals
|
||||
from django.dispatch import dispatcher
|
||||
from django.utils import simplejson as json
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class UserProfile(models.Model):
|
||||
recover_key = models.TextField()
|
||||
user = models.ForeignKey(User, unique=True)
|
||||
|
||||
files_updated = models.DateTimeField(default=datetime.now)
|
||||
|
||||
def user_post_save(sender, instance, **kwargs):
|
||||
profile, new = UserProfile.objects.get_or_create(user=instance)
|
||||
|
||||
models.signals.post_save.connect(user_post_save, sender=User)
|
||||
|
||||
class Preference(models.Model):
|
||||
user = models.ForeignKey(User, related_name='preferences')
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
modified = models.DateTimeField(auto_now=True)
|
||||
key = models.CharField(blank=True, max_length=255)
|
||||
value = models.TextField(blank=True)
|
||||
|
||||
def getUserJSON(user):
|
||||
json = {}
|
||||
for key in ('username', ):
|
||||
json[key] = getattr(user, key)
|
||||
json['group'] = 'user'
|
||||
if user.is_staff:
|
||||
json['group'] = 'admin'
|
||||
elif user.has_perm('0x.vip'): #FIXME: permissions
|
||||
json['group'] = 'vip'
|
||||
json['preferences'] = getPreferences(user)
|
||||
json['ui'] = getUI(user)
|
||||
return json
|
||||
|
||||
def getUI(user):
|
||||
return {
|
||||
"columns": ["id", "title", "director", "country", "year", "language", "genre"],
|
||||
"findQuery": {"conditions": [{"key": "", "value": "", "operator": ""}], "operator": ""},
|
||||
"groupsQuery": {"conditions": [], "operator": "|"},
|
||||
"groupsSize": 128,
|
||||
"itemView": "info",
|
||||
"listQuery": {"conditions": [], "operator": ""},
|
||||
"listsSize": 192,
|
||||
"listView": "list",
|
||||
"sections": ["history", "lists", "public", "featured"],
|
||||
"showGroups": True,
|
||||
"showInfo": True,
|
||||
"showLists": True,
|
||||
"showMovies": True,
|
||||
"sort": [
|
||||
{"key": "director", "operator": ""}
|
||||
],
|
||||
"theme": "classic"
|
||||
}
|
||||
|
||||
def getPreferences(user):
|
||||
prefs = {}
|
||||
for p in Preference.objects.filter(user=user):
|
||||
prefs[p.key] = json.loads(p.value)
|
||||
prefs['email'] = user.email
|
||||
return prefs
|
||||
|
||||
def getPreference(user, key, value=None):
|
||||
if key in ('email', ):
|
||||
value = getattr(user, key)
|
||||
else:
|
||||
q = Preference.objects.filter(user=user, key=key)
|
||||
if q.count() > 0:
|
||||
value = json.loads(q[0].value)
|
||||
return value
|
||||
|
||||
def setPreference(user, key, value):
|
||||
if key in ('email', ):
|
||||
setattr(user, key, value)
|
||||
user.save()
|
||||
else:
|
||||
value = json.dumps(value)
|
||||
q = Preference.objects.filter(user=user, key=key)
|
||||
if q.count() > 0:
|
||||
p = q[0]
|
||||
p.value = value
|
||||
p.save()
|
||||
else:
|
||||
p = Preference(user=user, key=key, value=value)
|
||||
p.save()
|
||||
Loading…
Add table
Add a link
Reference in a new issue