예제 #1
0
def _member_update(request, member):
	data = request.POST.copy()
	
	# Need to do that cause field are disabled in HTML, so values are not
	# sent over.
	if not request.user.has_perm('team.custom_edit_member'):
		data.update({
			'team': member.team.id,
			'username': member.user.username
		})
	
	form = TeamMemberForm(
		instance = member, 
		is_admin = request.user.has_perm('team.custom_edit_member'), 
		data = data
	)
	
	if form.is_valid():
		data = form.cleaned_data
		member.team = data['team']
		member.user.username = data['username']
		member.user.first_name = data['first_name']
		member.user.last_name = data['last_name']
		member.user.email = data['email']
		member.user.save()
		member.save()
		
		info_msg( request, u"Utilisateur modifié avec succès." )
		return redirect( 'team_index' )
	else:
		return render(request, 'member/item.html',{
				'member': member,
				'form': form
		})
예제 #2
0
def new_member(request):
	if not 'member_user' in request.session:
		return redirect('new_user')
	
	user = request.session.get('member_user')
	
	if TeamMember.objects.filter( user = user ).count() > 0:
		try:
			del request.session['member_user']
		except KeyError:
			pass
		return redirect('new_user')
	
	if request.method == 'POST':
		user = request.session.get('member_user')
		data = request.POST.copy()
		data.update({ 'username': user.username })
		
		form = TeamMemberForm( data = data )
		if form.is_valid():
			data = form.cleaned_data
			member = TeamMember.objects.create(
				team = data['team'],
				user = user
			)
			user.first_name = data['first_name']
			user.last_name = data['last_name']
			user.email = data['email']
			user.save()
			
			del request.session['member_user']
			
			# SEND EMAIL FOR ACTIVATING ACCOUNT...
			subject = "[BCG-Lab %s] Demande d'ouverture de compte" % settings.SITE_NAME
			emails = []
			for u in User.objects.all():
				if u.teammember_set.filter(team = member.team) and u.has_perm('team.custom_activate_account') and u.email and u.email not in emails:
					emails.append(u.email)
			
			if emails:
				template = loader.get_template('email_new_member.txt')
				message = template.render( Context({ 
					'member': member, 
					'url': request.build_absolute_uri(reverse('team_index'))
				}) )
				send_mail( subject, message, settings.DEFAULT_FROM_EMAIL, emails )
				info_msg( request, u"Votre demande a bien été prise en compte mais votre compte reste INACTIF en attendant sa validation.")
			else:
				warn_msg( request, u"Votre demande a bien été prise en compte mais votre compte reste INACTIF en attendant sa validation.")
			return redirect( 'home' )
	else:
		form = TeamMemberForm(is_admin = request.user.has_perm('team.custom_edit_member') )
	
	return render(request, 'member/form.html',{
			'form': form,
			'user_id': user.id
	})
예제 #3
0
def new_user(request):
		form = UserCreationForm()
		
		if 'member_user' in request.session:
			return render( request, 'member/form.html', {
				'form': TeamMemberForm( is_admin = request.user.has_perm('team.custom_edit_member') )
			})
		
		if request.method == 'POST':
			form = UserCreationForm( data = request.POST )
			if form.is_valid():
				user = form.save()
				user.is_active = False
				user.save()
				
				request.session['member_user'] = user
				request.session.save()
				return render( request, 'member/form.html', {
					'form': TeamMemberForm( is_admin = request.user.has_perm('team.custom_edit_member') )
				})
		
		return render( request, 'auth/register.html', { 'form': form })
예제 #4
0
def _member_detail(request, member):
		form = TeamMemberForm(instance = member, is_admin = request.user.has_perm('team.custom_edit_member'))
		return render(request, 'member/item.html',{
				'member': member,
				'form': form
		})