item/user groups
This commit is contained in:
parent
bf518ae603
commit
4e6c2250c9
6 changed files with 52 additions and 14 deletions
|
|
@ -3,7 +3,7 @@
|
|||
import copy
|
||||
from datetime import datetime
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.db import models
|
||||
from django.db.models import Max
|
||||
from django.conf import settings
|
||||
|
|
@ -149,6 +149,7 @@ class SessionData(models.Model):
|
|||
p = self.user.get_profile()
|
||||
j['disabled'] = not self.user.is_active
|
||||
j['email'] = self.user.email
|
||||
j['groups'] = [g.name for g in self.user.groups.all()]
|
||||
j['level'] = p.get_level()
|
||||
j['newsletter'] = p.newsletter
|
||||
j['notes'] = p.notes
|
||||
|
|
|
|||
|
|
@ -334,6 +334,15 @@ def editUser(request):
|
|||
profile.notes = data['notes']
|
||||
if 'newsletter' in data:
|
||||
profile.newsletter = data['newsletter']
|
||||
if 'groups' in data:
|
||||
groups = data['groups']
|
||||
if isinstance(groups, list):
|
||||
groups = filter(lambda g: g.strip(), groups)
|
||||
user.groups.exclude(name__in=groups).delete()
|
||||
current_groups = [g.name for g in user.groups.all()]
|
||||
for g in filter(lambda g: g not in current_groups, groups):
|
||||
group, created = models.Group.objects.get_or_create(name=g)
|
||||
user.groups.add(group)
|
||||
if 'username' in data:
|
||||
if models.User.objects.filter(
|
||||
username__iexact=data['username']).exclude(id=user.id).count()>0:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue