remove funded proposals from arbiter count (#92)

This commit is contained in:
Danny Skubak 2019-12-03 19:02:56 -05:00 committed by Daniel Ternyak
parent 4a0e23e9c7
commit 597472b5c6
4 changed files with 36 additions and 13 deletions

View File

@ -32,7 +32,7 @@ class Home extends React.Component {
<div>
<Icon type="exclamation-circle" /> There are <b>{proposalNoArbiterCount}</b>{' '}
live proposals <b>without an arbiter</b>.{' '}
<Link to="/proposals?filters[]=STATUS_LIVE&filters[]=ARBITER_MISSING&filters[]=STAGE_NOT_CANCELED">
<Link to="/proposals?filters[]=STATUS_LIVE&filters[]=ARBITER_MISSING&filters[]=STAGE_NOT_CANCELED&filters[]=ACCEPTED_WITH_FUNDING">
Click here
</Link>{' '}
to view them.

View File

@ -59,7 +59,21 @@ const PROPOSAL_FILTERS = PROPOSAL_STATUSES.map(s => ({
color: s.tagColor,
group: 'Milestone',
})),
);
)
.concat([
{
id: 'ACCEPTED_WITH_FUNDING',
display: 'Accepted With Funding',
color: '#2D2A26',
group: 'Funding',
},
{
id: 'ACCEPTED_WITHOUT_FUNDING',
display: 'Accepted Without Funding',
color: '#108ee9',
group: 'Funding',
},
]);
export const proposalFilters: Filters = {
list: PROPOSAL_FILTERS,
@ -87,17 +101,20 @@ const CONTRIBUTION_FILTERS = CONTRIBUTION_STATUSES.map(s => ({
display: `Status: ${s.tagDisplay}`,
color: s.tagColor,
group: 'Status',
})).concat([{
id: 'REFUNDABLE',
display: 'Refundable',
color: '#afd500',
group: 'Refundable',
}, {
id: 'DONATION',
display: 'Donations',
color: '#afd500',
group: 'Donations',
}]);
})).concat([
{
id: 'REFUNDABLE',
display: 'Refundable',
color: '#afd500',
group: 'Refundable',
},
{
id: 'DONATION',
display: 'Donations',
color: '#afd500',
group: 'Donations',
},
]);
export const contributionFilters: Filters = {
list: CONTRIBUTION_FILTERS,

View File

@ -145,6 +145,7 @@ def stats():
.filter(Proposal.status == ProposalStatus.LIVE) \
.filter(ProposalArbiter.status == ProposalArbiterStatus.MISSING) \
.filter(Proposal.stage != ProposalStage.CANCELED) \
.filter(Proposal.accepted_with_funding == True) \
.scalar()
proposal_milestone_payouts_count = db.session.query(func.count(Proposal.id)) \
.join(Proposal.milestones) \

View File

@ -58,6 +58,7 @@ class ProposalPagination(Pagination):
self.FILTERS.extend([f'CAT_{c}' for c in Category.list()])
self.FILTERS.extend([f'ARBITER_{c}' for c in ProposalArbiterStatus.list()])
self.FILTERS.extend([f'MILESTONE_{c}' for c in MilestoneStage.list()])
self.FILTERS.extend(['ACCEPTED_WITH_FUNDING', 'ACCEPTED_WITHOUT_FUNDING'])
self.PAGE_SIZE = 9
self.SORT_MAP = {
'CREATED:DESC': Proposal.date_created.desc(),
@ -102,6 +103,10 @@ class ProposalPagination(Pagination):
if milestone_filters:
query = query.join(Proposal.milestones) \
.filter(Milestone.stage.in_(milestone_filters))
if 'ACCEPTED_WITH_FUNDING' in filters:
query = query.filter(Proposal.accepted_with_funding == True)
if 'ACCEPTED_WITHOUT_FUNDING' in filters:
query = query.filter(Proposal.accepted_with_funding == False)
# SORT (see self.SORT_MAP)
if sort: