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 })
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 })
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 })
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 })