Пример #1
0
def issue_tables(request, project_number, categories=[], active_tab=None, vars={}):
    project = get_project(project_number)
    
    filters = {
        'code': 'contracts__code',
        'status': 'status__name',
        'user': '******',
    }
    for field, q_field in filters.iteritems():
        if request.GET.has_key(field):
            for category in categories:
                category['issues'] = category['issues'].filter(Q(**{q_field: request.GET[field]}))
    
    # Load tabs
    tools = project_tools(project)
    tabs = project_tabs(project)
    if active_tab: tabs[active_tab]["active"] = True
    
    # Load all IssueStatuses
    all_statuses = IssueStatus.objects.all()
    
    if vars.has_key("breadcrumb"):
        print "WTF!?!?!?"
    vars.update(locals())
    
    return render_project_response(request, 'project/issue_tables.html', project_number, vars)
Пример #2
0
def issues_set_status(request, project_number):
    project = get_project(project_number)
    r = re.compile(r'issue-(\d+)')
    
    if not request.POST.has_key("status_id"):
        messages.error(request, "Det skjedde en feil under statusoppdateringen.")
    else:
        status_id = request.POST["status_id"]
        status = IssueStatus.objects.get(id=status_id)
        
        altered = []
        for field, value in request.POST.iteritems():
            m = r.match(field)
            if value == "on" and m:
                issue_id = m.groups()[0]
                issue = get_object_or_404(Issue, id=issue_id)
                issue.status = status
                issue.save()
                
                altered.append(issue)
        
        if status.closed: verb = u"lukket"
        elif status.name == "on_hold": verb = u"satt på vent"
        elif status.name == "wip": verb = u"endret til 'under behandling'"
        else: verb = u"åpnet"
        
        messages.success(request, "%d sak%s ble %s." % (len(altered), pluralize(altered, "er"), verb))
        
    return HttpResponseRedirect(project.get_absolute_url())
Пример #3
0
def issue_form(request, project_number, issue, action, postaction):
    ImageFormset = modelformset_factory(ImageResource, form=ImageResourceForm, extra=1, can_delete=True)
    image_qs = ImageResource.objects.none()
    if issue.pk:
        image_qs = issue.all_images()
    else:
        issue.project = get_project(project_number)
    
    if request.POST:
        form = IssueForm(request.POST, instance=issue)
        formset = ImageFormset(request.POST, request.FILES)
        if form.is_valid() and formset.is_valid():
            issue = form.save()
            
            images = formset.save(commit=False)
            for image in images:
                image.parent = issue
                image.save()
            
            return HttpResponseRedirect(issue.get_absolute_url())
    else:
        form = IssueForm(instance=issue)
        formset = ImageFormset(queryset=image_qs)
    
    breadcrumb = issue
    return render_project_response(request, 'issue/form.html', project_number, locals())
Пример #4
0
def project_home(request, project_number):
    pagetitle = u"%s" % (get_project(project_number))
    
    categories = [
        {
            "title": u"Mine åpne saker",
            "issues": request.user.issue_set.filter(status__closed=False),
        }
    ]
    return issue_default_tables(request, project_number, categories=categories, active_tab=0, vars=locals())
Пример #5
0
def contract_list(request, project_number):
    project = get_project(project_number)
    pagetitle = u"Kontrakter"
    
    contracts = project.contract_set.all()
    for contract in contracts:
        contract.my_issues = contract.get_all_issues(request.user)
        contract.my_issues_url = contract.get_my_issues_url(request.user)
    tools = project_tools(project)
    tabs = project_tabs(project)
    tabs[1]["active"] = True
    return render_project_response(request, 'contract/list.html', project_number, locals())
Пример #6
0
def list_by_status(request, project_number, status_name):
    project = get_project(project_number)
    if status_name == "open":
        status = get_object_or_404(IssueStatus, closed=True)
        issues = project.issue_set.exclude(status=status)
        status = u"Åpen"
    else:
        status = get_object_or_404(IssueStatus, name=status_name)
        issues = project.issue_set.filter(status=status)
    
    category = {
        'title': u'Saker med status: %s' % status,
        'issues': issues,
    }
    
    return issue_tables(request, project_number, categories=[category], vars=locals())
Пример #7
0
def issue_default_tables(request, project_number, qs=None, categories=[], active_tab=None, vars={}):
    project = get_project(project_number)
    
    # Load and filter base queryset
    if not qs: qs = Issue.objects.all()
    qs = qs.filter(project=project)
    
    # Load categories from queryset
    categories.append({
        "title": u"Åpne saker",
        "issues": qs.filter(status__closed=False),
    })
    categories.append({
        "title": u"Alle saker",
        "issues": qs.all(),
    })
    
    return issue_tables(request, project_number, categories, active_tab, vars)
Пример #8
0
def list_by_user(request, project_number, username=None):
    project = get_project(project_number)
    if not username:
        return HttpResponseRedirect(project.get_user_url(request.user))
    user = get_object_or_404(User, username=username)
    
    qs = Issue.objects.filter(subscribers=user)
    
    if user == request.user:
        user = u"meg"
    title = u"Saker tilordnet %s" % user
    
    vars = {
        "breadcrumb": {
            "title": title,
            "no_link": True,
        },
        "pagetitle": title,
    }
    
    return issue_default_tables(request, project_number, qs, vars=vars)
Пример #9
0
def list_by_type(request, project_number, type_id):
    list_by = "type"
    project = get_project(project_number)
    key = get_object_or_404(IssueType, id=type_id)
    issues = project.get_by_type(key)
    return list(request, project_number, key, list_by, issues)
Пример #10
0
def list(request, project_number, key, list_by, issues):
    breadcrumb = key
    key.project = get_project(project_number)
    return render_project_response(request, 'project/list_by.html', project_number, locals())