Fix Misc Bugs (#106)
* consider all proposals to be staked * allow proposal titles to wrap * rejected -> changes requested * allow empty strings as tip addresses
This commit is contained in:
parent
7e7650eeae
commit
96d0b9e30e
|
@ -717,12 +717,7 @@ class Proposal(db.Model):
|
|||
|
||||
@hybrid_property
|
||||
def is_staked(self):
|
||||
# Don't use self.contributed since that ignores stake contributions
|
||||
contributions = ProposalContribution.query \
|
||||
.filter_by(proposal_id=self.id, status=ContributionStatus.CONFIRMED) \
|
||||
.all()
|
||||
funded = reduce(lambda prev, c: prev + Decimal(c.amount), contributions, 0)
|
||||
return Decimal(funded) >= PROPOSAL_STAKING_AMOUNT
|
||||
return True
|
||||
|
||||
@hybrid_property
|
||||
def is_funded(self):
|
||||
|
|
|
@ -264,12 +264,14 @@ def update_proposal(milestones, proposal_id, rfp_opt_in, **kwargs):
|
|||
@blueprint.route("/<proposal_id>/tips", methods=["PUT"])
|
||||
@requires_team_member_auth
|
||||
@body({
|
||||
"address": fields.Str(required=False, missing=None,
|
||||
validate=lambda r: validate_blockchain_get('/validate/address', {'address': r})),
|
||||
"address": fields.Str(required=False, missing=None),
|
||||
"viewKey": fields.Str(required=False, missing=None)
|
||||
})
|
||||
def update_proposal_tip_jar(proposal_id, address, view_key):
|
||||
if address is not None:
|
||||
if address is not '':
|
||||
validate_blockchain_get('/validate/address', {'address': address})
|
||||
|
||||
g.current_proposal.tip_jar_address = address
|
||||
if view_key is not None:
|
||||
g.current_proposal.tip_jar_view_key = view_key
|
||||
|
|
|
@ -365,8 +365,7 @@ def get_user_settings(user_id):
|
|||
"emailSubscriptions": fields.Dict(required=False, missing=None),
|
||||
"refundAddress": fields.Str(required=False, missing=None,
|
||||
validate=lambda r: validate_blockchain_get('/validate/address', {'address': r})),
|
||||
"tipJarAddress": fields.Str(required=False, missing=None,
|
||||
validate=lambda r: validate_blockchain_get('/validate/address', {'address': r})),
|
||||
"tipJarAddress": fields.Str(required=False, missing=None),
|
||||
"tipJarViewKey": fields.Str(required=False, missing=None) # TODO: add viewkey validation here
|
||||
})
|
||||
def set_user_settings(user_id, email_subscriptions, refund_address, tip_jar_address, tip_jar_view_key):
|
||||
|
@ -382,8 +381,10 @@ def set_user_settings(user_id, email_subscriptions, refund_address, tip_jar_addr
|
|||
if refund_address:
|
||||
g.current_user.settings.refund_address = refund_address
|
||||
|
||||
# TODO: is additional validation needed similar to refund_address?
|
||||
if tip_jar_address is not None:
|
||||
if tip_jar_address is not '':
|
||||
validate_blockchain_get('/validate/address', {'address': tip_jar_address})
|
||||
|
||||
g.current_user.settings.tip_jar_address = tip_jar_address
|
||||
if tip_jar_view_key is not None:
|
||||
g.current_user.settings.tip_jar_view_key = tip_jar_view_key
|
||||
|
|
|
@ -39,10 +39,10 @@ class ProfilePendingCCR extends React.Component<Props, State> {
|
|||
const st = {
|
||||
[STATUS.REJECTED]: {
|
||||
color: 'red',
|
||||
tag: 'Rejected',
|
||||
tag: 'Changes Requested',
|
||||
blurb: (
|
||||
<>
|
||||
<div>This request was rejected for the following reason:</div>
|
||||
<div>This request has changes requested for the following reason:</div>
|
||||
<q>{rejectReason}</q>
|
||||
<div>You may edit this request and re-submit it for approval.</div>
|
||||
</>
|
||||
|
@ -50,7 +50,7 @@ class ProfilePendingCCR extends React.Component<Props, State> {
|
|||
},
|
||||
[STATUS.PENDING]: {
|
||||
color: 'purple',
|
||||
tag: 'Pending',
|
||||
tag: 'Pending Request',
|
||||
blurb: (
|
||||
<div>
|
||||
You will receive an email when this request has completed the review process.
|
||||
|
@ -63,7 +63,7 @@ class ProfilePendingCCR extends React.Component<Props, State> {
|
|||
<div className="ProfilePending">
|
||||
<div className="ProfilePending-block">
|
||||
<Link to={`/ccrs/${ccrId}`} className="ProfilePending-title">
|
||||
{title} <Tag color={st[status].color}>{st[status].tag} Request</Tag>
|
||||
{title} <Tag color={st[status].color}>{st[status].tag}</Tag>
|
||||
</Link>
|
||||
<div className={`ProfilePending-status is-${status.toLowerCase()}`}>
|
||||
{st[status].blurb}
|
||||
|
|
|
@ -81,8 +81,7 @@
|
|||
|
||||
@media (min-width: @collapse-width) {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
text-overflow: unset;
|
||||
}
|
||||
|
||||
@media (max-width: @collapse-width) {
|
||||
|
|
Loading…
Reference in New Issue