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)
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())
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())
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())
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())
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())
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)
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)
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)
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())