예제 #1
0
    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
예제 #2
0
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)
예제 #3
0
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))