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, BowelMovement from charts.forms import BowelMovementForm from django.db.models import (Exists, OuterRef, Prefetch, Subquery, Count, Sum, F, Q, Value) from django.db.models.functions import Length, Upper # Entries class ListView(ListView): model = BowelMovement pk_url_kwarg = 'entry_pk' class CreateView(CreateView): model = BowelMovement pk_url_kwarg = 'entry_pk' template_name = 'charts/entry_create_form.html' form_class = BowelMovementForm def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['chart'] = Chart.objects.get(pk=self.kwargs['pk']) return context def form_valid(self, form): form.instance.chart = Chart.objects.get(pk=self.kwargs['pk']) return super().form_valid(form) def get_success_url(self): return reverse('chart-detail', kwargs={'pk': self.kwargs['pk']}) class DetailView(DetailView): model = BowelMovement pk_url_kwarg = 'entry_pk' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['chart'] = Chart.objects.get(pk=self.kwargs['pk']) return context class UpdateView(UpdateView): model = BowelMovement pk_url_kwarg = 'entry_pk' template_name = 'charts/entry_form.html' form_class = BowelMovementForm def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['chart'] = Chart.objects.get(pk=self.kwargs['pk']) return context class DeleteView(DeleteView): model = BowelMovement pk_url_kwarg = 'entry_pk' def get_success_url(self): return reverse('chart-detail', kwargs={'pk': self.kwargs['pk']})