def get_queryset(self, finished=False): queryset = super(TaskList, self).get_queryset() owner = self.params.get('owner') if owner == 'none': queryset = queryset.filter(owner=None) elif owner: queryset = queryset.filter(owner__username=owner) if self.params.get('q'): search_fields = ['title', 'description', 'tags'] words = self.params['q'].split(' ') qfilters = [] for f in search_fields: for w in words: qfilters.append(Q(**{'%s__icontains' % f:w})) queryset = queryset.filter(reduce(operator.or_, qfilters)) # include only finished items for current iteration dates = utils.get_iteration_dates(0) queryset = queryset.filter(Q(finished_date__isnull=True) | Q(finished_date__range=dates)) queryset = queryset.order_by('finished_date', 'priority') return queryset
def index(request): remaining_tasks = Task.objects.filter(iteration=0, finished_date__isnull=True) unscheduled_tasks = Task.objects.filter(priority__isnull=True) new_tickets = Ticket.objects.filter(status='NEW') user_tasks = Task.objects.filter(iteration=0, owner=request.user) user_tasks = user_tasks.order_by('finished_date','priority') user_tickets = Ticket.objects.filter(owner=request.user) user_tickets = user_tickets.filter(status__in=('ASSIGNED','FEEDBACK','NEW')) iteration_dates = utils.get_iteration_dates(0) unassigned_tickets = Ticket.objects.filter(owner=None) context = { 'new_tickets': new_tickets, 'remaining_tasks': remaining_tasks, 'unscheduled_tasks': unscheduled_tasks, 'iteration_dates': iteration_dates, 'user_tickets': user_tickets, 'user_tasks': user_tasks, 'unassigned_tickets': unassigned_tickets, } return render(request, 'dashboard/index.html', context)
def set_team_strength(request): team = request.POST.get('team') iteration = request.POST.get('iteration') percentage = request.POST.get('percentage') try: iteration = int(iteration) except ValueError: iteration = -1 if iteration < 0 : return http.HttpResponseBadRequest('Invalid iteration provided') try: percentage = int(percentage) except ValueError: return http.HttpResponseBadRequest('Invalid percentage supplied. Must be a positive integer between or including 0 and 100') iteration = int(iteration) i_start, i_end = utils.get_iteration_dates(iteration) try: adjustment = models.TeamStrengthAdjustment.objects.get(team=team, start_date=i_start, end_date=i_end) adjustment.percentage = percentage except models.TeamStrengthAdjustment.DoesNotExist: adjustment = models.TeamStrengthAdjustment(team=team, start_date=i_start, end_date=i_end, percentage=percentage) adjustment.save() return http.HttpResponse('Team strength successfully set to {}% for the dates {} through {}'.format(percentage, i_start, i_end))