Exemple #1
0
def editstatus(request, chapterurl):
	c = get_object_or_404(Group, myrobogals_url__exact=chapterurl)
	memberstatustypes = MemberStatusType.objects.all()
	if request.user.is_superuser or (request.user.is_staff and (c == request.user.chapter)):
		users = []
		if request.method == 'POST':
			ulform = EditStatusForm(request.POST, user=request.user)
			if ulform.is_valid():
				data = ulform.cleaned_data
				status = data['status']
				users = data['users'] #l:queryset
				users_already = ""
				users_changed = ""
				for user in users:
					u = User.objects.get(username__exact = user.username)
					old_status = u.memberstatus_set.get(status_date_end__isnull=True)
					if old_status.statusType == MemberStatusType.objects.get(pk=int(status)):
						if(users_already):						
							users_already = users_already + ", " + u.username
						else:
							users_already = u.username
					else:
						if user.membertype().description != 'Inactive':
							old_status.status_date_end = date.today()
							old_status.save()
						new_status=MemberStatus()
						new_status.user = u
						new_status.statusType = MemberStatusType.objects.get(pk=int(status))
						new_status.status_date_start = date.today()
						new_status.save()
						if(users_changed):						
							users_changed = users_changed + ", " + u.username
						else:
							users_changed = u.username
				if(users_already):
					request.user.message_set.create(message=unicode(_("%(usernames)s are already marked as %(type)s") % {'usernames': users_already, 'type': MemberStatusType.objects.get(pk=int(status)).description}))
				if(users_changed):
					request.user.message_set.create(message=unicode(_("%(usernames)s have been marked as %(type)s") % {'usernames': users_changed, 'type': new_status.statusType.description}))
				return HttpResponseRedirect('/chapters/' + chapterurl + '/edit/users/')
		else:
			ulform = EditStatusForm(None, user=request.user)
			return render_to_response('edit_user_status.html', {'ulform': ulform, 'chapter': c, 'memberstatustypes': memberstatustypes}, context_instance=RequestContext(request))