feat: Added meal food and ingredient record through dataset

This commit is contained in:
bobbyvish
2024-03-29 00:45:21 +05:30
parent 2a4f507a6f
commit 5867445dcd
46 changed files with 2048 additions and 967 deletions

View File

@@ -16,7 +16,7 @@ from django.urls import reverse_lazy
from django.views import generic
from django_datatables_view.base_datatable_view import BaseDatatableView
from module_activity.models import (ChronicCondition, Intolerance,
from module_activity.models import (Bowel, ChronicCondition, Intolerance, MealRecord, MealSymptomRecord, Medication,
PastTreatment, PrincipalHealthData,
Symptoms)
from module_iam import iam_constant
@@ -58,6 +58,7 @@ class AdminLoginView(generic.View):
return render(request, self.template_name, context=context)
login(request, user)
messages.success(request, constants.LOGIN_SUCCESS)
logging.info(f"User {user.email} logged in.")
return redirect(self.success_url)
@@ -85,6 +86,7 @@ class UserDashView(LoginRequiredMixin, generic.TemplateView):
model = IAmPrincipal
context_objext_name = "obj"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["page_name"] = self.page_name
@@ -163,7 +165,7 @@ class UserListJson(BaseDatatableView):
qs = super().filter_queryset(qs) # Call the built-in filtering first
for column in self.columns:
print(f" columen index pattern {self.request.GET.get(f'columns[{self.columns.index(column)+1}][search][value]', None)}")
print(f" columen index pattern {self.request.GET.get(f'columns[{self.columns.index(column)+2}][search][value]', None)}")
search_value = self.request.GET.get(f'columns[{self.columns.index(column)+1}][search][value]', None)
if search_value:
column_data = self.request.GET.get(f'columns[{self.columns.index(column)+1}][data]')
@@ -177,7 +179,7 @@ class UserListJson(BaseDatatableView):
def ordering(self, qs):
order = self.request.GET.get('order[0][dir]', None)
if order:
column_index = int(self.request.GET.get('order[0][column]', None)) - 1
column_index = int(self.request.GET.get('order[0][column]', None)) - 2
order_column = self.order_columns[column_index]
if order == "asc":
@@ -220,6 +222,30 @@ class UserRecordView(LoginRequiredMixin, generic.View):
model = IAmPrincipal
template_name = "module_auth/user_view.html"
def get_recent_meal(self, id):
recent_meal_records = MealRecord.objects.filter(
principal=id
).order_by('-id')[:5]
return recent_meal_records
def get_recent_medication(self, id):
recent_medication_records = Medication.objects.filter(
principal=id
).order_by('-id')[:5]
return recent_medication_records
def get_recent_bowel(self, id):
recent_bowel_records = Bowel.objects.filter(
principal=id
).order_by('-id')[:5]
return recent_bowel_records
def get_recent_meal_symptom(self, id):
recent_meal_symptom_records = MealSymptomRecord.objects.filter(
principal=id
).order_by('-id')[:5]
def get(self, request, id):
# Retrieve the IAmPrincipal instance
principal_instance = get_object_or_404(IAmPrincipal, id=id)
@@ -260,8 +286,17 @@ class UserRecordView(LoginRequiredMixin, generic.View):
for data in obj.chronic_data:
print(f"data is {data.name, data.duration}")
context = {
'page_name': self.page_name,
'obj': obj,
"recent_meal": self.get_recent_meal(id),
"recent_medication": self.get_recent_medication(id),
"recent_bowel": self.get_recent_bowel(id),
"recent_meal_symptom": self.get_recent_meal_symptom(id),
}
# Render the template with the principal instance and related data
return render(request, self.template_name, {'obj': obj, 'page_name': self.page_name})
return render(request, self.template_name, context=context)
class UserArchiveList(LoginRequiredMixin, generic.TemplateView):