def issue(project_name, issue_ref): project = Project.query.filter_by(name=project_name).first() issue = Issue.query.filter_by(issue_ref=issue_ref).first() if project == None: abort(404) if issue == None: if project.type == ProjectType.GITHUB: issue = create_update_issue(project.project_id, issue_ref) if issue == None: abort(404) sponsorships = retrieve_all_sponsorships(issue.issue_id) bounty = sum(s.amount for s in sponsorships) sponsorship_map = {s.account.account_id: s for s in sponsorships if s.account} my_sponsorship = sponsorship_map.get(current_account.account_id) my_bounty = my_sponsorship.amount if my_sponsorship else 0 form = IssueForm() if form.validate_on_submit(): amount = form.amount.data create_update_sponsorship(project.project_id, issue.issue_id, account_id=current_account.account_id, amount=amount) if amount == 0 and my_bounty > 0: flash('Sponsorship deleted.') elif amount != my_bounty: flash('Sponsorship updated.') return redirect(url_for(".issue", project_name=project_name, issue_ref=issue_ref)) return render_template('issue.html', form=form, project_name=project.name, issue_ref=issue_ref, title=issue.title, url=issue.full_link, status=IssueStatus.to_string(issue.status), bounty=bounty, my_bounty=my_bounty)
def test_create_issue(): status = IssueStatus.READY title = 'TestTitle' link = issue_path r = api.get(issue_path) eq_(r.status_code, 404) r = api.post('/issues', ref=issue_ref, status=IssueStatus.to_string(status), title=title, link=link) eq_(r.status_code, 200) r = api.get(issue_path) eq_(r.status_code, 200) issue = to_object(r.json()) eq_(issue.ref, issue_ref) eq_(IssueStatus.from_string(issue.status), status) eq_(issue.title, title) eq_(issue.link, 'http://localhost:8100' + link)
def issue(project_name, issue_ref): project = Project.query.filter_by(name=project_name).first() issue = Issue.query.filter_by(issue_ref=issue_ref).first() if project == None: abort(404) if issue == None: if project.type == ProjectType.GITHUB: issue = create_update_issue(project.project_id, issue_ref) if issue == None: abort(404) sponsorships = retrieve_all_sponsorships(issue.issue_id) bounty = sum(s.amount for s in sponsorships) sponsorship_map = { s.account.account_id: s for s in sponsorships if s.account } my_sponsorship = sponsorship_map.get(current_account.account_id) my_bounty = my_sponsorship.amount if my_sponsorship else 0 form = IssueForm() if form.validate_on_submit(): amount = form.amount.data create_update_sponsorship(project.project_id, issue.issue_id, account_id=current_account.account_id, amount=amount) if amount == 0 and my_bounty > 0: flash('Sponsorship deleted.') elif amount != my_bounty: flash('Sponsorship updated.') return redirect( url_for(".issue", project_name=project_name, issue_ref=issue_ref)) return render_template('issue.html', form=form, project_name=project.name, issue_ref=issue_ref, title=issue.title, url=issue.full_link, status=IssueStatus.to_string(issue.status), bounty=bounty, my_bounty=my_bounty)