def edit_doctor(request, pk): try: doctor = DoctorInfo.objects.get(id=pk) except: return redirect('doctors_list') user = User.objects.get(id=doctor.user_id) userForm = DoctorUserForm(instance=user) doctor_add_form = DoctorForm(request.FILES, instance=doctor) mydict = { 'userForm': userForm, 'doctor_add_form': doctor_add_form, 'doctor': doctor } if request.method == 'POST': userForm = DoctorUserForm(request.POST, instance=user) doctor_add_form = DoctorForm(request.POST, request.FILES, instance=doctor) if userForm.is_valid() and doctor_add_form.is_valid(): user = userForm.save() user.set_password(user.password) user.save() doctor_add_form.save() return redirect('doctors_list') return render(request, 'roleadmin/doctor_edit_form.html', context=mydict)
def edit_doctor(request, doctor_pk): if request.user.is_authenticated and request.user.manager.role == "Manager": doctor_info = Doctor.objects.get(pk=doctor_pk) if request.POST: user_form = UserForm(request.POST, instance=doctor_info.user) doctor_form = DoctorForm(request.POST, instance=doctor_info) if user_form.is_valid() and doctor_form.is_valid(): if int(request.POST["age"]) <= int( request.POST["years_of_experience"]): return render( request, 'manager/edit_doctor.html', { 'doctor': doctor_info, 'other_errors': ErrorDict({ "Years of Experience": ErrorDict({ '': "Years of experience cannot be equal or greater than age" }) }) }) if not all(x.isdigit() for x in request.POST["phone_number"]): return render( request, 'manager/edit_doctor.html', { 'doctor': doctor_info, 'other_errors': ErrorDict({ "Phone Number": ErrorDict({ '': "Phone number should be made of digits only" }) }) }) user = user_form.save(commit=False) user.save(update_fields=[ 'username', 'first_name', 'last_name', 'email' ]) doctor_form.save() return redirect('/manager/get_report') else: return render( request, 'manager/edit_doctor.html', { 'user_form_error': user_form.errors, 'doctor_form_error': doctor_form.errors, 'doctor': doctor_info }) return render(request, 'manager/edit_doctor.html', {'doctor': doctor_info}) return redirect('/')
def create_doctor_view(request): user_form = UserForm() doctor_form = DoctorForm() context = {"user_form":user_form,"doctor_form":doctor_form} if request.method == "POST": user_form = UserForm(request.POST) doctor_form = DoctorForm(request.POST) if user_form.is_valid() and doctor_form.is_valid(): user = user_form.save() user.set_password(user.password) user.save() doctor = doctor_form.save(commit=False) doctor.user = user if 'profile_picture' in request.FILES: doctor.profile_picture = request.FILES['profile_picture'] doctor.save() return HttpResponseRedirect(reverse('accounts:login')) else: return HttpResponse("Invalid form submission") return render(request,'doctor/register_doctor.html',context=context)
def add_doctor(request): if request.user.is_authenticated and request.user.manager.role == "Manager": if request.POST: user_form = UserForm(request.POST) doctor_form = DoctorForm(request.POST) if user_form.is_valid() and doctor_form.is_valid(): if int(request.POST["age"]) <= int( request.POST["years_of_experience"]): return render( request, 'manager/add_doctor.html', { 'other_errors': ErrorDict({ "Years of Experience": ErrorDict({ '': "Years of experience cannot be equal or greater than age" }) }) }) user = user_form.save(commit=False) password = request.POST["password"] try: password_validation.validate_password(password) except Exception as e: errAsDict = { 'password': ErrorDict({'': '\n'.join(e.messages)}) } return render(request, 'manager/add_doctor.html', {'user_form_error': ErrorDict(errAsDict)}) passwordConfirm = request.POST["passwordConfirm"] if password != passwordConfirm: return render( request, 'manager/add_doctor.html', { 'other_errors': ErrorDict({ "Password": ErrorDict({'': "Passwords do not match"}) }) }) user.set_password(password) user.save() doctor = doctor_form.save(commit=False) doctor.user = user doctor.role = "Doctor" doctor.save() return redirect('/manager/get_report') else: return render( request, 'manager/add_doctor.html', { 'user_form_error': user_form.errors, 'doctor_form_error': doctor_form.errors }) else: return render(request, 'manager/add_doctor.html') return redirect('/')
def doctor_update(request): """Редактирование профиля доктора.""" if request.method == 'POST': user_form = UserForm(request.POST, instance=request.user) doctor_form = DoctorForm(data=request.POST, files=request.FILES, instance=request.user.doctor) if doctor_form.is_valid() and user_form.is_valid(): user_form.save() doctor_form.save() messages.success(request, 'Ваш профиль успешно обновлен!') return redirect('doctor_profile', id=request.user.doctor.id) else: messages.error(request, 'Пожалуйста, исправьте ошибку ниже.') else: user_form = UserForm(instance=request.user) doctor_form = DoctorForm(instance=request.user.doctor) return render(request, 'doctor/doctor_update.html', { 'user_form': user_form, 'doctor_form': doctor_form })
def add_doctor(request): userForm = DoctorUserForm() doctor_add_form = DoctorForm() mydict = {'userForm': userForm, 'doctor_add_form': doctor_add_form} if request.method == 'POST': userForm = DoctorUserForm(request.POST) doctor_add_form = DoctorForm(request.POST, request.FILES) if userForm.is_valid() and doctor_add_form.is_valid(): user = userForm.save() user.set_password(user.password) user.save() doctor = doctor_add_form.save(commit=False) doctor.user = user doctor.save() my_doctor_group = Group.objects.get_or_create(name='DOCTOR') my_doctor_group[0].user_set.add(user) return redirect('doctors_list') return render(request, 'roleadmin/doctor_add_form.html', context=mydict)