1 from django.conf import settings |
1 from django.conf import settings |
|
2 from django.contrib.auth import get_user_model |
2 from django.contrib.auth.decorators import login_required |
3 from django.contrib.auth.decorators import login_required |
3 from django.contrib.auth.models import Group |
4 from django.contrib.auth.models import Group |
4 from django.db import transaction |
5 from django.db import transaction |
5 from django.http import HttpResponseServerError |
6 from django.http import HttpResponseServerError |
6 from django.shortcuts import render_to_response, get_object_or_404, redirect |
7 from django.shortcuts import render_to_response, get_object_or_404, redirect |
10 from ldt.ldt_utils.forms import GroupAddForm |
11 from ldt.ldt_utils.forms import GroupAddForm |
11 from ldt.security.cache import get_cached_checker, cached_assign |
12 from ldt.security.cache import get_cached_checker, cached_assign |
12 from ldt.security.utils import add_change_attr, get_userlist, get_userlist_group |
13 from ldt.security.utils import add_change_attr, get_userlist, get_userlist_group |
13 from ldt.user.forms import PictureForm |
14 from ldt.user.forms import PictureForm |
14 |
15 |
|
16 User = get_user_model() |
15 |
17 |
16 @login_required |
18 @login_required |
17 def get_group_projects_view(request): |
19 def get_group_projects_view(request): |
18 |
20 |
19 grp_id = request.POST["id_group"] |
21 grp_id = request.POST["id_group"] |
124 return redirect("groups-view") |
126 return redirect("groups-view") |
125 else: |
127 else: |
126 if form.is_valid() and picture_form.is_valid(): |
128 if form.is_valid() and picture_form.is_valid(): |
127 name = form.cleaned_data['name'] |
129 name = form.cleaned_data['name'] |
128 new_member_list = form.cleaned_data['read_list'] |
130 new_member_list = form.cleaned_data['read_list'] |
129 old_member_list = group.user_set.exclude(id=request.user.id) |
131 old_member_list = User.objects.filter(groups=group).exclude(id=request.user.id) |
130 admin_list = form.cleaned_data['write_list'] |
132 admin_list = form.cleaned_data['write_list'] |
131 group.name = name |
133 group.name = name |
132 group.profile.description = form.cleaned_data['description'] |
134 group.profile.description = form.cleaned_data['description'] |
133 group.profile.save() |
135 group.profile.save() |
134 |
136 |
135 for user in new_member_list: |
137 for user in new_member_list: |
136 if not hasattr(user, 'username'): |
138 if not hasattr(user, 'username'): |
137 raise AttributeError('new_member_list should only contain users') |
139 raise AttributeError('new_member_list should only contain users') |
138 if user != request.user: |
140 if user != request.user: |
139 group.user_set.add(user) |
141 user.groups.add(group) |
140 if is_owner_group: |
142 if is_owner_group: |
141 if user in admin_list: |
143 if user in admin_list: |
142 cached_assign('change_group', user, group) |
144 cached_assign('change_group', user, group) |
143 else: |
145 else: |
144 remove_perm('change_group', user, group) |
146 remove_perm('change_group', user, group) |
145 |
147 |
146 for user in old_member_list: |
148 for user in old_member_list: |
147 if user not in new_member_list: |
149 if user not in new_member_list: |
148 group.user_set.remove(user) |
150 user.groups.remove(group) |
149 remove_perm('change_group', user, group) |
151 remove_perm('change_group', user, group) |
150 |
152 |
151 group.save() |
153 group.save() |
152 picture_form.save() |
154 picture_form.save() |
153 form_status = 'saved' |
155 form_status = 'saved' |
166 'is_owner_group': is_owner_group, 'profile_picture_form': picture_form, 'img_container': profile_image}, context_instance=RequestContext(request)) |
168 'is_owner_group': is_owner_group, 'profile_picture_form': picture_form, 'img_container': profile_image}, context_instance=RequestContext(request)) |
167 |
169 |
168 |
170 |
169 |
171 |
170 @login_required |
172 @login_required |
171 def groups_filter(request, g_filter): |
173 def groups_filter(request, filter): |
172 if g_filter and len(g_filter) > 0 and g_filter[0] == '_': |
174 if filter and len(filter) > 0 and filter[0] == '_': |
173 g_filter = g_filter[1:] |
175 filter = filter[1:] |
174 |
176 |
175 if filter: |
177 if filter: |
176 group_list = request.user.groups.filter(name__icontains=g_filter) |
178 group_list = request.user.groups.filter(name__icontains=filter) |
177 search_active = True |
179 search_active = True |
178 else: |
180 else: |
179 group_list = request.user.groups.all() |
181 group_list = request.user.groups.all() |
180 search_active = False |
182 search_active = False |
181 |
183 |