Пример #1
0
def edit_student(request, class_id, id=None):
    try:
        school_class = SchoolClass.objects.get(id=class_id)
        student = LPUser.objects.get(id=id) if id else None
    except (SchoolClass.DoesNotExist, LPUser.DoesNotExist):
        return HttpResponse(status=400)
    instance = student.user if student else None
    avatar_form = AvatarForm(request.POST, request.FILES)
    form = StudentForm(request.POST or None, instance=instance)
    if form.is_valid():
        user = form.save()
        user.set_password("password")
        user.save()
        if not id:
            user.groups.add(Group.objects.get(name='students'))
            lp_user = LPUser()
            lp_user.user = user
            lp_user.save()
            lp_user.school_class.add(school_class)
        else:
            lp_user = student
        if avatar_form.is_valid() and avatar_form.cleaned_data['avatar'] != 'avatars/default.png':
            lp_user.avatar = avatar_form.cleaned_data['avatar']
            lp_user.save()
        return redirect(reverse('backoffice:my_students', kwargs={'class_id': class_id}))

    return render(request, 'backoffice/edit_student.html',
        {'avatar_form': avatar_form, 'student_form': form, 'school_class': school_class, 'student': student})
Пример #2
0
def edit_profile(request):
    user = request.user
    lp_user = user.LPUser
    avatar_form = AvatarForm(request.POST, request.FILES)
    email_form = UserEmailForm(request.POST or None, instance=user)
    password_form = UserPasswordNotRequiredForm(request.POST or None)
    if avatar_form.is_valid() and avatar_form.cleaned_data['avatar'] != 'avatars/default.png':
        lp_user.avatar = avatar_form.cleaned_data['avatar']
        lp_user.save()
    if email_form.is_valid():
        form_data = email_form.save()
        user.email = form_data.email
        user.save()
    if password_form.is_valid() and password_form.cleaned_data['password'] != '':
        user.set_password(password_form.cleaned_data['password'])
        user.save()
    return render(request, 'backoffice/edit_profile.html',
        {'avatar_form': avatar_form, 'email_form': email_form, 'password_form': password_form, 'lp_user': lp_user})