from django.shortcuts import redirect, render from django.http import HttpResponse from django.template import loader from django.views import generic from .models import * from .forms import * from .auth import * # Own wrapper for django logging in/out from django.forms import modelformset_factory from django.shortcuts import render import collections def index(request): if request.user.is_authenticated(): return redirect(assignments) return redirect(login) def login(request): context = { 'state' : 'initial' } if request.GET and request.GET.get('error'): context['state'] = request.GET.get('error') if request.method == "POST" and request.POST: state, message = do_login(request) if state == True: return redirect(assignments) else: return redirect('/login?error=' + message) return render(request, "login.html", context) """ Saturates response with information about logged user """ def wrap_response(request, template, params): person, role = Worker.get_details(request.user) final_params = params.copy() final_params.update({ 'person' : person, 'role': role }) return render(request, template, final_params) def logout(request): state, message = do_logout(request) return redirect('/login?error=' + message) def visits(request): visit_list = Visit.objects.order_by('-datetime_begin') context = { 'visit_list': visit_list } return wrap_response(request, 'visits/index.html', context) def visit_details(request, id): displayedVisit = Visit.objects.get(id=id) visFinished = displayedVisit.is_finished displayedSubject = displayedVisit.subject listOfAppointments = displayedVisit.appointment_set.all() vform = VisitDetailForm(instance=displayedVisit) sform = SubjectDetailForm(instance=displayedSubject) return wrap_response(request, 'visits/details.html', {'vform': vform, 'sform': sform, 'loApp': listOfAppointments, 'visFinished': visFinished}) def subjects(request): subjects_list = Subject.objects.order_by('-last_name') context = { 'subjects_list': subjects_list } return wrap_response(request, 'subjects/index.html', context) def subject_add(request): if request.method == 'POST': form = SubjectAddForm(request.POST, request.FILES) if form.is_valid(): form.save() return redirect(subjects) else: form = SubjectAddForm() return wrap_response(request, 'subjects/add.html', {'form': form}) def subject_details(request, id): form = SubjectDetailForm(instance=Subject.objects.get(id=id)) return wrap_response(request, 'subjects/details.html', {'form': form}) def subject_edit(request, id): if request.method == 'POST': form = SubjectEditForm(request.POST, request.FILES, instance=Subject.objects.get(id=id)) if form.is_valid(): form.save() return redirect(subjects) else: form = SubjectEditForm(instance=Subject.objects.get(id=id)) return wrap_response(request, 'subjects/edit.html', {'form': form, 'id':id}) def subject_delete(request, id): if request.method == 'POST': Subject.objects.get(id=id).delete() return redirect(subjects) else: form = SubjectEditForm(instance=Subject.objects.get(id=id)) return wrap_response(request, 'subjects/delete.html', {'form': form}) def subject_mark(request, id, as_what): who = Subject.objects.get(id=id) if as_what == '1': who.mark_as_dead() elif as_what == '0': who.mark_as_rejected() return redirect(subject_edit, id=id) 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(doctors) else: form = WorkerAddForm() return wrap_response(request, 'doctors/add.html', {'form': form}) def doctor_edit(request, doctor_id): if request.method == 'POST': form = WorkerEditForm(request.POST, request.FILES, instance=Worker.objects.get(id=doctor_id)) if form.is_valid(): form.save() return redirect(doctors) else: form = WorkerEditForm(instance=Worker.objects.get(id=doctor_id)) return wrap_response(request, 'doctors/edit.html', {'form': form}) def doctor_details(request, doctor_id): form = WorkerDetailForm(instance=Worker.objects.get(id=doctor_id)) return wrap_response(request, 'doctors/details.html', {'form': form}) def doctor_availability(request, doctor_id): avall = Avaibility.objects.filter(person=doctor_id) avmon = avall.filter(day_number=1) avtue = avall.filter(day_number=2) avwed = avall.filter(day_number=3) avthu = avall.filter(day_number=4) avfri = avall.filter(day_number=5) avsat = avall.filter(day_number=6) context = { 'avmon': avmon, 'avtue': avtue, 'avwed': avwed, 'avthu': avthu, 'avfri': avfri, 'avsat': avsat, 'id': doctor_id } return wrap_response(request, "doctors/availability_index.html", context) def doctor_availability_delete(request, doctor_id, availability_id): availibility = Avaibility.objects.filter(id=availability_id) if len(availibility) > 0: availibility.delete() return redirect(doctoravail, id=doctor_id) def equipment_def(request): equipment_list = Item.objects.order_by('-name') context = { 'equipment_list': equipment_list } return wrap_response(request, "eqdef/index.html", context) def equipment_and_rooms(request): return wrap_response(request, "equipment_and_rooms/index.html", {}) def mail_templates(request): return wrap_response(request, "mail_templates/index.html", {}) def assignments(request): planning_list = Appointment.objects.none() approaching_list = Appointment.objects.filter(datetime_when__gt = datetime.datetime.now()) context = { 'planning_list': planning_list, 'approaching_list': approaching_list } return wrap_response(request, "assignments/index.html",context) def assignment_details(request, id): form = AppointmentDetailForm(instance=Appointment.objects.get(id=id)) return wrap_response(request, 'assignments/details.html', {'form': form})