I create a definition to get the percentage of completed tasks associated with a project.
class ProjectAdmin(ImportExportModelAdmin,admin.ModelAdmin): #... def percentage(sef, obj): return obj.todo_set.filter(state = True).count() * 100 / obj.todo_set.all().count() #... list_display = ['project_title', 'category_list', 'date_format', 'crq_count', 'task_count', 'percentage', 'file_count', 'state']
I want to eliminate the decimals and transform it into whole numbers
Finally, the idea is that if all the tasks are completed, the project status should go to finished
class Project(models.Model): #... state = models.BooleanField(blank=True, null = True, default = False)
Advertisement
Answer
You can round the value you obtain when retrieving the percentage:
class ProjectAdmin(ImportExportModelAdmin,admin.ModelAdmin): # … def percentage(sef, obj): return round( obj.todo_set.filter(state=True).count() * 100 / obj.todo_set.all().count() )