On February 1st I got an error on my Work Accounting system. My beautiful graphs are no longer displayed. The fact is that earlier I used a while loop to list the working days – I decreased the DAY value by 1. This is not applicable outside the month.
To solve this problem, I used the timedelta class. Everything is working great now. I also applied the changes to the calculation of the average working time per day for the last week.
try: username = request.user.id field_name = 'date_added' obj = Addinfo.objects.filter(work_user=username).first() field_object = Addinfo._meta.get_field(field_name) first_date_full = field_object.value_from_object(obj) first_date = first_date_full.date() delta = datetime.now().date() - first_date n = delta.days x = [] y = [] i = 0 while i<=n: daywork = datetime.now().date() -timedelta(days=i) dayview = Addinfo.objects.filter(date_added__date=daywork).filter(work_user=username).values_list('work_minutes', flat=True) y.append(sum([int(minn) for minn in dayview])) x.append(i) i += 1 except: x = [] y = [] chart = get_plot_svg(x, y)
Code for avg time counting:
weeksum = [] i = 0 while i<=6: daywork = datetime.now().date() -timedelta(days=i) dayview = Addinfo.objects.filter(date_added__date=daywork).filter(work_user=username).values_list('work_minutes', flat=True) weeksum.append(sum([int(minn) for minn in dayview])) i += 1 avgmins = sum([int(minnweek) for minnweek in weeksum]) // 7