60 lines
1.6 KiB
Python
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') |