Skip to content
Snippets Groups Projects
doctor.py 2.95 KiB
Newer Older
# coding=utf-8
from django.shortcuts import redirect, get_object_or_404

from . import wrap_response
from ..forms import WorkerAddForm, WorkerEditForm, WorkerDetailForm
Valentin Groues's avatar
Valentin Groues committed
from ..models import Worker, Availability
Piotr Gawron's avatar
Piotr Gawron committed
from ..models.constants import MONDAY_AS_DAY_OF_WEEK, TUESDAY_AS_DAY_OF_WEEK, WEDNESDAY_AS_DAY_OF_WEEK, \
    THURSDAY_AS_DAY_OF_WEEK, FRIDAY_AS_DAY_OF_WEEK, SATURDAY_AS_DAY_OF_WEEK, SUNDAY_AS_DAY_OF_WEEK

def doctors(request):
    doctors_list = Worker.objects.order_by('-last_name')
    context = {
        'doctors_list': doctors_list
    }

    return wrap_response(request, "doctors/index.html", context)


def doctor_add(request):
    if request.method == 'POST':
        form = WorkerAddForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('web.views.doctors')
    else:
        form = WorkerAddForm()

    return wrap_response(request, 'doctors/add.html', {'form': form})


def doctor_edit(request, doctor_id):
    the_doctor = get_object_or_404(Worker, id=doctor_id)
    if request.method == 'POST':
        form = WorkerEditForm(request.POST, request.FILES, instance=the_doctor)
        if form.is_valid():
            form.save()
            return redirect('web.views.doctors')
    else:
        form = WorkerEditForm(instance=the_doctor)
    return wrap_response(request, 'doctors/edit.html', {'form': form})


def doctor_details(request, doctor_id):
    the_doctor = get_object_or_404(Worker, id=doctor_id)
    form = WorkerDetailForm(instance=the_doctor)

    return wrap_response(request, 'doctors/details.html', {'form': form})


def doctor_availability(request, doctor_id):
    availabilities = Availability.objects.filter(person=doctor_id)
    availability_on_monday = availabilities.filter(day_number=MONDAY_AS_DAY_OF_WEEK)
    availability_on_tuesday = availabilities.filter(day_number=TUESDAY_AS_DAY_OF_WEEK)
    availability_on_wednesday = availabilities.filter(day_number=WEDNESDAY_AS_DAY_OF_WEEK)
    availability_on_thursday = availabilities.filter(day_number=THURSDAY_AS_DAY_OF_WEEK)
    availability_on_friday = availabilities.filter(day_number=FRIDAY_AS_DAY_OF_WEEK)
    availability_on_saturday = availabilities.filter(day_number=SATURDAY_AS_DAY_OF_WEEK)
    availability_on_sunday = availabilities.filter(day_number=SUNDAY_AS_DAY_OF_WEEK)
        'avmon': availability_on_monday,
        'avtue': availability_on_tuesday,
        'avwed': availability_on_wednesday,
        'avthu': availability_on_thursday,
        'avfri': availability_on_friday,
        'avsat': availability_on_saturday,
        'avsun': availability_on_sunday,
        'id': doctor_id
    }

    return wrap_response(request, "doctors/availability_index.html", context)


def doctor_availability_delete(request, doctor_id, availability_id):
    availability = Availability.objects.filter(id=availability_id)
    if len(availability) > 0:
        availability.delete()
    return redirect(doctor_availability, id=doctor_id)