Exemple #1
0
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('/')
Exemple #2
0
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('/')
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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
    })
Exemple #6
0
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)