2022-05-03 19:07:12 -06:00

60 lines
1.6 KiB
Python

from django.shortcuts import render
from django.urls import reverse_lazy, reverse
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteView
from django.views.generic.detail import DetailView
from django.views.generic.list import ListView
from charts.models import Chart, Entry
from charts.forms import ChartForm
from django.db.models import (Exists, OuterRef,
Prefetch, Subquery, Count, Sum, F, Q, Value)
from django.db.models.functions import Length, Upper
class ListView(ListView):
model = Chart
class CreateView(CreateView):
model = Chart
template_name_suffix = '_create_form'
form_class = ChartForm
class DetailView(DetailView):
model = Chart
def get_object(self):
queryset = Chart.objects.filter(
pk=self.kwargs.get(self.pk_url_kwarg)
).prefetch_related(
Prefetch('entry_set', queryset=Entry.objects.select_related(
'oralcare',
'bathing',
'toileting',
'dressing',
'meal',
'rangeofmotion',
'ambulation',
'vitals',
'fluidintake',
'urine',
'emesis',
'bowelmovement',
'painlevel',
'oxygenlevel',
'restraint',
'safety',
))
)
obj = queryset.get()
return obj
class UpdateView(UpdateView):
model = Chart
form_class = ChartForm
class DeleteView(DeleteView):
model = Chart
success_url = reverse_lazy('chart-list')