Commit Graph

42 Commits

Author SHA1 Message Date
Daniel Ternyak 5a15022987
ZF Grants 2.1 (#496)
* fix ccr pagination defaults

* add ccr admin tests

* add ccr user tests

* checkpoint

* fix tslint

* request changes discussion flow mvp

* admin - add discussion status

* backend - add live drafts

* admin - add live drafts

* frontend - add live drafts

* frontend - add edit discussion proposal

* fix tsc

* include DISCUSSION status in propsal listview

* do not make live draft on admin request changes

* hide live drafts from user proposal draft list

* fix backend tests

* add admin tests

* add user tests

* fix: liking, viewing discussion proposals, admin menu

* admin - update hints for live drafts

* fe - add better messaging when updating a proposal

* be - fix like test

* remove TODO comments

* add new email types

* fix storybook

* add revision tab story

* backend - implement proposal revisions

* frontend - implement proposal revisions

* update revision tab story

* fix lint

* remove set detection

* email proposal followers on revision

* restrict banner to team members only

* misc bug fixes

* update, add backend tests

* add milestone title change to revision history story

* fix milestones display in preview

* allow archived proposals to be queried

* implement archived proposal page

* fix tsc

* implement archived proposal get route

* move styling into less

* remove proposal archive parent id

* handle archived proposal status

* cleanup

* remove contributions, switch to USD, implement quarters

* use Qs to preserve formatting

* handle edit only kyc

* prevent ARCHIVED proposals from being sent to admin

* display latest revision first

* admin - proposal & ccr reject permanently

* backend - proposal & ccr reject permanently

* frontend - proposal & ccr reject permanently

* fix tsc

* use $ in milestone payout email

* introduce custom filters to proposal listview

* hide archive link on first revision

* upgrade packages

* add bech32 implementation

* add z address validation with tests

* fix tslint

* use local address validation

* fix tests, remove blockchain mock gets

* add additional bad addresses

* update briefs to include page break message

* remove contributions routes, menu entry

* disable countribution count admin stats

* remove matching and pretty print in finance

* fix tslint

* separate out rejected permanently proposals

* make removing proposals generic

* allow linked tabs to be ignored

* remove rejected permanently, bugfix

* update preview link to point to rejected tab

* implement rejected permanently tab, add tab message

* refactor variable

* fix tslint

* fix tslint

* send ccr reject permanently email on rejection

* fix preview message

* wire up proposal arbiter and rejected emails

* disable tip jar in proposal and profile

* sync ccr/proposal drafts on create form init

* check invites on submit modal open

* update team invite language

* update team text when edit

* fix ccr rejected permanently tag

* text changes, email preview fix

* display changes requested tag when in discussion with changes requested

* enable social share on open for discussion proposals, update language

* place sort below filter

* derive filter from query string

* use better filter names in query params

* fix tslint

* create snapshot of original proposal on first revision

* clear invites between edits, account for additional changes not tracked in revisions

* update tests

* fix test

* remove print

* SameSite Fixes (#150)

* QA Fixes 2 (#151)

* set filters as query strings on change

* remove rejected permanently tags

* add dollar sign in financials legend

* fix tsc

* Copy Touchups (#152)

* Email Fixes (#155)

* fix ZEC in milestone payout emails

* fix links in rejected permanently CCR/proposal emails

* Poll for Team and Invite Changes in Create Flow (#153)

* poll for team and invite changes in create flow

* fix tslint

Co-authored-by: Daniel Ternyak <dternyak@gmail.com>

* pretty print payouts by quarter (#156)

Co-authored-by: Daniel Ternyak <dternyak@gmail.com>

* Remove Blockchain Module (#154)

* remove blockchain route from backend, remove calls to node

* revert blockchain_get removal

* Add Tags to Proposal Cards (#157)

* add tag to proposals and dynamically set v1 card height

* listen on window resize

* make card height props optional

* set tag in bottom right, remove dynamic card resize, add dynamic tag resize

* cleanup

* cleanup

Co-authored-by: Daniel Ternyak <dternyak@gmail.com>

* Improve Frontend Address Validation (#158)

Co-authored-by: Daniel Ternyak <dternyak@gmail.com>

* Remove blockchain module (#162)

* remove blockchain route from backend, remove calls to node

* revert blockchain_get removal

* Remove Blockchain App (#160)

* remove blockchain app

* remove blockchain app from travis

Co-authored-by: Danny Skubak <skubakdj@gmail.com>

* Proposal Edit Fixes (#161)

* fe - display error if edit creation fails

* be - restrict live draft publish

Co-authored-by: Daniel Ternyak <dternyak@gmail.com>

* Restrict Arbiter Assignment (#159)

Co-authored-by: Daniel Ternyak <dternyak@gmail.com>

* Email Copy updates

* Remove Admin Financials Card

* Hookup 'proposal_approved_without_funding' to admin email example

* bump various package versions

* Update yarn.lock files

* Attach 'proposal_approved_without_funding' to backend example email

* bump package versions

Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 21:56:32 -05:00
Daniel Ternyak 3311be8e98
CCRs (#86)
* CCRs API / Models boilerplate

* start on frontend

* backendy things

* Create CCR redux module, integrate API endpoints, create types

* Fix/Cleanup API

* Wire up CreateRequestDraftList

* bounty->target

* Add 'Create Request Flow' MVP

* cleanup

* Tweak filenames

* Simplify migrations

* fix migrations

* CCR Staking MVP

* tslint

* Get Pending Requests into Profile

* Remove staking requirement

* more staking related removals

* MVP Admin integration

* Make RFP when CCR is accepted

* Add pagination to CCRs in Admin
Improve styles for Proposals

* Hookup notifications
Adjust copy

* Simplify ccr->rfp relationship
Add admin approval email
Fixup copy

* Show Message on RFP Detail
Make Header CTAs change based on draft status
Adjust proposal card style

* Bugfix: Show header for non signed in users

* Add 'create a request' to intro

* Profile Created CCRs
RFP CCR attribution

* ignore

* CCR Price in USD  (#85)

* init profile tipjar backend

* init profile tipjar frontend

* fix lint

* implement tip jar block

* fix wrapping, hide tip block on self

* init backend proposal tipjar

* init frontend proposal tipjar

* add hide title, fix bug

* uncomment rate limit

* rename vars, use null check

* allow address and view key to be unset

* add api tests

* fix tsc errors

* fix lint

* fix CopyInput styling

* fix migrations

* hide tipping in proposal if address not set

* add tip address to create flow

* redesign campaign block

* fix typo

* init backend changes

* init admin changes

* init frontend changes

* fix backend tests

* update campaign block

* be - init rfp usd changes

* admin - init rfp usd changes

* fe - fully adapt api util functions to usd

* fe - init rfp usd changes

* adapt profile created to usd

* misc usd changes

* add tip jar to dedicated card

* fix tipjar bug

* use zf light logo

* switch to zf grants logo

* hide profile tip jar if address not set

* add comment, run prettier

* conditionally add info icon and tooltip to funding line

* admin - disallow decimals in RFPs

* fe - cover usd string edge case

* add Usd as rfp bounty type

* fix migration order

* fix email bug

* adapt CCRs to USD

* implement CCR preview

* fix tsc

* Copy Updates and UX Tweaks (#87)

* Add default structure to proposal content

* Landing page copy

* Hide contributors tab for v2 proposals

* Minor UX tweaks for Liking/Following/Tipping

* Copy for Tipping Tooltip, proposal explainer for review, and milestone day estimate notice.

* Fix header styles bug and remove commented out styles.

* Revert "like" / "unfollow" hyphenication

* Comment out unused tests related to staking
Increase PROPOSAL_TARGET_MAX in .env.example

* Comment out ccr approval email send until ready

* Adjust styles, copy.

* fix proposal prune test (#88)

* fix USD display in preview, fix non-unique key (#90)

* Pre-stepper explainer for CCRs.

* Tweak styles

* Default content for CCRs

* fix tsc

* CCR approval and rejection emails

* add back admin_approval_ccr email templates

* Link ccr author name to profile in RFPs

* copy tweaks

* copy tweak

* hookup mangle user command

* Fix/add endif in jinja

* fix tests

* review

* fix review
2019-12-05 19:01:02 -06:00
Danny Skubak ec3350e45f Proposal Migration Script (#47)
* init script

* only modify object in not dry runs
2019-11-13 17:59:35 -06:00
Danny Skubak 67fbbae9bf Port Landing Hooks (#30)
* port & adapt landing hooks from grant-base

* fix type guard

* CSS Adjustments for Illustration and Content layout.
2019-11-07 22:58:55 -05:00
Will O'Beirne c462b6eb72
Give CORS setting its own env var 2019-04-04 21:32:20 -04:00
Daniel Ternyak 35510b984f
Misc fixes (#418)
* CORS

* Parse float instead of bn

* Minimum to 0.001

* Unused import
2019-04-04 19:16:00 -05:00
Will O'Beirne 06ae67f1db
Flask command for clearing chain dependent db state 2019-03-19 15:14:49 -04:00
Daniel Ternyak 9b542ab1f1
More webargs validation (#344) 2019-03-14 15:29:02 -05:00
AMStrix 46aa7cf6cf Limit Contribution Related Emails (#360)
* BE: limit contribution emails to CONFIRMED & one per user + add app context to EmailSender

* BE: handle EmailSender setup and start using flask request context
2019-03-14 12:46:09 -04:00
AMStrix e018f11018 Zcash e2e basics (#329)
* e2e: remove more eth related stuff, update cypress

* BE: e2e endpoints and interceptions for emails and blockchain reqs

* e2e: expand browse test for proposals and comments

* e2e: remove old tests, add new ones

* e2e: intercept blockchain_get /contribution/addresses

* be: disable sentry for e2e, add DEBUG to e2e endpoint register conditional

* post-merge adjustments

* fix merge related bug

* post merge issue
2019-03-13 18:36:06 -05:00
William O'Beirne 3050caf329 Sentry fixes (#345)
* Upgrade sentry sdk, replace all prints with flask logging.

* Upgrade node sentry to fix circular json error.

* Update frontend sentry versions to maintain parity and nab any fixes.
2019-03-13 14:40:29 -05:00
William O'Beirne 73d087bda7 Rate limits (#342)
* Implemented rate limits for most POST requests.

* Nicer error message for rate limited contributions

* Use error message for drafts and invites, limit invites on frontend.
2019-03-12 22:35:38 -05:00
William O'Beirne c6ad668d71 Better contribution error displays (#314)
* Handle blockchain_get failures better.

* tsc
2019-03-12 13:10:56 -04:00
Daniel Ternyak 3e65df3e5d
Merge branch 'develop' into various-fixes 2019-03-01 14:13:41 -06:00
Daniel Ternyak f950e17397
Webargs Request Parsing (#228) 2019-03-01 14:11:03 -06:00
Daniel Ternyak a52fda5c58
Set Admin Command (#273) 2019-02-28 18:26:38 -06:00
Aaron f49b58dca4
totp basics + remove old admin env key stuff 2019-02-20 16:35:13 -06:00
Aaron 00dedfbfc0
trigger redux auth state update based on custom auth header 2019-02-15 21:07:41 -06:00
Aaron 1d811bb7d3
BE: user banning + silencing + pagination 2019-02-14 22:11:47 -06:00
AMStrix d696f7978d Proposal pagination & 404 fix (#151)
* BE: command to create fake proposals

* BE: pagination system + implemented for GET proposals/

* FE: overlay mode for Loader component

* FE: paginated Proposals

* refactor pagination.py a bit

* Proposals: set search input from store on construction

* admin: switch proposals to new pagination regime

* BE: test adjustments

* set app.proposals.page after fetch in a less-creepy way

* optimictic proposal.detail from proposal.page

* keep api interfacing on the api surface (one-dimentional page filters vs structured)

* rem MOST & LEAST_FUNDED prop sort + rename NEWST & OLDEST

* ProposalPagination fix default sort
2019-02-05 15:34:19 -05:00
William O'Beirne 4091deaf2f
Request for Proposal (Pt. 1 - Models & Admin) (#120)
* Convert constants into enums

* Initial RFP models and views.

* Fix model and enums

* RFP admin fully fleshed out.

* Fix tsc

* Fix tests and tsc

* Fix closed tag display

* Request for Proposal (Pt. 2 - Public View) (#125)

* RFP list page and backend endpoints. Scaffold of detail view.

* RFP detail view. Fix faulty addRfp action.

* Fix 0 showing up

* PR cleanup
2019-01-30 12:59:15 -05:00
Daniel Ternyak b9a88d7276
MVP task architecture 2019-01-27 22:59:15 -06:00
Daniel Ternyak 9727134ac0
Run reformatter on all files 2019-01-22 23:35:22 -06:00
Will O'Beirne 244a9f9168
Merge branch 'develop' into sentry-release-env-no-git 2019-01-21 12:52:35 -05:00
William O'Beirne 0e4626157f
Blockchain watcher bootstrap (#92)
* Initial work on bootstrap refactor. Still results in delayed bootstrapping and double bootstrapping.

* Remove logging.

* Fix invalid json in body on non-post requests. Reduce error verbosity.

* Adjust error output.
2019-01-21 12:51:49 -05:00
Aaron 4687ed6033
do not register default blueprint for flask-security 2019-01-18 13:07:00 -06:00
AMStrix b3e3a28957 Admin authentication environment variable + generation command (#78)
* store admin pass hash in ENV + add gen-admin-auth command

* allow custom salt for hash generation

* remove unused import

* dynamically pull salt for testing admin password hash generator func

* Fix middleware name.
2019-01-17 00:20:10 -05:00
Will O'Beirne 4540dbde1a
Remove flask-sendgrid. Use sendgrid directly. Improve error logging. 2019-01-10 18:48:44 -05:00
AMStrix 50cc377b48 User Auth Conversion (#19) 2018-12-14 13:36:22 -06:00
Daniel Ternyak 35eecc24db
Setup in-app SSL redirects for Heroku (#238)
* setup in-app ssl redirects for Heroku

* add typings

* use trustProtoHeader

* BE w3 read fix for read_user_proposal

* No HTTPS redirect on dev
2018-12-05 17:49:45 -06:00
Will O'Beirne b1b2717360
Tests around invites, and a few fixes along the way. 2018-11-28 16:56:19 -05:00
Daniel Ternyak 00219e65c8
Only Runtime Contracts (#225) 2018-11-25 22:02:35 -06:00
AMStrix 7abeac7bd7 Sentry Integration (#221)
* BE sentry setup w/ user scope

* FE sentry integration + user scope

* FE env adjustments

* FE: use NODE_ENV for Sentry

* BE: use FLASK_ENV for Sentry

* BE: remove email, acct & ip from Sentry user scope

* comment .env.example SENTRY* for CI

* fix merge artifact
2018-11-21 23:45:29 -06:00
AMStrix 03de8c2543 Backend Proposal Reads Pt. 1 (#198)
* web3 flask + read proposal

* tests

* use build/contracts indtead of build/abi

* fail if endpoint not set

* batched calls
2018-11-14 09:30:18 -05:00
William O'Beirne 250d5fb7a9
EIP-712 signatures for login & signup (#189)
* Signup requires valid EIP-712 signature. Refactor some auth reducer nomenclature for consistency.

* Add auth endpoint for logging in that checks for valid signature, like create user.

* Fix tests, move dummy data into test_data.py.

* No strict slashes.
2018-11-07 14:08:42 -05:00
William O'Beirne cdc3ea0107
Email verification (#172)
* Add email_verification table and endpoints, setup email verification page, adjust emails to actually verify.

* Add User.create method
2018-11-02 12:07:06 -04:00
AMStrix d4298e62cc Admin (#164)
* admin backend

* admin ui

* tslint ignore contracts

* fix name

* build & serve
2018-10-30 12:35:47 -04:00
Daniel Ternyak abc824b17e
EIP-712 User Authorization (#138)
* example auth service

* prep for merge

* MVP signed transaction based auth

* update auth service endpoint and delete checked-in auth service

* add readme explanation for AUTH_URL

* rename eip-712 headers

* fix test errors
2018-10-20 00:18:27 -05:00
William O'Beirne e63b03e5c3 Email Scaffolding + Signup Email (#153)
* Scaffolding for emails + signup email.

* Better docs and handling around config
2018-10-19 17:20:51 -05:00
Daniel Ternyak 397079869a
"Fuller" Users (#96)
* check in progress

* revert

* fix up API, add tests

* remove unused milestone commands

* support filtering users via proposalId

* get UI working

* refactoring / add minimum team size.

* fix proposal create API to properly support both email and account based
2018-09-25 15:09:25 -05:00
Daniel Ternyak 02d703a32a
Create Proposal Comment API (#29)
* Create Proposal Comment API
Flesh out Testing Frameworks
Create initial test

* add flask_testing to requirements.txt

* Fix test client table setup in sqlite.

Apparently there are some issues when using flask with sqlite in memory, so simply persisting sqlite to disk fixes migrations.

* Fix resource creation status codes 204 -> 201.

* Fix and add tests

* add signing stub

* remove front-end changes
2018-09-18 17:17:34 -05:00
Daniel Ternyak 2f513d0ce6
initial commit 2018-09-10 11:55:26 -05:00