VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS8.47%
Net Worth
11.748USD
STEEM
0.001STEEM
SBD
23.534SBD
Effective Power
8.867SP
├── Own SP
7.791SP
└── Incoming DelegationsDeleg
+1.075SP
Detailed Balance
| STEEM | ||
| balance | 0.001STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 7.791SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 1.075SP | SP |
| Effective Power | 8.867SP | SP |
| Reward SP (pending) | 0.000SP | SP |
| SBD | ||
| sbd_balance | 23.534SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"balance": "0.001 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "12671.522006 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "1748.725547 VESTS",
"sbd_balance": "23.534 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | jmares |
| id | 613442 |
| rank | 141,631 |
| reputation | 170465221382 |
| created | 2018-01-18T16:11:12 |
| recovery_account | steem |
| proxy | None |
| post_count | 11 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2018-02-19T16:20:30 |
| last_root_post | 2018-02-19T16:20:30 |
| last_vote_time | 2018-02-20T17:52:15 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.001 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 23.534 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 12671.522006 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 1748.725547 VESTS |
| reward_vesting_balance | 0.000000 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 2018-02-13T20:05:03 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 2020-05-12T00:20:57 |
| savings_sbd_last_interest_payment | 2020-05-12T00:21:18 |
{
"id": 613442,
"name": "jmares",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7VhWAGvpgYMaGekxTF47YMhizyD6fKacmTr6YPe74fzQLLXyQB",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7nzFgEMF9A59cMoVe52Z5qyxf6nUNdfXt6WqMrMi5v27iCFoif",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [
[
"utopian.app",
1
]
],
"key_auths": [
[
"STM5S2U3ggs1ahTrzU3YRJeYqRZTcH9DhuZSq2gC7cYuaowWbwRib",
1
]
]
},
"memo_key": "STM7RDEJr8awedzCFxLt1oYAeiRorESHrHiCCKBvu4JDVttAyAKKQ",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no\",\"name\":\"Jonathan\",\"location\":\"Washington DC\",\"website\":\"http://jonathanmares.com\",\"about\":\"Software Engineer and Musician\"}}",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no\",\"name\":\"Jonathan\",\"location\":\"Washington DC\",\"website\":\"http://jonathanmares.com\",\"about\":\"Software Engineer and Musician\"}}",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2018-02-13T20:05:03",
"created": "2018-01-18T16:11:12",
"mined": false,
"recovery_account": "steem",
"last_account_recovery": "1970-01-01T00:00:00",
"reset_account": "null",
"comment_count": 0,
"lifetime_vote_count": 0,
"post_count": 11,
"can_vote": true,
"voting_manabar": {
"current_mana": "14420247553",
"last_update_time": 1695340173
},
"downvote_manabar": {
"current_mana": 3605061888,
"last_update_time": 1695340173
},
"voting_power": 0,
"balance": "0.001 STEEM",
"savings_balance": "0.000 STEEM",
"sbd_balance": "23.534 SBD",
"sbd_seconds": "0",
"sbd_seconds_last_update": "2020-05-15T00:21:18",
"sbd_last_interest_payment": "2020-05-12T00:20:57",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "2020-05-12T00:21:18",
"savings_sbd_last_interest_payment": "2020-05-12T00:21:18",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "0.000000 VESTS",
"reward_vesting_steem": "0.000 STEEM",
"vesting_shares": "12671.522006 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "1748.725547 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"withdrawn": 0,
"to_withdraw": 0,
"withdraw_routes": 0,
"curation_rewards": 0,
"posting_rewards": 10974,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 0,
"last_post": "2018-02-19T16:20:30",
"last_root_post": "2018-02-19T16:20:30",
"last_vote_time": "2018-02-20T17:52:15",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": "170465221382",
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 141631
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2023/09/21 23:49:33
2023/09/21 23:49:33
| delegator | steem |
| delegatee | jmares |
| vesting shares | 1748.725547 VESTS |
| Transaction Info | Block #78350218/Trx 950ef2b8bcc8edfc48019d3dbdf5d9c6346df7d8 |
View Raw JSON Data
{
"trx_id": "950ef2b8bcc8edfc48019d3dbdf5d9c6346df7d8",
"block": 78350218,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-09-21T23:49:33",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "1748.725547 VESTS"
}
]
}jmaresblockchain operation: fill transfer from savings2020/05/15 00:21:18
jmaresblockchain operation: fill transfer from savings
2020/05/15 00:21:18
| from | jmares |
| to | jmares |
| amount | 23.534 SBD |
| request id | 1589242874 |
| memo | |
| Transaction Info | Block #43379602/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 43379602,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-05-15T00:21:18",
"op": [
"fill_transfer_from_savings",
{
"from": "jmares",
"to": "jmares",
"amount": "23.534 SBD",
"request_id": 1589242874,
"memo": ""
}
]
}2020/05/12 00:48:36
2020/05/12 00:48:36
| delegator | steem |
| delegatee | jmares |
| vesting shares | 1952.862403 VESTS |
| Transaction Info | Block #43295676/Trx 2d5052e54dea44e52f4f1f3696ba12c545f7686c |
View Raw JSON Data
{
"trx_id": "2d5052e54dea44e52f4f1f3696ba12c545f7686c",
"block": 43295676,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-12T00:48:36",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "1952.862403 VESTS"
}
]
}jmaresblockchain operation: transfer from savings2020/05/12 00:21:18
jmaresblockchain operation: transfer from savings
2020/05/12 00:21:18
| from | jmares |
| request id | 1589242874 |
| to | jmares |
| amount | 23.534 SBD |
| memo | |
| Transaction Info | Block #43295139/Trx ed0b7bc862a099a18f42f29db2a3601361679108 |
View Raw JSON Data
{
"trx_id": "ed0b7bc862a099a18f42f29db2a3601361679108",
"block": 43295139,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-12T00:21:18",
"op": [
"transfer_from_savings",
{
"from": "jmares",
"request_id": 1589242874,
"to": "jmares",
"amount": "23.534 SBD",
"memo": ""
}
]
}jmaresblockchain operation: transfer to savings2020/05/12 00:20:57
jmaresblockchain operation: transfer to savings
2020/05/12 00:20:57
| from | jmares |
| to | jmares |
| amount | 23.534 SBD |
| memo | |
| Transaction Info | Block #43295132/Trx f1d55db73bb588aa5e998f4193dea8af8098b29b |
View Raw JSON Data
{
"trx_id": "f1d55db73bb588aa5e998f4193dea8af8098b29b",
"block": 43295132,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-12T00:20:57",
"op": [
"transfer_to_savings",
{
"from": "jmares",
"to": "jmares",
"amount": "23.534 SBD",
"memo": ""
}
]
}jmaresclaimed reward balance: 23.534 SBD, 6.899 SP2020/05/12 00:19:48
jmaresclaimed reward balance: 23.534 SBD, 6.899 SP
2020/05/12 00:19:48
| account | jmares |
| reward steem | 0.000 STEEM |
| reward sbd | 23.534 SBD |
| reward vests | 11220.225406 VESTS |
| Transaction Info | Block #43295110/Trx 27a66720714ebbe271ac6a8c0afaf41a36ca2a0c |
View Raw JSON Data
{
"trx_id": "27a66720714ebbe271ac6a8c0afaf41a36ca2a0c",
"block": 43295110,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-12T00:19:48",
"op": [
"claim_reward_balance",
{
"account": "jmares",
"reward_steem": "0.000 STEEM",
"reward_sbd": "23.534 SBD",
"reward_vests": "11220.225406 VESTS"
}
]
}2020/05/09 07:12:51
2020/05/09 07:12:51
| delegator | steem |
| delegatee | jmares |
| vesting shares | 8314.749649 VESTS |
| Transaction Info | Block #43218764/Trx d8d0fa649a1245bcbc1f4f44c16cdb80efe9917d |
View Raw JSON Data
{
"trx_id": "d8d0fa649a1245bcbc1f4f44c16cdb80efe9917d",
"block": 43218764,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-09T07:12:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "8314.749649 VESTS"
}
]
}2020/05/08 11:02:21
2020/05/08 11:02:21
| delegator | steem |
| delegatee | jmares |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #43195120/Trx 4b6bad7b2472299b1a02f3f1e1487d421bacb622 |
View Raw JSON Data
{
"trx_id": "4b6bad7b2472299b1a02f3f1e1487d421bacb622",
"block": 43195120,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-08T11:02:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "1953.311140 VESTS"
}
]
}2020/04/21 09:18:06
2020/04/21 09:18:06
| delegator | steem |
| delegatee | jmares |
| vesting shares | 8324.747116 VESTS |
| Transaction Info | Block #42715905/Trx 56b90c6b36a5f9f01b29904e1a7f41a869f67c2c |
View Raw JSON Data
{
"trx_id": "56b90c6b36a5f9f01b29904e1a7f41a869f67c2c",
"block": 42715905,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-04-21T09:18:06",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "8324.747116 VESTS"
}
]
}2020/01/18 17:16:03
2020/01/18 17:16:03
| parent author | jmares |
| parent permlink | now-playing-week-8-gemini-by-snarky-puppy |
| author | steemitboard |
| permlink | steemitboard-notify-jmares-20200118t171603000z |
| title | |
| body | Congratulations @jmares! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jmares/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@jmares) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=jmares)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #40041667/Trx 34ba9c1439dea3501d6817135cf156fd64706c55 |
View Raw JSON Data
{
"trx_id": "34ba9c1439dea3501d6817135cf156fd64706c55",
"block": 40041667,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-01-18T17:16:03",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"author": "steemitboard",
"permlink": "steemitboard-notify-jmares-20200118t171603000z",
"title": "",
"body": "Congratulations @jmares! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jmares/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@jmares) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=jmares)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
}
]
}2019/05/17 17:30:27
2019/05/17 17:30:27
| delegator | steem |
| delegatee | jmares |
| vesting shares | 8520.312877 VESTS |
| Transaction Info | Block #32992517/Trx d163a1171a4a49ab724964f6b690facf0255ab1b |
View Raw JSON Data
{
"trx_id": "d163a1171a4a49ab724964f6b690facf0255ab1b",
"block": 32992517,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-17T17:30:27",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "8520.312877 VESTS"
}
]
}2019/01/18 17:20:18
2019/01/18 17:20:18
| parent author | jmares |
| parent permlink | now-playing-week-8-gemini-by-snarky-puppy |
| author | steemitboard |
| permlink | steemitboard-notify-jmares-20190118t172017000z |
| title | |
| body | Congratulations @jmares! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jmares/birthday1.png</td><td><p>Happy Birthday! - You are on the Steem blockchain for 1 year!<p></td></tr></table> <sub>_[Click here to view your Board](https://steemitboard.com/@jmares)_</sub> > Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #29569078/Trx f81d0f65e034c321d01d42a2e709ee16e144f174 |
View Raw JSON Data
{
"trx_id": "f81d0f65e034c321d01d42a2e709ee16e144f174",
"block": 29569078,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-18T17:20:18",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"author": "steemitboard",
"permlink": "steemitboard-notify-jmares-20190118t172017000z",
"title": "",
"body": "Congratulations @jmares! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jmares/birthday1.png</td><td><p>Happy Birthday! - You are on the Steem blockchain for 1 year!<p></td></tr></table>\n\n<sub>_[Click here to view your Board](https://steemitboard.com/@jmares)_</sub>\n\n\n> Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
}
]
}2018/05/22 18:29:15
2018/05/22 18:29:15
| delegator | steem |
| delegatee | jmares |
| vesting shares | 8719.761956 VESTS |
| Transaction Info | Block #22660457/Trx 187f79f97082a902312c758bfddcfab7a29189f6 |
View Raw JSON Data
{
"trx_id": "187f79f97082a902312c758bfddcfab7a29189f6",
"block": 22660457,
"trx_in_block": 42,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-05-22T18:29:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "8719.761956 VESTS"
}
]
}2018/03/16 21:11:39
2018/03/16 21:11:39
| delegator | steem |
| delegatee | jmares |
| vesting shares | 29168.722867 VESTS |
| Transaction Info | Block #20735937/Trx d0b0649467aac27d4be209074d5f4af8b3a80b8e |
View Raw JSON Data
{
"trx_id": "d0b0649467aac27d4be209074d5f4af8b3a80b8e",
"block": 20735937,
"trx_in_block": 40,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-03-16T21:11:39",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "jmares",
"vesting_shares": "29168.722867 VESTS"
}
]
}2018/03/02 03:38:33
2018/03/02 03:38:33
| from | cryptofy |
| to | jmares |
| amount | 0.001 STEEM |
| memo | A gift. 😊 |
| Transaction Info | Block #20312169/Trx 44358cf3b5ec4f184052bd839ea8fc9840777de5 |
View Raw JSON Data
{
"trx_id": "44358cf3b5ec4f184052bd839ea8fc9840777de5",
"block": 20312169,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-03-02T03:38:33",
"op": [
"transfer",
{
"from": "cryptofy",
"to": "jmares",
"amount": "0.001 STEEM",
"memo": "A gift. 😊"
}
]
}jmaresreceived 0.053 SBD, 0.020 SP author reward for @jmares / now-playing-week-8-gemini-by-snarky-puppy2018/02/26 16:20:30
jmaresreceived 0.053 SBD, 0.020 SP author reward for @jmares / now-playing-week-8-gemini-by-snarky-puppy
2018/02/26 16:20:30
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| sbd payout | 0.053 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 32.692821 VESTS |
| Transaction Info | Block #20212408/Virtual Operation #15 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 20212408,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 15,
"timestamp": "2018-02-26T16:20:30",
"op": [
"author_reward",
{
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"sbd_payout": "0.053 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "32.692821 VESTS"
}
]
}nowplaying-musicpowered up 0.015 STEEM to @jmares2018/02/25 23:57:12
nowplaying-musicpowered up 0.015 STEEM to @jmares
2018/02/25 23:57:12
| from | nowplaying-music |
| to | jmares |
| amount | 0.015 STEEM |
| Transaction Info | Block #20192752/Trx 1664b9f482f61f4ecd0dfc80ba2453f2b50abb01 |
View Raw JSON Data
{
"trx_id": "1664b9f482f61f4ecd0dfc80ba2453f2b50abb01",
"block": 20192752,
"trx_in_block": 34,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-25T23:57:12",
"op": [
"transfer_to_vesting",
{
"from": "nowplaying-music",
"to": "jmares",
"amount": "0.015 STEEM"
}
]
}2018/02/20 17:52:15
2018/02/20 17:52:15
| voter | jmares |
| author | utopian-io |
| permlink | re-jmares-basic-proxy-model-support-in-graphene-django-20180218t161336554z |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20041483/Trx d026c533356b8aa3d81ab086b0b04ed627b9f61b |
View Raw JSON Data
{
"trx_id": "d026c533356b8aa3d81ab086b0b04ed627b9f61b",
"block": 20041483,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-20T17:52:15",
"op": [
"vote",
{
"voter": "jmares",
"author": "utopian-io",
"permlink": "re-jmares-basic-proxy-model-support-in-graphene-django-20180218t161336554z",
"weight": 10000
}
]
}jmaresreceived 19.537 SBD, 5.875 SP author reward for @jmares / basic-proxy-model-support-in-graphene-django2018/02/20 16:56:24
jmaresreceived 19.537 SBD, 5.875 SP author reward for @jmares / basic-proxy-model-support-in-graphene-django
2018/02/20 16:56:24
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| sbd payout | 19.537 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 9555.450169 VESTS |
| Transaction Info | Block #20040365/Virtual Operation #44 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 20040365,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 44,
"timestamp": "2018-02-20T16:56:24",
"op": [
"author_reward",
{
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"sbd_payout": "19.537 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "9555.450169 VESTS"
}
]
}utopian.payreceived 3.916 SP benefactor reward from @jmares2018/02/20 16:56:24
utopian.payreceived 3.916 SP benefactor reward from @jmares
2018/02/20 16:56:24
| benefactor | utopian.pay |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| sbd payout | 0.000 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 6368.937482 VESTS |
| Transaction Info | Block #20040365/Virtual Operation #43 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 20040365,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 43,
"timestamp": "2018-02-20T16:56:24",
"op": [
"comment_benefactor_reward",
{
"benefactor": "utopian.pay",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"sbd_payout": "0.000 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "6368.937482 VESTS"
}
]
}jmaresreceived 1.376 SBD, 0.415 SP author reward for @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/20 14:44:36
jmaresreceived 1.376 SBD, 0.415 SP author reward for @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/20 14:44:36
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| sbd payout | 1.376 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 674.505626 VESTS |
| Transaction Info | Block #20037729/Virtual Operation #13 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 20037729,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 13,
"timestamp": "2018-02-20T14:44:36",
"op": [
"author_reward",
{
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"sbd_payout": "1.376 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "674.505626 VESTS"
}
]
}lameorecordsupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy2018/02/20 03:28:48
lameorecordsupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy
2018/02/20 03:28:48
| voter | lameorecords |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20024215/Trx ecc4512cf7917eff70e14cd72ab1775f63819f15 |
View Raw JSON Data
{
"trx_id": "ecc4512cf7917eff70e14cd72ab1775f63819f15",
"block": 20024215,
"trx_in_block": 26,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-20T03:28:48",
"op": [
"vote",
{
"voter": "lameorecords",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"weight": 10000
}
]
}walnut1upvoted (10.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy2018/02/19 16:23:42
walnut1upvoted (10.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy
2018/02/19 16:23:42
| voter | walnut1 |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| weight | 1000 (10.00%) |
| Transaction Info | Block #20010932/Trx 16c88ceaef404203fd97c21b8925dba0e1a17d8a |
View Raw JSON Data
{
"trx_id": "16c88ceaef404203fd97c21b8925dba0e1a17d8a",
"block": 20010932,
"trx_in_block": 24,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:23:42",
"op": [
"vote",
{
"voter": "walnut1",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"weight": 1000
}
]
}mochawooupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy2018/02/19 16:22:51
mochawooupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy
2018/02/19 16:22:51
| voter | mochawoo |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20010915/Trx 483187c7d370ee906c081349d7b1edb52262bba7 |
View Raw JSON Data
{
"trx_id": "483187c7d370ee906c081349d7b1edb52262bba7",
"block": 20010915,
"trx_in_block": 12,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:22:51",
"op": [
"vote",
{
"voter": "mochawoo",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"weight": 10000
}
]
}nowplaying-musicreplied to @jmares / nowplaying-15190573415082018/02/19 16:22:21
nowplaying-musicreplied to @jmares / nowplaying-1519057341508
2018/02/19 16:22:21
| parent author | jmares |
| parent permlink | now-playing-week-8-gemini-by-snarky-puppy |
| author | nowplaying-music |
| permlink | nowplaying-1519057341508 |
| title | |
| body | Thanks for entering this week's #nowplaying! |
| json metadata | {"tags":["nowplaying","music"],"app":"nowplaying/week5"} |
| Transaction Info | Block #20010905/Trx e9e7f4eba27c58e0d0bf1bd9db7a382c6e0eea90 |
View Raw JSON Data
{
"trx_id": "e9e7f4eba27c58e0d0bf1bd9db7a382c6e0eea90",
"block": 20010905,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:22:21",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"author": "nowplaying-music",
"permlink": "nowplaying-1519057341508",
"title": "",
"body": "Thanks for entering this week's #nowplaying!",
"json_metadata": "{\"tags\":[\"nowplaying\",\"music\"],\"app\":\"nowplaying/week5\"}"
}
]
}nowplaying-musicupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy2018/02/19 16:22:21
nowplaying-musicupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy
2018/02/19 16:22:21
| voter | nowplaying-music |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20010905/Trx 8115c865307843966021c25c0d614ee2f61754d6 |
View Raw JSON Data
{
"trx_id": "8115c865307843966021c25c0d614ee2f61754d6",
"block": 20010905,
"trx_in_block": 22,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:22:21",
"op": [
"vote",
{
"voter": "nowplaying-music",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"weight": 10000
}
]
}jmaresupvoted (100.00%) @louie-jr / now-playing-week-82018/02/19 16:21:27
jmaresupvoted (100.00%) @louie-jr / now-playing-week-8
2018/02/19 16:21:27
| voter | jmares |
| author | louie-jr |
| permlink | now-playing-week-8 |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20010887/Trx 3dfe0b65095de3505628cb635be447865202e82e |
View Raw JSON Data
{
"trx_id": "3dfe0b65095de3505628cb635be447865202e82e",
"block": 20010887,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:21:27",
"op": [
"vote",
{
"voter": "jmares",
"author": "louie-jr",
"permlink": "now-playing-week-8",
"weight": 10000
}
]
}jmarespublished a new post: now-playing-week-8-gemini-by-snarky-puppy2018/02/19 16:21:00
jmarespublished a new post: now-playing-week-8-gemini-by-snarky-puppy
2018/02/19 16:21:00
| parent author | |
| parent permlink | nowplaying |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| title | Now Playing Week 8 - Gemini By Snarky Puppy |
| body | @@ -160,17 +160,8 @@ %0A%3Cp%3E -%3Ca href=%22 http @@ -203,57 +203,8 @@ jSsg -%22%3Ehttps://www.youtube.com/watch?v=u78NbWdjSsg%3C/a%3E %3C/p%3E |
| json metadata | {"tags":["nowplaying","snarky","puppy","jazz","modal"],"links":["https://www.youtube.com/watch?v=u78NbWdjSsg"],"app":"steemit/0.1","format":"html","image":["https://img.youtube.com/vi/u78NbWdjSsg/0.jpg"]} |
| Transaction Info | Block #20010878/Trx c2a96a998b9b25223ffd1e9f79abf44ff543b88f |
View Raw JSON Data
{
"trx_id": "c2a96a998b9b25223ffd1e9f79abf44ff543b88f",
"block": 20010878,
"trx_in_block": 24,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:21:00",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "nowplaying",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"title": "Now Playing Week 8 - Gemini By Snarky Puppy",
"body": "@@ -160,17 +160,8 @@\n %0A%3Cp%3E\n-%3Ca href=%22\n http\n@@ -203,57 +203,8 @@\n jSsg\n-%22%3Ehttps://www.youtube.com/watch?v=u78NbWdjSsg%3C/a%3E\n %3C/p%3E\n",
"json_metadata": "{\"tags\":[\"nowplaying\",\"snarky\",\"puppy\",\"jazz\",\"modal\"],\"links\":[\"https://www.youtube.com/watch?v=u78NbWdjSsg\"],\"app\":\"steemit/0.1\",\"format\":\"html\",\"image\":[\"https://img.youtube.com/vi/u78NbWdjSsg/0.jpg\"]}"
}
]
}jmaresupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy2018/02/19 16:20:30
jmaresupvoted (100.00%) @jmares / now-playing-week-8-gemini-by-snarky-puppy
2018/02/19 16:20:30
| voter | jmares |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20010868/Trx ed8c07f76dbc7b3edecb859783d8c397696b3325 |
View Raw JSON Data
{
"trx_id": "ed8c07f76dbc7b3edecb859783d8c397696b3325",
"block": 20010868,
"trx_in_block": 28,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:20:30",
"op": [
"vote",
{
"voter": "jmares",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"weight": 10000
}
]
}jmarespublished a new post: now-playing-week-8-gemini-by-snarky-puppy2018/02/19 16:20:30
jmarespublished a new post: now-playing-week-8-gemini-by-snarky-puppy
2018/02/19 16:20:30
| parent author | |
| parent permlink | nowplaying |
| author | jmares |
| permlink | now-playing-week-8-gemini-by-snarky-puppy |
| title | Now Playing Week 8 - Gemini By Snarky Puppy |
| body | <html> <h1>Gemini - Snarky Puppy</h1> <p>I saw Snarky Puppy live yesterday and thoroughly enjoyed the experience. I have this tune Gemini stuck in my head:</p> <p><a href="https://www.youtube.com/watch?v=u78NbWdjSsg">https://www.youtube.com/watch?v=u78NbWdjSsg</a></p> <p>The combination of the driving beat and the laid back groove is infectious.</p> </html> |
| json metadata | {"tags":["nowplaying","snarky","puppy","jazz","modal"],"links":["https://www.youtube.com/watch?v=u78NbWdjSsg"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #20010868/Trx ed8c07f76dbc7b3edecb859783d8c397696b3325 |
View Raw JSON Data
{
"trx_id": "ed8c07f76dbc7b3edecb859783d8c397696b3325",
"block": 20010868,
"trx_in_block": 28,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-19T16:20:30",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "nowplaying",
"author": "jmares",
"permlink": "now-playing-week-8-gemini-by-snarky-puppy",
"title": "Now Playing Week 8 - Gemini By Snarky Puppy",
"body": "<html>\n<h1>Gemini - Snarky Puppy</h1>\n<p>I saw Snarky Puppy live yesterday and thoroughly enjoyed the experience. I have this tune Gemini stuck in my head:</p>\n<p><a href=\"https://www.youtube.com/watch?v=u78NbWdjSsg\">https://www.youtube.com/watch?v=u78NbWdjSsg</a></p>\n<p>The combination of the driving beat and the laid back groove is infectious.</p>\n</html>",
"json_metadata": "{\"tags\":[\"nowplaying\",\"snarky\",\"puppy\",\"jazz\",\"modal\"],\"links\":[\"https://www.youtube.com/watch?v=u78NbWdjSsg\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2018/02/18 16:13:36
2018/02/18 16:13:36
| parent author | jmares |
| parent permlink | basic-proxy-model-support-in-graphene-django |
| author | utopian-io |
| permlink | re-jmares-basic-proxy-model-support-in-graphene-django-20180218t161336554z |
| title | |
| body | ### Hey @jmares I am @utopian-io. I have just upvoted you! #### Achievements - You have less than 500 followers. Just gave you a gift to help you succeed! - This is your first accepted contribution here in Utopian. Welcome! #### Community-Driven Witness! I am the first and only Steem Community-Driven Witness. <a href="https://discord.gg/zTrEMqB">Participate on Discord</a>. Lets GROW TOGETHER! - <a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1">Vote for my Witness With SteemConnect</a> - <a href="https://v2.steemconnect.com/sign/account-witness-proxy?proxy=utopian-io&approve=1">Proxy vote to Utopian Witness with SteemConnect</a> - Or vote/proxy on <a href="https://steemit.com/~witnesses">Steemit Witnesses</a> [](https://steemit.com/~witnesses) **Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x** |
| json metadata | {"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"} |
| Transaction Info | Block #19981936/Trx 0a147d43dfa6860e3f8d2c8990bc9cc7951ceb7a |
View Raw JSON Data
{
"trx_id": "0a147d43dfa6860e3f8d2c8990bc9cc7951ceb7a",
"block": 19981936,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-18T16:13:36",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "basic-proxy-model-support-in-graphene-django",
"author": "utopian-io",
"permlink": "re-jmares-basic-proxy-model-support-in-graphene-django-20180218t161336554z",
"title": "",
"body": "### Hey @jmares I am @utopian-io. I have just upvoted you!\n#### Achievements\n- You have less than 500 followers. Just gave you a gift to help you succeed!\n- This is your first accepted contribution here in Utopian. Welcome!\n#### Community-Driven Witness!\nI am the first and only Steem Community-Driven Witness. <a href=\"https://discord.gg/zTrEMqB\">Participate on Discord</a>. Lets GROW TOGETHER!\n- <a href=\"https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1\">Vote for my Witness With SteemConnect</a>\n- <a href=\"https://v2.steemconnect.com/sign/account-witness-proxy?proxy=utopian-io&approve=1\">Proxy vote to Utopian Witness with SteemConnect</a>\n- Or vote/proxy on <a href=\"https://steemit.com/~witnesses\">Steemit Witnesses</a>\n\n[](https://steemit.com/~witnesses)\n\n**Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x**",
"json_metadata": "{\"tags\":[\"utopian-io\"],\"community\":\"utopian\",\"app\":\"utopian/1.0.0\"}"
}
]
}utopian-ioupvoted (7.76%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/18 16:13:33
utopian-ioupvoted (7.76%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/18 16:13:33
| voter | utopian-io |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 776 (7.76%) |
| Transaction Info | Block #19981935/Trx be4ccd771e3f3c50251cca0dd867bbc271bd6d0a |
View Raw JSON Data
{
"trx_id": "be4ccd771e3f3c50251cca0dd867bbc271bd6d0a",
"block": 19981935,
"trx_in_block": 49,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-18T16:13:33",
"op": [
"vote",
{
"voter": "utopian-io",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 776
}
]
}mikefrancisupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/17 02:11:18
mikefrancisupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/17 02:11:18
| voter | mikefrancis |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 5000 (50.00%) |
| Transaction Info | Block #19936298/Trx a1253a7a025bbac9c5ae453b209cf747d13d6148 |
View Raw JSON Data
{
"trx_id": "a1253a7a025bbac9c5ae453b209cf747d13d6148",
"block": 19936298,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-17T02:11:18",
"op": [
"vote",
{
"voter": "mikefrancis",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 5000
}
]
}arcjen02upvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/17 02:11:12
arcjen02upvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/17 02:11:12
| voter | arcjen02 |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19936296/Trx 035704dff0734c7c89e72e518c7f214b09978243 |
View Raw JSON Data
{
"trx_id": "035704dff0734c7c89e72e518c7f214b09978243",
"block": 19936296,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-17T02:11:12",
"op": [
"vote",
{
"voter": "arcjen02",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 10000
}
]
}grzegorz2047upvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/16 13:42:45
grzegorz2047upvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/16 13:42:45
| voter | grzegorz2047 |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19921345/Trx 5228b623890489b268a319a992889ab52111d07c |
View Raw JSON Data
{
"trx_id": "5228b623890489b268a319a992889ab52111d07c",
"block": 19921345,
"trx_in_block": 36,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T13:42:45",
"op": [
"vote",
{
"voter": "grzegorz2047",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 10000
}
]
}jmaresupvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/16 05:26:42
jmaresupvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/16 05:26:42
| voter | jmares |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19911431/Trx 7dc17cc924d0f09db67f3e704e3a7663eb5fb49f |
View Raw JSON Data
{
"trx_id": "7dc17cc924d0f09db67f3e704e3a7663eb5fb49f",
"block": 19911431,
"trx_in_block": 22,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T05:26:42",
"op": [
"vote",
{
"voter": "jmares",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 10000
}
]
}steemnovaupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/16 05:10:30
steemnovaupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/16 05:10:30
| voter | steemnova |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 5000 (50.00%) |
| Transaction Info | Block #19911107/Trx 9491693d85465ea7e0ec718de0f85504212f92f9 |
View Raw JSON Data
{
"trx_id": "9491693d85465ea7e0ec718de0f85504212f92f9",
"block": 19911107,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T05:10:30",
"op": [
"vote",
{
"voter": "steemnova",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 5000
}
]
}mysupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/16 04:40:15
mysupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/16 04:40:15
| voter | mys |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 5000 (50.00%) |
| Transaction Info | Block #19910503/Trx 31a8e096775a445ed550d0e3ca58cf98a6f551a1 |
View Raw JSON Data
{
"trx_id": "31a8e096775a445ed550d0e3ca58cf98a6f551a1",
"block": 19910503,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T04:40:15",
"op": [
"vote",
{
"voter": "mys",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 5000
}
]
}ciferupvoted (80.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/16 04:36:42
ciferupvoted (80.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/16 04:36:42
| voter | cifer |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 8000 (80.00%) |
| Transaction Info | Block #19910432/Trx 629f9a72dbe826b42a63ee3ea409e121c8118057 |
View Raw JSON Data
{
"trx_id": "629f9a72dbe826b42a63ee3ea409e121c8118057",
"block": 19910432,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T04:36:42",
"op": [
"vote",
{
"voter": "cifer",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 8000
}
]
}codingdefinedupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/16 04:35:39
codingdefinedupvoted (50.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/16 04:35:39
| voter | codingdefined |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 5000 (50.00%) |
| Transaction Info | Block #19910411/Trx e10c367eea62cf06f3079c7849f9219e4be4a4d6 |
View Raw JSON Data
{
"trx_id": "e10c367eea62cf06f3079c7849f9219e4be4a4d6",
"block": 19910411,
"trx_in_block": 40,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T04:35:39",
"op": [
"vote",
{
"voter": "codingdefined",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 5000
}
]
}2018/02/16 04:35:30
2018/02/16 04:35:30
| parent author | jmares |
| parent permlink | basic-proxy-model-support-in-graphene-django |
| author | codingdefined |
| permlink | re-jmares-basic-proxy-model-support-in-graphene-django-20180216t043528890z |
| title | |
| body | Thank you for the contribution. It has been approved. You can contact us on [Discord](https://discord.gg/uTyJkNm). **[[utopian-moderator]](https://utopian.io/moderators)** |
| json metadata | {"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"} |
| Transaction Info | Block #19910408/Trx 2be4aecd48c816b1321fa009b32fbc9deffcc262 |
View Raw JSON Data
{
"trx_id": "2be4aecd48c816b1321fa009b32fbc9deffcc262",
"block": 19910408,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T04:35:30",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "basic-proxy-model-support-in-graphene-django",
"author": "codingdefined",
"permlink": "re-jmares-basic-proxy-model-support-in-graphene-django-20180216t043528890z",
"title": "",
"body": "Thank you for the contribution. It has been approved.\n\nYou can contact us on [Discord](https://discord.gg/uTyJkNm).\n**[[utopian-moderator]](https://utopian.io/moderators)**",
"json_metadata": "{\"tags\":[\"utopian-io\"],\"community\":\"utopian\",\"app\":\"utopian/1.0.0\"}"
}
]
}jmarespublished a new post: basic-proxy-model-support-in-graphene-django2018/02/16 04:35:24
jmarespublished a new post: basic-proxy-model-support-in-graphene-django
2018/02/16 04:35:24
| parent author | |
| parent permlink | utopian-io |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| title | Basic Proxy Model Support in Graphene-Django |
| body | # [Pull Request Link](https://github.com/graphql-python/graphene-django/pull/373) # Summary This PR adds support for querying proxy models in [Graphene-Django](http://docs.graphene-python.org/projects/django/en/latest/). Graphene-Django is a Python library that enables developers to create GraphQL services on top of the Django web framework. Proxy models are an interesting feature of Django. In short, they let you modify the runtime behavior of a model while maintaining the same database table as the superclass. This is contrasted with the typical inheritance model in Django, which will create a separate table for each model. # Motivation At Quorum, we use proxy models in many places. While experimenting with GraphQL, I ran into an issue where some of my queries were failing, and suspected there was an issue with types. It turned out that our proxy models defined their own `__init__` methods which set their class to be the proxy model class at runtime. Graphene did not yet handle this situation. # Details and Example Previously, while you were still able to query for all objects of a particular type, of which some may be proxy models, an error would be thrown if at runtime the Python class were changed. In `graphene_django_types.py` there is a line that verifies that each node in the resulting GraphQL matches the type of the declared type in the schema. I'll use a test case from my PR to illustrate this. Let's say you have a `Reporter` Django model like so: ``` class Reporter(models.Model): first_name = ... last_name ... ``` Your GraphQL schema might look like: ``` class ReporterType(DjangoObjectType): class Meta: model = Reporter # this is your Django model interfaces = (Node, ) use_connection = True ``` then, you might want to query for all Reporters: ``` class Query(graphene.ObjectType): all_reporters = DjangoConnectionFilterField(ReporterType) ``` The line `model == cls._meta.model` [(here)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111) would make sure that the model of each reporter type matches the declared model in the `ReporterType` `meta`. If you had just reporters, this would be totally fine. Let's say you also had another Django model called `CNNReporter` that is a proxy model to of `Reporter`: ``` class CNNReporter(Reporter): class Meta: proxy = True ``` Now, if we override the `__init__` method of the `Reporter` class to modify its class [(link to code)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43), our proxy model instances will have a different type at runtime than instances of Reporter. The line would compare Reporter == CNNReporter, which would fail. If we instead check the `concrete_model` field in the `_meta` of the instance’s model, we will always get the same type for all objects in the query, regardless of proxy model inheritance. In this case, `CNNReporter's` `concrete_model` is `Reporter`. The change is [here](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112). <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@jmares/basic-proxy-model-support-in-graphene-django">Utopian.io - Rewarding Open Source Contributors</a></em><hr/> |
| json metadata | {"community":"utopian","app":"utopian/1.0.0","format":"markdown","repository":{"id":68483365,"name":"graphene-django","full_name":"graphql-python/graphene-django","html_url":"https://github.com/graphql-python/graphene-django","fork":false,"owner":{"login":"graphql-python"}},"pullRequests":[{"url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373","id":162872281,"html_url":"https://github.com/graphql-python/graphene-django/pull/373","diff_url":"https://github.com/graphql-python/graphene-django/pull/373.diff","patch_url":"https://github.com/graphql-python/graphene-django/pull/373.patch","issue_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/373","number":373,"state":"closed","locked":false,"title":"Basic Proxy model support","user":{"login":"jm2242","id":8572502,"avatar_url":"https://avatars1.githubusercontent.com/u/8572502?v=4","gravatar_id":"","url":"https://api.github.com/users/jm2242","html_url":"https://github.com/jm2242","followers_url":"https://api.github.com/users/jm2242/followers","following_url":"https://api.github.com/users/jm2242/following{/other_user}","gists_url":"https://api.github.com/users/jm2242/gists{/gist_id}","starred_url":"https://api.github.com/users/jm2242/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jm2242/subscriptions","organizations_url":"https://api.github.com/users/jm2242/orgs","repos_url":"https://api.github.com/users/jm2242/repos","events_url":"https://api.github.com/users/jm2242/events{/privacy}","received_events_url":"https://api.github.com/users/jm2242/received_events","type":"User","site_admin":false},"body":"This PR, in reference to #319 :\r\n- adds support for querying a table that has proxy model representations in Django, as long as the type is declared to be the superclass (and not the proxy model class). While you could still query for all objects of a particular type, if those objects were cast to a proxy model at runtime, the `is_type_of()` for the object would fail.\r\n~- adds `on_delete` where it was breaking tests due to Django 2 requirement~\r\n- fixes tests associated with the Reporter model, to accommodate an additional field `reporter_type`\r\n\r\nIn the future, a more intentional way of dealing with Proxy models can be considered.\r\n\r\n~There are 4 failing tests that are unrelated to this PR~","created_at":"2018-01-15T05:36:55Z","updated_at":"2018-02-11T21:46:14Z","closed_at":"2018-02-11T21:46:14Z","merged_at":"2018-02-11T21:46:14Z","merge_commit_sha":"c0edb0c927fb5206c3747e0cce40984c2c4d9d49","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits","review_comments_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments","review_comment_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}","comments_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments","statuses_url":"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592","head":{"label":"jm2242:proxy-model-support","ref":"proxy-model-support","sha":"bfcfccfc8daa5e4b85b291d2b6a7fae935edd592","user":{"login":"jm2242","id":8572502,"avatar_url":"https://avatars1.githubusercontent.com/u/8572502?v=4","gravatar_id":"","url":"https://api.github.com/users/jm2242","html_url":"https://github.com/jm2242","followers_url":"https://api.github.com/users/jm2242/followers","following_url":"https://api.github.com/users/jm2242/following{/other_user}","gists_url":"https://api.github.com/users/jm2242/gists{/gist_id}","starred_url":"https://api.github.com/users/jm2242/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jm2242/subscriptions","organizations_url":"https://api.github.com/users/jm2242/orgs","repos_url":"https://api.github.com/users/jm2242/repos","events_url":"https://api.github.com/users/jm2242/events{/privacy}","received_events_url":"https://api.github.com/users/jm2242/received_events","type":"User","site_admin":false},"repo":{"id":110921638,"name":"graphene-django","full_name":"jm2242/graphene-django","owner":{"login":"jm2242","id":8572502,"avatar_url":"https://avatars1.githubusercontent.com/u/8572502?v=4","gravatar_id":"","url":"https://api.github.com/users/jm2242","html_url":"https://github.com/jm2242","followers_url":"https://api.github.com/users/jm2242/followers","following_url":"https://api.github.com/users/jm2242/following{/other_user}","gists_url":"https://api.github.com/users/jm2242/gists{/gist_id}","starred_url":"https://api.github.com/users/jm2242/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jm2242/subscriptions","organizations_url":"https://api.github.com/users/jm2242/orgs","repos_url":"https://api.github.com/users/jm2242/repos","events_url":"https://api.github.com/users/jm2242/events{/privacy}","received_events_url":"https://api.github.com/users/jm2242/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jm2242/graphene-django","description":"Graphene Django integration","fork":true,"url":"https://api.github.com/repos/jm2242/graphene-django","forks_url":"https://api.github.com/repos/jm2242/graphene-django/forks","keys_url":"https://api.github.com/repos/jm2242/graphene-django/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jm2242/graphene-django/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jm2242/graphene-django/teams","hooks_url":"https://api.github.com/repos/jm2242/graphene-django/hooks","issue_events_url":"https://api.github.com/repos/jm2242/graphene-django/issues/events{/number}","events_url":"https://api.github.com/repos/jm2242/graphene-django/events","assignees_url":"https://api.github.com/repos/jm2242/graphene-django/assignees{/user}","branches_url":"https://api.github.com/repos/jm2242/graphene-django/branches{/branch}","tags_url":"https://api.github.com/repos/jm2242/graphene-django/tags","blobs_url":"https://api.github.com/repos/jm2242/graphene-django/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jm2242/graphene-django/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jm2242/graphene-django/git/refs{/sha}","trees_url":"https://api.github.com/repos/jm2242/graphene-django/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jm2242/graphene-django/statuses/{sha}","languages_url":"https://api.github.com/repos/jm2242/graphene-django/languages","stargazers_url":"https://api.github.com/repos/jm2242/graphene-django/stargazers","contributors_url":"https://api.github.com/repos/jm2242/graphene-django/contributors","subscribers_url":"https://api.github.com/repos/jm2242/graphene-django/subscribers","subscription_url":"https://api.github.com/repos/jm2242/graphene-django/subscription","commits_url":"https://api.github.com/repos/jm2242/graphene-django/commits{/sha}","git_commits_url":"https://api.github.com/repos/jm2242/graphene-django/git/commits{/sha}","comments_url":"https://api.github.com/repos/jm2242/graphene-django/comments{/number}","issue_comment_url":"https://api.github.com/repos/jm2242/graphene-django/issues/comments{/number}","contents_url":"https://api.github.com/repos/jm2242/graphene-django/contents/{+path}","compare_url":"https://api.github.com/repos/jm2242/graphene-django/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jm2242/graphene-django/merges","archive_url":"https://api.github.com/repos/jm2242/graphene-django/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jm2242/graphene-django/downloads","issues_url":"https://api.github.com/repos/jm2242/graphene-django/issues{/number}","pulls_url":"https://api.github.com/repos/jm2242/graphene-django/pulls{/number}","milestones_url":"https://api.github.com/repos/jm2242/graphene-django/milestones{/number}","notifications_url":"https://api.github.com/repos/jm2242/graphene-django/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jm2242/graphene-django/labels{/name}","releases_url":"https://api.github.com/repos/jm2242/graphene-django/releases{/id}","deployments_url":"https://api.github.com/repos/jm2242/graphene-django/deployments","created_at":"2017-11-16T04:07:58Z","updated_at":"2017-11-16T04:08:01Z","pushed_at":"2018-02-04T03:51:29Z","git_url":"git://github.com/jm2242/graphene-django.git","ssh_url":"[email protected]:jm2242/graphene-django.git","clone_url":"https://github.com/jm2242/graphene-django.git","svn_url":"https://github.com/jm2242/graphene-django","homepage":"http://docs.graphene-python.org/projects/django/en/latest/","size":329,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"graphql-python:master","ref":"master","sha":"e827b10e7bfdb2b060966ab679f06d6c6ea7633f","user":{"login":"graphql-python","id":15002022,"avatar_url":"https://avatars3.githubusercontent.com/u/15002022?v=4","gravatar_id":"","url":"https://api.github.com/users/graphql-python","html_url":"https://github.com/graphql-python","followers_url":"https://api.github.com/users/graphql-python/followers","following_url":"https://api.github.com/users/graphql-python/following{/other_user}","gists_url":"https://api.github.com/users/graphql-python/gists{/gist_id}","starred_url":"https://api.github.com/users/graphql-python/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphql-python/subscriptions","organizations_url":"https://api.github.com/users/graphql-python/orgs","repos_url":"https://api.github.com/users/graphql-python/repos","events_url":"https://api.github.com/users/graphql-python/events{/privacy}","received_events_url":"https://api.github.com/users/graphql-python/received_events","type":"Organization","site_admin":false},"repo":{"id":68483365,"name":"graphene-django","full_name":"graphql-python/graphene-django","owner":{"login":"graphql-python","id":15002022,"avatar_url":"https://avatars3.githubusercontent.com/u/15002022?v=4","gravatar_id":"","url":"https://api.github.com/users/graphql-python","html_url":"https://github.com/graphql-python","followers_url":"https://api.github.com/users/graphql-python/followers","following_url":"https://api.github.com/users/graphql-python/following{/other_user}","gists_url":"https://api.github.com/users/graphql-python/gists{/gist_id}","starred_url":"https://api.github.com/users/graphql-python/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphql-python/subscriptions","organizations_url":"https://api.github.com/users/graphql-python/orgs","repos_url":"https://api.github.com/users/graphql-python/repos","events_url":"https://api.github.com/users/graphql-python/events{/privacy}","received_events_url":"https://api.github.com/users/graphql-python/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/graphql-python/graphene-django","description":"Graphene Django integration","fork":false,"url":"https://api.github.com/repos/graphql-python/graphene-django","forks_url":"https://api.github.com/repos/graphql-python/graphene-django/forks","keys_url":"https://api.github.com/repos/graphql-python/graphene-django/keys{/key_id}","collaborators_url":"https://api.github.com/repos/graphql-python/graphene-django/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/graphql-python/graphene-django/teams","hooks_url":"https://api.github.com/repos/graphql-python/graphene-django/hooks","issue_events_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/events{/number}","events_url":"https://api.github.com/repos/graphql-python/graphene-django/events","assignees_url":"https://api.github.com/repos/graphql-python/graphene-django/assignees{/user}","branches_url":"https://api.github.com/repos/graphql-python/graphene-django/branches{/branch}","tags_url":"https://api.github.com/repos/graphql-python/graphene-django/tags","blobs_url":"https://api.github.com/repos/graphql-python/graphene-django/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/graphql-python/graphene-django/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/graphql-python/graphene-django/git/refs{/sha}","trees_url":"https://api.github.com/repos/graphql-python/graphene-django/git/trees{/sha}","statuses_url":"https://api.github.com/repos/graphql-python/graphene-django/statuses/{sha}","languages_url":"https://api.github.com/repos/graphql-python/graphene-django/languages","stargazers_url":"https://api.github.com/repos/graphql-python/graphene-django/stargazers","contributors_url":"https://api.github.com/repos/graphql-python/graphene-django/contributors","subscribers_url":"https://api.github.com/repos/graphql-python/graphene-django/subscribers","subscription_url":"https://api.github.com/repos/graphql-python/graphene-django/subscription","commits_url":"https://api.github.com/repos/graphql-python/graphene-django/commits{/sha}","git_commits_url":"https://api.github.com/repos/graphql-python/graphene-django/git/commits{/sha}","comments_url":"https://api.github.com/repos/graphql-python/graphene-django/comments{/number}","issue_comment_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/comments{/number}","contents_url":"https://api.github.com/repos/graphql-python/graphene-django/contents/{+path}","compare_url":"https://api.github.com/repos/graphql-python/graphene-django/compare/{base}...{head}","merges_url":"https://api.github.com/repos/graphql-python/graphene-django/merges","archive_url":"https://api.github.com/repos/graphql-python/graphene-django/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/graphql-python/graphene-django/downloads","issues_url":"https://api.github.com/repos/graphql-python/graphene-django/issues{/number}","pulls_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls{/number}","milestones_url":"https://api.github.com/repos/graphql-python/graphene-django/milestones{/number}","notifications_url":"https://api.github.com/repos/graphql-python/graphene-django/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/graphql-python/graphene-django/labels{/name}","releases_url":"https://api.github.com/repos/graphql-python/graphene-django/releases{/id}","deployments_url":"https://api.github.com/repos/graphql-python/graphene-django/deployments","created_at":"2016-09-17T23:26:25Z","updated_at":"2018-02-13T03:29:19Z","pushed_at":"2018-02-11T22:01:19Z","git_url":"git://github.com/graphql-python/graphene-django.git","ssh_url":"[email protected]:graphql-python/graphene-django.git","clone_url":"https://github.com/graphql-python/graphene-django.git","svn_url":"https://github.com/graphql-python/graphene-django","homepage":"http://docs.graphene-python.org/projects/django/en/latest/","size":382,"stargazers_count":972,"watchers_count":972,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":181,"mirror_url":null,"archived":false,"open_issues_count":155,"license":null,"forks":181,"open_issues":155,"watchers":972,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373"},"html":{"href":"https://github.com/graphql-python/graphene-django/pull/373"},"issue":{"href":"https://api.github.com/repos/graphql-python/graphene-django/issues/373"},"comments":{"href":"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments"},"review_comments":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments"},"review_comment":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits"},"statuses":{"href":"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592"}},"author_association":"CONTRIBUTOR"}],"platform":"github","type":"development","tags":["utopian-io","graphql","graphene-django","graphene","python"],"links":["https://github.com/graphql-python/graphene-django/pull/373","http://docs.graphene-python.org/projects/django/en/latest/","https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111","https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43","https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112"],"moderator":{"account":"codingdefined","time":"2018-02-16T04:35:21.787Z","reviewed":true,"pending":false,"flagged":false},"questions":[],"score":0} |
| Transaction Info | Block #19910406/Trx e118b75750164f6847fe4b40923410c2d0d27b0f |
View Raw JSON Data
{
"trx_id": "e118b75750164f6847fe4b40923410c2d0d27b0f",
"block": 19910406,
"trx_in_block": 36,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T04:35:24",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "utopian-io",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"title": "Basic Proxy Model Support in Graphene-Django",
"body": "# [Pull Request Link](https://github.com/graphql-python/graphene-django/pull/373)\n\n# Summary \nThis PR adds support for querying proxy models in [Graphene-Django](http://docs.graphene-python.org/projects/django/en/latest/). Graphene-Django is a Python library that enables developers to create GraphQL services on top of the Django web framework. \n\nProxy models are an interesting feature of Django. In short, they let you modify the runtime behavior of a model while maintaining the same database table as the superclass. This is contrasted with the typical inheritance model in Django, which will create a separate table for each model.\n\n# Motivation\nAt Quorum, we use proxy models in many places. While experimenting with GraphQL, I ran into an issue where some of my queries were failing, and suspected there was an issue with types. It turned out that our proxy models defined their own `__init__` methods which set their class to be the proxy model class at runtime. Graphene did not yet handle this situation.\n\n# Details and Example\nPreviously, while you were still able to query for all objects of a particular type, of which some may be proxy models, an error would be thrown if at runtime the Python class were changed. In `graphene_django_types.py` there is a line that verifies that each node in the resulting GraphQL matches the type of the declared type in the schema. I'll use a test case from my PR to illustrate this. \n\nLet's say you have a `Reporter` Django model like so:\n\n\n```\nclass Reporter(models.Model):\n first_name = ...\n last_name\n ...\n```\n\nYour GraphQL schema might look like:\n```\nclass ReporterType(DjangoObjectType):\n class Meta:\n model = Reporter # this is your Django model\n interfaces = (Node, )\n use_connection = True\n```\n\nthen, you might want to query for all Reporters:\n\n```\nclass Query(graphene.ObjectType):\n all_reporters = DjangoConnectionFilterField(ReporterType)\n```\n\nThe line `model == cls._meta.model` [(here)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111) would make sure that the model of each reporter type matches the declared model in the `ReporterType` `meta`. If you had just reporters, this would be totally fine.\n\nLet's say you also had another Django model called `CNNReporter` that is a proxy model to of `Reporter`:\n\n```\nclass CNNReporter(Reporter):\n class Meta:\n proxy = True\n\n```\n\nNow, if we override the `__init__` method of the `Reporter` class to modify its class [(link to code)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43), our proxy model instances will have a different type at runtime than instances of Reporter. The line would compare Reporter == CNNReporter, which would fail.\n\nIf we instead check the `concrete_model` field in the `_meta` of the instance’s model, we will always get the same type for all objects in the query, regardless of proxy model inheritance. In this case, `CNNReporter's` `concrete_model` is `Reporter`. The change is [here](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112). \n\n<br /><hr/><em>Posted on <a href=\"https://utopian.io/utopian-io/@jmares/basic-proxy-model-support-in-graphene-django\">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>",
"json_metadata": "{\"community\":\"utopian\",\"app\":\"utopian/1.0.0\",\"format\":\"markdown\",\"repository\":{\"id\":68483365,\"name\":\"graphene-django\",\"full_name\":\"graphql-python/graphene-django\",\"html_url\":\"https://github.com/graphql-python/graphene-django\",\"fork\":false,\"owner\":{\"login\":\"graphql-python\"}},\"pullRequests\":[{\"url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373\",\"id\":162872281,\"html_url\":\"https://github.com/graphql-python/graphene-django/pull/373\",\"diff_url\":\"https://github.com/graphql-python/graphene-django/pull/373.diff\",\"patch_url\":\"https://github.com/graphql-python/graphene-django/pull/373.patch\",\"issue_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373\",\"number\":373,\"state\":\"closed\",\"locked\":false,\"title\":\"Basic Proxy model support\",\"user\":{\"login\":\"jm2242\",\"id\":8572502,\"avatar_url\":\"https://avatars1.githubusercontent.com/u/8572502?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jm2242\",\"html_url\":\"https://github.com/jm2242\",\"followers_url\":\"https://api.github.com/users/jm2242/followers\",\"following_url\":\"https://api.github.com/users/jm2242/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jm2242/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jm2242/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jm2242/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jm2242/orgs\",\"repos_url\":\"https://api.github.com/users/jm2242/repos\",\"events_url\":\"https://api.github.com/users/jm2242/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jm2242/received_events\",\"type\":\"User\",\"site_admin\":false},\"body\":\"This PR, in reference to #319 :\\r\\n- adds support for querying a table that has proxy model representations in Django, as long as the type is declared to be the superclass (and not the proxy model class). While you could still query for all objects of a particular type, if those objects were cast to a proxy model at runtime, the `is_type_of()` for the object would fail.\\r\\n~- adds `on_delete` where it was breaking tests due to Django 2 requirement~\\r\\n- fixes tests associated with the Reporter model, to accommodate an additional field `reporter_type`\\r\\n\\r\\nIn the future, a more intentional way of dealing with Proxy models can be considered.\\r\\n\\r\\n~There are 4 failing tests that are unrelated to this PR~\",\"created_at\":\"2018-01-15T05:36:55Z\",\"updated_at\":\"2018-02-11T21:46:14Z\",\"closed_at\":\"2018-02-11T21:46:14Z\",\"merged_at\":\"2018-02-11T21:46:14Z\",\"merge_commit_sha\":\"c0edb0c927fb5206c3747e0cce40984c2c4d9d49\",\"assignee\":null,\"assignees\":[],\"requested_reviewers\":[],\"requested_teams\":[],\"labels\":[],\"milestone\":null,\"commits_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits\",\"review_comments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments\",\"review_comment_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}\",\"comments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments\",\"statuses_url\":\"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592\",\"head\":{\"label\":\"jm2242:proxy-model-support\",\"ref\":\"proxy-model-support\",\"sha\":\"bfcfccfc8daa5e4b85b291d2b6a7fae935edd592\",\"user\":{\"login\":\"jm2242\",\"id\":8572502,\"avatar_url\":\"https://avatars1.githubusercontent.com/u/8572502?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jm2242\",\"html_url\":\"https://github.com/jm2242\",\"followers_url\":\"https://api.github.com/users/jm2242/followers\",\"following_url\":\"https://api.github.com/users/jm2242/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jm2242/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jm2242/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jm2242/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jm2242/orgs\",\"repos_url\":\"https://api.github.com/users/jm2242/repos\",\"events_url\":\"https://api.github.com/users/jm2242/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jm2242/received_events\",\"type\":\"User\",\"site_admin\":false},\"repo\":{\"id\":110921638,\"name\":\"graphene-django\",\"full_name\":\"jm2242/graphene-django\",\"owner\":{\"login\":\"jm2242\",\"id\":8572502,\"avatar_url\":\"https://avatars1.githubusercontent.com/u/8572502?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jm2242\",\"html_url\":\"https://github.com/jm2242\",\"followers_url\":\"https://api.github.com/users/jm2242/followers\",\"following_url\":\"https://api.github.com/users/jm2242/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jm2242/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jm2242/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jm2242/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jm2242/orgs\",\"repos_url\":\"https://api.github.com/users/jm2242/repos\",\"events_url\":\"https://api.github.com/users/jm2242/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jm2242/received_events\",\"type\":\"User\",\"site_admin\":false},\"private\":false,\"html_url\":\"https://github.com/jm2242/graphene-django\",\"description\":\"Graphene Django integration\",\"fork\":true,\"url\":\"https://api.github.com/repos/jm2242/graphene-django\",\"forks_url\":\"https://api.github.com/repos/jm2242/graphene-django/forks\",\"keys_url\":\"https://api.github.com/repos/jm2242/graphene-django/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jm2242/graphene-django/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jm2242/graphene-django/teams\",\"hooks_url\":\"https://api.github.com/repos/jm2242/graphene-django/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jm2242/graphene-django/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jm2242/graphene-django/events\",\"assignees_url\":\"https://api.github.com/repos/jm2242/graphene-django/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jm2242/graphene-django/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jm2242/graphene-django/tags\",\"blobs_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jm2242/graphene-django/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jm2242/graphene-django/languages\",\"stargazers_url\":\"https://api.github.com/repos/jm2242/graphene-django/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jm2242/graphene-django/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jm2242/graphene-django/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jm2242/graphene-django/subscription\",\"commits_url\":\"https://api.github.com/repos/jm2242/graphene-django/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jm2242/graphene-django/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jm2242/graphene-django/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/jm2242/graphene-django/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jm2242/graphene-django/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jm2242/graphene-django/merges\",\"archive_url\":\"https://api.github.com/repos/jm2242/graphene-django/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jm2242/graphene-django/downloads\",\"issues_url\":\"https://api.github.com/repos/jm2242/graphene-django/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jm2242/graphene-django/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jm2242/graphene-django/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jm2242/graphene-django/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jm2242/graphene-django/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/jm2242/graphene-django/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/jm2242/graphene-django/deployments\",\"created_at\":\"2017-11-16T04:07:58Z\",\"updated_at\":\"2017-11-16T04:08:01Z\",\"pushed_at\":\"2018-02-04T03:51:29Z\",\"git_url\":\"git://github.com/jm2242/graphene-django.git\",\"ssh_url\":\"[email protected]:jm2242/graphene-django.git\",\"clone_url\":\"https://github.com/jm2242/graphene-django.git\",\"svn_url\":\"https://github.com/jm2242/graphene-django\",\"homepage\":\"http://docs.graphene-python.org/projects/django/en/latest/\",\"size\":329,\"stargazers_count\":0,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"forks_count\":0,\"mirror_url\":null,\"archived\":false,\"open_issues_count\":0,\"license\":null,\"forks\":0,\"open_issues\":0,\"watchers\":0,\"default_branch\":\"master\"}},\"base\":{\"label\":\"graphql-python:master\",\"ref\":\"master\",\"sha\":\"e827b10e7bfdb2b060966ab679f06d6c6ea7633f\",\"user\":{\"login\":\"graphql-python\",\"id\":15002022,\"avatar_url\":\"https://avatars3.githubusercontent.com/u/15002022?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/graphql-python\",\"html_url\":\"https://github.com/graphql-python\",\"followers_url\":\"https://api.github.com/users/graphql-python/followers\",\"following_url\":\"https://api.github.com/users/graphql-python/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/graphql-python/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/graphql-python/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/graphql-python/subscriptions\",\"organizations_url\":\"https://api.github.com/users/graphql-python/orgs\",\"repos_url\":\"https://api.github.com/users/graphql-python/repos\",\"events_url\":\"https://api.github.com/users/graphql-python/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/graphql-python/received_events\",\"type\":\"Organization\",\"site_admin\":false},\"repo\":{\"id\":68483365,\"name\":\"graphene-django\",\"full_name\":\"graphql-python/graphene-django\",\"owner\":{\"login\":\"graphql-python\",\"id\":15002022,\"avatar_url\":\"https://avatars3.githubusercontent.com/u/15002022?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/graphql-python\",\"html_url\":\"https://github.com/graphql-python\",\"followers_url\":\"https://api.github.com/users/graphql-python/followers\",\"following_url\":\"https://api.github.com/users/graphql-python/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/graphql-python/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/graphql-python/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/graphql-python/subscriptions\",\"organizations_url\":\"https://api.github.com/users/graphql-python/orgs\",\"repos_url\":\"https://api.github.com/users/graphql-python/repos\",\"events_url\":\"https://api.github.com/users/graphql-python/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/graphql-python/received_events\",\"type\":\"Organization\",\"site_admin\":false},\"private\":false,\"html_url\":\"https://github.com/graphql-python/graphene-django\",\"description\":\"Graphene Django integration\",\"fork\":false,\"url\":\"https://api.github.com/repos/graphql-python/graphene-django\",\"forks_url\":\"https://api.github.com/repos/graphql-python/graphene-django/forks\",\"keys_url\":\"https://api.github.com/repos/graphql-python/graphene-django/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/graphql-python/graphene-django/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/graphql-python/graphene-django/teams\",\"hooks_url\":\"https://api.github.com/repos/graphql-python/graphene-django/hooks\",\"issue_events_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/graphql-python/graphene-django/events\",\"assignees_url\":\"https://api.github.com/repos/graphql-python/graphene-django/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/graphql-python/graphene-django/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/graphql-python/graphene-django/tags\",\"blobs_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/graphql-python/graphene-django/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/graphql-python/graphene-django/languages\",\"stargazers_url\":\"https://api.github.com/repos/graphql-python/graphene-django/stargazers\",\"contributors_url\":\"https://api.github.com/repos/graphql-python/graphene-django/contributors\",\"subscribers_url\":\"https://api.github.com/repos/graphql-python/graphene-django/subscribers\",\"subscription_url\":\"https://api.github.com/repos/graphql-python/graphene-django/subscription\",\"commits_url\":\"https://api.github.com/repos/graphql-python/graphene-django/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/graphql-python/graphene-django/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/graphql-python/graphene-django/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/graphql-python/graphene-django/merges\",\"archive_url\":\"https://api.github.com/repos/graphql-python/graphene-django/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/graphql-python/graphene-django/downloads\",\"issues_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/graphql-python/graphene-django/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/graphql-python/graphene-django/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/graphql-python/graphene-django/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/graphql-python/graphene-django/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/deployments\",\"created_at\":\"2016-09-17T23:26:25Z\",\"updated_at\":\"2018-02-13T03:29:19Z\",\"pushed_at\":\"2018-02-11T22:01:19Z\",\"git_url\":\"git://github.com/graphql-python/graphene-django.git\",\"ssh_url\":\"[email protected]:graphql-python/graphene-django.git\",\"clone_url\":\"https://github.com/graphql-python/graphene-django.git\",\"svn_url\":\"https://github.com/graphql-python/graphene-django\",\"homepage\":\"http://docs.graphene-python.org/projects/django/en/latest/\",\"size\":382,\"stargazers_count\":972,\"watchers_count\":972,\"language\":\"Python\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"forks_count\":181,\"mirror_url\":null,\"archived\":false,\"open_issues_count\":155,\"license\":null,\"forks\":181,\"open_issues\":155,\"watchers\":972,\"default_branch\":\"master\"}},\"_links\":{\"self\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373\"},\"html\":{\"href\":\"https://github.com/graphql-python/graphene-django/pull/373\"},\"issue\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373\"},\"comments\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments\"},\"review_comments\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments\"},\"review_comment\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}\"},\"commits\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits\"},\"statuses\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592\"}},\"author_association\":\"CONTRIBUTOR\"}],\"platform\":\"github\",\"type\":\"development\",\"tags\":[\"utopian-io\",\"graphql\",\"graphene-django\",\"graphene\",\"python\"],\"links\":[\"https://github.com/graphql-python/graphene-django/pull/373\",\"http://docs.graphene-python.org/projects/django/en/latest/\",\"https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111\",\"https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43\",\"https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112\"],\"moderator\":{\"account\":\"codingdefined\",\"time\":\"2018-02-16T04:35:21.787Z\",\"reviewed\":true,\"pending\":false,\"flagged\":false},\"questions\":[],\"score\":0}"
}
]
}chadgarberupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/16 01:29:30
chadgarberupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/16 01:29:30
| voter | chadgarber |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19906691/Trx ab4d69339ba190a2b5072a6815b7fc18c21ef21c |
View Raw JSON Data
{
"trx_id": "ab4d69339ba190a2b5072a6815b7fc18c21ef21c",
"block": 19906691,
"trx_in_block": 56,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-16T01:29:30",
"op": [
"vote",
{
"voter": "chadgarber",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}passion-groundupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 15:34:09
passion-groundupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 15:34:09
| voter | passion-ground |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 500 (5.00%) |
| Transaction Info | Block #19894796/Trx dd7cedf0514803f31db9151672e21513f6f830d2 |
View Raw JSON Data
{
"trx_id": "dd7cedf0514803f31db9151672e21513f6f830d2",
"block": 19894796,
"trx_in_block": 25,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T15:34:09",
"op": [
"vote",
{
"voter": "passion-ground",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 500
}
]
}learnguitarupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 08:38:54
learnguitarupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 08:38:54
| voter | learnguitar |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19886496/Trx 7e7a734a1c61a55bfd867ee56b2ec8926ce3e38b |
View Raw JSON Data
{
"trx_id": "7e7a734a1c61a55bfd867ee56b2ec8926ce3e38b",
"block": 19886496,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T08:38:54",
"op": [
"vote",
{
"voter": "learnguitar",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}2018/02/15 03:13:03
2018/02/15 03:13:03
| parent author | jmares |
| parent permlink | steemit-open-mic-week-72-all-the-things-you-are |
| author | manznothot |
| permlink | re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180215t031304954z |
| title | |
| body | you guys killed it! |
| json metadata | {"tags":["openmic"],"app":"steemit/0.1"} |
| Transaction Info | Block #19879981/Trx d7822f2f37438d1dd4426eb41e7266e2797c63fe |
View Raw JSON Data
{
"trx_id": "d7822f2f37438d1dd4426eb41e7266e2797c63fe",
"block": 19879981,
"trx_in_block": 86,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T03:13:03",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"author": "manznothot",
"permlink": "re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180215t031304954z",
"title": "",
"body": "you guys killed it!",
"json_metadata": "{\"tags\":[\"openmic\"],\"app\":\"steemit/0.1\"}"
}
]
}lloyddavisupvoted (0.50%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:33:51
lloyddavisupvoted (0.50%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:33:51
| voter | lloyddavis |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 50 (0.50%) |
| Transaction Info | Block #19879197/Trx 22cdfe40dd540d318ccc834aca377eebfc2819a5 |
View Raw JSON Data
{
"trx_id": "22cdfe40dd540d318ccc834aca377eebfc2819a5",
"block": 19879197,
"trx_in_block": 35,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:33:51",
"op": [
"vote",
{
"voter": "lloyddavis",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 50
}
]
}enlilupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:33:51
enlilupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:33:51
| voter | enlil |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 500 (5.00%) |
| Transaction Info | Block #19879197/Trx e6bcc46589a03a0193ad0caa30b0bc30e7e82017 |
View Raw JSON Data
{
"trx_id": "e6bcc46589a03a0193ad0caa30b0bc30e7e82017",
"block": 19879197,
"trx_in_block": 34,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:33:51",
"op": [
"vote",
{
"voter": "enlil",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 500
}
]
}adolupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:33:51
adolupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:33:51
| voter | adol |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 500 (5.00%) |
| Transaction Info | Block #19879197/Trx 42517d77dcd08abc665240feb32c97c67a981f85 |
View Raw JSON Data
{
"trx_id": "42517d77dcd08abc665240feb32c97c67a981f85",
"block": 19879197,
"trx_in_block": 31,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:33:51",
"op": [
"vote",
{
"voter": "adol",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 500
}
]
}g10aupvoted (0.50%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:15:00
g10aupvoted (0.50%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:15:00
| voter | g10a |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 50 (0.50%) |
| Transaction Info | Block #19878821/Trx 134ed654ef47721e9f5e90f1aa52080a6596569f |
View Raw JSON Data
{
"trx_id": "134ed654ef47721e9f5e90f1aa52080a6596569f",
"block": 19878821,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:15:00",
"op": [
"vote",
{
"voter": "g10a",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 50
}
]
}ausbitbankupvoted (1.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:14:15
ausbitbankupvoted (1.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:14:15
| voter | ausbitbank |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 100 (1.00%) |
| Transaction Info | Block #19878806/Trx d30abbd00f98a61f70351c479c2d58e61aa343cf |
View Raw JSON Data
{
"trx_id": "d30abbd00f98a61f70351c479c2d58e61aa343cf",
"block": 19878806,
"trx_in_block": 29,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:14:15",
"op": [
"vote",
{
"voter": "ausbitbank",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 100
}
]
}2018/02/15 02:13:33
2018/02/15 02:13:33
| parent author | jmares |
| parent permlink | steemit-open-mic-week-72-all-the-things-you-are |
| author | luzcypher |
| permlink | re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180215t021334180z |
| title | |
| body | Nice performance guys. Love it. <center>[](https://steemit.com/@luzcypher)</center> |
| json metadata | {"tags":["openmic"],"image":["https://s2.postimg.org/6vopguqh5/thanks_for_playing_steemit_open_mic.png"],"links":["https://steemit.com/@luzcypher"],"app":"steemit/0.1"} |
| Transaction Info | Block #19878792/Trx 9dd958cbb90c5a5c8354da9ffb7ef29b5023eb01 |
View Raw JSON Data
{
"trx_id": "9dd958cbb90c5a5c8354da9ffb7ef29b5023eb01",
"block": 19878792,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:33",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"author": "luzcypher",
"permlink": "re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180215t021334180z",
"title": "",
"body": "Nice performance guys. Love it.\n\n\n<center>[](https://steemit.com/@luzcypher)</center>",
"json_metadata": "{\"tags\":[\"openmic\"],\"image\":[\"https://s2.postimg.org/6vopguqh5/thanks_for_playing_steemit_open_mic.png\"],\"links\":[\"https://steemit.com/@luzcypher\"],\"app\":\"steemit/0.1\"}"
}
]
}ljvupvoted (4.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:13:27
ljvupvoted (4.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:13:27
| voter | ljv |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 400 (4.00%) |
| Transaction Info | Block #19878790/Trx 3ddd58e8ac85f7d61d79798f2bb0b8fd84c76d49 |
View Raw JSON Data
{
"trx_id": "3ddd58e8ac85f7d61d79798f2bb0b8fd84c76d49",
"block": 19878790,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:27",
"op": [
"vote",
{
"voter": "ljv",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 400
}
]
}pechichemenaupvoted (3.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:13:27
pechichemenaupvoted (3.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:13:27
| voter | pechichemena |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 300 (3.00%) |
| Transaction Info | Block #19878790/Trx 34bbe4a24d507fd591f6361648463ad1d139b80f |
View Raw JSON Data
{
"trx_id": "34bbe4a24d507fd591f6361648463ad1d139b80f",
"block": 19878790,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:27",
"op": [
"vote",
{
"voter": "pechichemena",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 300
}
]
}bennettitaliaupvoted (1.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:13:27
bennettitaliaupvoted (1.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:13:27
| voter | bennettitalia |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 100 (1.00%) |
| Transaction Info | Block #19878790/Trx 75a8bbcd0371189c0afdfc895260d777b5b38c27 |
View Raw JSON Data
{
"trx_id": "75a8bbcd0371189c0afdfc895260d777b5b38c27",
"block": 19878790,
"trx_in_block": 14,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:27",
"op": [
"vote",
{
"voter": "bennettitalia",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 100
}
]
}trevorpetrieupvoted (10.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:13:27
trevorpetrieupvoted (10.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:13:27
| voter | trevorpetrie |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 1000 (10.00%) |
| Transaction Info | Block #19878790/Trx 41e7bfaa8a3be01dc5ca1a5c52aaa62c79ddeb55 |
View Raw JSON Data
{
"trx_id": "41e7bfaa8a3be01dc5ca1a5c52aaa62c79ddeb55",
"block": 19878790,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:27",
"op": [
"vote",
{
"voter": "trevorpetrie",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 1000
}
]
}krystleupvoted (10.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:13:27
krystleupvoted (10.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:13:27
| voter | krystle |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 1000 (10.00%) |
| Transaction Info | Block #19878790/Trx b77f40da4161940cd6340bfc8c308d67a3421af8 |
View Raw JSON Data
{
"trx_id": "b77f40da4161940cd6340bfc8c308d67a3421af8",
"block": 19878790,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:27",
"op": [
"vote",
{
"voter": "krystle",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 1000
}
]
}openmicupvoted (10.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:13:21
openmicupvoted (10.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:13:21
| voter | openmic |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 1000 (10.00%) |
| Transaction Info | Block #19878788/Trx 66877f0bfc2cdb0c2aa1969d4935b6d099e84238 |
View Raw JSON Data
{
"trx_id": "66877f0bfc2cdb0c2aa1969d4935b6d099e84238",
"block": 19878788,
"trx_in_block": 37,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:13:21",
"op": [
"vote",
{
"voter": "openmic",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 1000
}
]
}luzcypherupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/15 02:12:33
luzcypherupvoted (5.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/15 02:12:33
| voter | luzcypher |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 500 (5.00%) |
| Transaction Info | Block #19878772/Trx 82304d824bec1a38921077f7dc762d2bbe14af47 |
View Raw JSON Data
{
"trx_id": "82304d824bec1a38921077f7dc762d2bbe14af47",
"block": 19878772,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-15T02:12:33",
"op": [
"vote",
{
"voter": "luzcypher",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 500
}
]
}2018/02/14 21:29:27
2018/02/14 21:29:27
| parent author | jmares |
| parent permlink | steemit-open-mic-week-72-all-the-things-you-are |
| author | popsoz |
| permlink | re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180214t212927223z |
| title | |
| body | I think I'm going to fix myself a stiff Manhatten and listen to this again and transport myself to a nice jazz bar. Nice job guys!!!!! |
| json metadata | {"tags":["openmic"],"app":"steemit/0.1"} |
| Transaction Info | Block #19873115/Trx db01967fd1770740c9d76c4e97fdc01a81019a25 |
View Raw JSON Data
{
"trx_id": "db01967fd1770740c9d76c4e97fdc01a81019a25",
"block": 19873115,
"trx_in_block": 38,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-14T21:29:27",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"author": "popsoz",
"permlink": "re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180214t212927223z",
"title": "",
"body": "I think I'm going to fix myself a stiff Manhatten and listen to this again and transport myself to a nice jazz bar. Nice job guys!!!!!",
"json_metadata": "{\"tags\":[\"openmic\"],\"app\":\"steemit/0.1\"}"
}
]
}popsozupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/14 21:28:27
popsozupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/14 21:28:27
| voter | popsoz |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19873095/Trx 663a33c0c9ac4ac12b806337d303c8436a257ad8 |
View Raw JSON Data
{
"trx_id": "663a33c0c9ac4ac12b806337d303c8436a257ad8",
"block": 19873095,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-14T21:28:27",
"op": [
"vote",
{
"voter": "popsoz",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}alepianistupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/14 12:22:15
alepianistupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/14 12:22:15
| voter | alepianist |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19862190/Trx 1386e7334caf7ee230fa0261709bb708e2f960e1 |
View Raw JSON Data
{
"trx_id": "1386e7334caf7ee230fa0261709bb708e2f960e1",
"block": 19862190,
"trx_in_block": 20,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-14T12:22:15",
"op": [
"vote",
{
"voter": "alepianist",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}mattockfsupvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/14 08:02:06
mattockfsupvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/14 08:02:06
| voter | mattockfs |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19856996/Trx 12cff7e1994de6d72f8207b84e5f98c1837ed79a |
View Raw JSON Data
{
"trx_id": "12cff7e1994de6d72f8207b84e5f98c1837ed79a",
"block": 19856996,
"trx_in_block": 47,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-14T08:02:06",
"op": [
"vote",
{
"voter": "mattockfs",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 10000
}
]
}2018/02/13 22:29:15
2018/02/13 22:29:15
| parent author | jmares |
| parent permlink | steemit-open-mic-week-72-all-the-things-you-are |
| author | awesomeabasiono |
| permlink | re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180213t222910630z |
| title | |
| body | I feel like it's one of the nights during a vacation where I can sit under this rhythm for as long as it never ends. |
| json metadata | {"tags":["openmic"],"app":"steemit/0.1"} |
| Transaction Info | Block #19845555/Trx d692a56b5f0e3572b0783c566d7fe7e7ba8829b1 |
View Raw JSON Data
{
"trx_id": "d692a56b5f0e3572b0783c566d7fe7e7ba8829b1",
"block": 19845555,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T22:29:15",
"op": [
"comment",
{
"parent_author": "jmares",
"parent_permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"author": "awesomeabasiono",
"permlink": "re-jmares-steemit-open-mic-week-72-all-the-things-you-are-20180213t222910630z",
"title": "",
"body": "I feel like it's one of the nights during a vacation where I can sit under this rhythm for as long as it never ends.",
"json_metadata": "{\"tags\":[\"openmic\"],\"app\":\"steemit/0.1\"}"
}
]
}jmaresupdated their account properties2018/02/13 20:05:03
jmaresupdated their account properties
2018/02/13 20:05:03
| account | jmares |
| memo key | STM7RDEJr8awedzCFxLt1oYAeiRorESHrHiCCKBvu4JDVttAyAKKQ |
| json metadata | {"profile":{"profile_image":"https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no","name":"Jonathan","location":"Washington DC","website":"http://jonathanmares.com","about":"Software Engineer and Musician"}} |
| Transaction Info | Block #19842672/Trx a77dc5248b979f9338ea6b8bb79369bedf002f52 |
View Raw JSON Data
{
"trx_id": "a77dc5248b979f9338ea6b8bb79369bedf002f52",
"block": 19842672,
"trx_in_block": 43,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T20:05:03",
"op": [
"account_update",
{
"account": "jmares",
"memo_key": "STM7RDEJr8awedzCFxLt1oYAeiRorESHrHiCCKBvu4JDVttAyAKKQ",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no\",\"name\":\"Jonathan\",\"location\":\"Washington DC\",\"website\":\"http://jonathanmares.com\",\"about\":\"Software Engineer and Musician\"}}"
}
]
}walnut1upvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/13 19:19:09
walnut1upvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/13 19:19:09
| voter | walnut1 |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19841754/Trx 12b2677dbdb7d24a5792200187bbcdf2ef459ca4 |
View Raw JSON Data
{
"trx_id": "12b2677dbdb7d24a5792200187bbcdf2ef459ca4",
"block": 19841754,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T19:19:09",
"op": [
"vote",
{
"voter": "walnut1",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 10000
}
]
}manznothotupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/13 18:24:27
manznothotupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/13 18:24:27
| voter | manznothot |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19840662/Trx c25702a93b69bf43b6f48579502e83df756dffb0 |
View Raw JSON Data
{
"trx_id": "c25702a93b69bf43b6f48579502e83df756dffb0",
"block": 19840662,
"trx_in_block": 52,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T18:24:27",
"op": [
"vote",
{
"voter": "manznothot",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}manznothotupvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django2018/02/13 18:24:24
manznothotupvoted (100.00%) @jmares / basic-proxy-model-support-in-graphene-django
2018/02/13 18:24:24
| voter | manznothot |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19840661/Trx 7dbb1494781adfccd46bfcfb06a39d04c96550e8 |
View Raw JSON Data
{
"trx_id": "7dbb1494781adfccd46bfcfb06a39d04c96550e8",
"block": 19840661,
"trx_in_block": 35,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T18:24:24",
"op": [
"vote",
{
"voter": "manznothot",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"weight": 10000
}
]
}mochawooupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/13 17:54:48
mochawooupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/13 17:54:48
| voter | mochawoo |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19840070/Trx ddcbb602db1678188c9568c1db5eb880888847c1 |
View Raw JSON Data
{
"trx_id": "ddcbb602db1678188c9568c1db5eb880888847c1",
"block": 19840070,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T17:54:48",
"op": [
"vote",
{
"voter": "mochawoo",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}walnut1upvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/13 16:57:33
walnut1upvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/13 16:57:33
| voter | walnut1 |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19838926/Trx abd692d29749fc01452f0b009a8e0e881d1d9374 |
View Raw JSON Data
{
"trx_id": "abd692d29749fc01452f0b009a8e0e881d1d9374",
"block": 19838926,
"trx_in_block": 43,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T16:57:33",
"op": [
"vote",
{
"voter": "walnut1",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}jmaresupdated options for basic-proxy-model-support-in-graphene-django2018/02/13 16:56:24
jmaresupdated options for basic-proxy-model-support-in-graphene-django
2018/02/13 16:56:24
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| max accepted payout | 1000000.000 SBD |
| percent steem dollars | 10000 |
| allow votes | true |
| allow curation rewards | true |
| extensions | [[0,{"beneficiaries":[{"account":"utopian.pay","weight":2500}]}]] |
| Transaction Info | Block #19838903/Trx 1389d9c225e97747421a01e99860ff184acd1b19 |
View Raw JSON Data
{
"trx_id": "1389d9c225e97747421a01e99860ff184acd1b19",
"block": 19838903,
"trx_in_block": 49,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T16:56:24",
"op": [
"comment_options",
{
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"max_accepted_payout": "1000000.000 SBD",
"percent_steem_dollars": 10000,
"allow_votes": true,
"allow_curation_rewards": true,
"extensions": [
[
0,
{
"beneficiaries": [
{
"account": "utopian.pay",
"weight": 2500
}
]
}
]
]
}
]
}jmarespublished a new post: basic-proxy-model-support-in-graphene-django2018/02/13 16:56:24
jmarespublished a new post: basic-proxy-model-support-in-graphene-django
2018/02/13 16:56:24
| parent author | |
| parent permlink | utopian-io |
| author | jmares |
| permlink | basic-proxy-model-support-in-graphene-django |
| title | Basic Proxy Model Support in Graphene-Django |
| body | # [Pull Request Link](https://github.com/graphql-python/graphene-django/pull/373) # Summary This PR adds support for querying proxy models in [Graphene-Django](http://docs.graphene-python.org/projects/django/en/latest/). Graphene-Django is a Python library that enables developers to create GraphQL services on top of the Django web framework. Proxy models are an interesting feature of Django. In short, they let you modify the runtime behavior of a model while maintaining the same database table as the superclass. This is contrasted with the typical inheritance model in Django, which will create a separate table for each model. # Motivation At Quorum, we use proxy models in many places. While experimenting with GraphQL, I ran into an issue where some of my queries were failing, and suspected there was an issue with types. It turned out that our proxy models defined their own `__init__` methods which set their class to be the proxy model class at runtime. Graphene did not yet handle this situation. # Details and Example Previously, while you were still able to query for all objects of a particular type, of which some may be proxy models, an error would be thrown if at runtime the Python class were changed. In `graphene_django_types.py` there is a line that verifies that each node in the resulting GraphQL matches the type of the declared type in the schema. I'll use a test case from my PR to illustrate this. Let's say you have a `Reporter` Django model like so: ``` class Reporter(models.Model): first_name = ... last_name ... ``` Your GraphQL schema might look like: ``` class ReporterType(DjangoObjectType): class Meta: model = Reporter # this is your Django model interfaces = (Node, ) use_connection = True ``` then, you might want to query for all Reporters: ``` class Query(graphene.ObjectType): all_reporters = DjangoConnectionFilterField(ReporterType) ``` The line `model == cls._meta.model` [(here)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111) would make sure that the model of each reporter type matches the declared model in the `ReporterType` `meta`. If you had just reporters, this would be totally fine. Let's say you also had another Django model called `CNNReporter` that is a proxy model to of `Reporter`: ``` class CNNReporter(Reporter): class Meta: proxy = True ``` Now, if we override the `__init__` method of the `Reporter` class to modify its class [(link to code)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43), our proxy model instances will have a different type at runtime than instances of Reporter. The line would compare Reporter == CNNReporter, which would fail. If we instead check the `concrete_model` field in the `_meta` of the instance’s model, we will always get the same type for all objects in the query, regardless of proxy model inheritance. In this case, `CNNReporter's` `concrete_model` is `Reporter`. The change is [here](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112). <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@jmares/basic-proxy-model-support-in-graphene-django">Utopian.io - Rewarding Open Source Contributors</a></em><hr/> |
| json metadata | {"community":"utopian","app":"utopian/1.0.0","format":"markdown","repository":{"id":68483365,"name":"graphene-django","full_name":"graphql-python/graphene-django","html_url":"https://github.com/graphql-python/graphene-django","fork":false,"owner":{"login":"graphql-python"}},"pullRequests":[{"url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373","id":162872281,"html_url":"https://github.com/graphql-python/graphene-django/pull/373","diff_url":"https://github.com/graphql-python/graphene-django/pull/373.diff","patch_url":"https://github.com/graphql-python/graphene-django/pull/373.patch","issue_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/373","number":373,"state":"closed","locked":false,"title":"Basic Proxy model support","user":{"login":"jm2242","id":8572502,"avatar_url":"https://avatars1.githubusercontent.com/u/8572502?v=4","gravatar_id":"","url":"https://api.github.com/users/jm2242","html_url":"https://github.com/jm2242","followers_url":"https://api.github.com/users/jm2242/followers","following_url":"https://api.github.com/users/jm2242/following{/other_user}","gists_url":"https://api.github.com/users/jm2242/gists{/gist_id}","starred_url":"https://api.github.com/users/jm2242/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jm2242/subscriptions","organizations_url":"https://api.github.com/users/jm2242/orgs","repos_url":"https://api.github.com/users/jm2242/repos","events_url":"https://api.github.com/users/jm2242/events{/privacy}","received_events_url":"https://api.github.com/users/jm2242/received_events","type":"User","site_admin":false},"body":"This PR, in reference to #319 :\r\n- adds support for querying a table that has proxy model representations in Django, as long as the type is declared to be the superclass (and not the proxy model class). While you could still query for all objects of a particular type, if those objects were cast to a proxy model at runtime, the `is_type_of()` for the object would fail.\r\n~- adds `on_delete` where it was breaking tests due to Django 2 requirement~\r\n- fixes tests associated with the Reporter model, to accommodate an additional field `reporter_type`\r\n\r\nIn the future, a more intentional way of dealing with Proxy models can be considered.\r\n\r\n~There are 4 failing tests that are unrelated to this PR~","created_at":"2018-01-15T05:36:55Z","updated_at":"2018-02-11T21:46:14Z","closed_at":"2018-02-11T21:46:14Z","merged_at":"2018-02-11T21:46:14Z","merge_commit_sha":"c0edb0c927fb5206c3747e0cce40984c2c4d9d49","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits","review_comments_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments","review_comment_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}","comments_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments","statuses_url":"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592","head":{"label":"jm2242:proxy-model-support","ref":"proxy-model-support","sha":"bfcfccfc8daa5e4b85b291d2b6a7fae935edd592","user":{"login":"jm2242","id":8572502,"avatar_url":"https://avatars1.githubusercontent.com/u/8572502?v=4","gravatar_id":"","url":"https://api.github.com/users/jm2242","html_url":"https://github.com/jm2242","followers_url":"https://api.github.com/users/jm2242/followers","following_url":"https://api.github.com/users/jm2242/following{/other_user}","gists_url":"https://api.github.com/users/jm2242/gists{/gist_id}","starred_url":"https://api.github.com/users/jm2242/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jm2242/subscriptions","organizations_url":"https://api.github.com/users/jm2242/orgs","repos_url":"https://api.github.com/users/jm2242/repos","events_url":"https://api.github.com/users/jm2242/events{/privacy}","received_events_url":"https://api.github.com/users/jm2242/received_events","type":"User","site_admin":false},"repo":{"id":110921638,"name":"graphene-django","full_name":"jm2242/graphene-django","owner":{"login":"jm2242","id":8572502,"avatar_url":"https://avatars1.githubusercontent.com/u/8572502?v=4","gravatar_id":"","url":"https://api.github.com/users/jm2242","html_url":"https://github.com/jm2242","followers_url":"https://api.github.com/users/jm2242/followers","following_url":"https://api.github.com/users/jm2242/following{/other_user}","gists_url":"https://api.github.com/users/jm2242/gists{/gist_id}","starred_url":"https://api.github.com/users/jm2242/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jm2242/subscriptions","organizations_url":"https://api.github.com/users/jm2242/orgs","repos_url":"https://api.github.com/users/jm2242/repos","events_url":"https://api.github.com/users/jm2242/events{/privacy}","received_events_url":"https://api.github.com/users/jm2242/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jm2242/graphene-django","description":"Graphene Django integration","fork":true,"url":"https://api.github.com/repos/jm2242/graphene-django","forks_url":"https://api.github.com/repos/jm2242/graphene-django/forks","keys_url":"https://api.github.com/repos/jm2242/graphene-django/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jm2242/graphene-django/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jm2242/graphene-django/teams","hooks_url":"https://api.github.com/repos/jm2242/graphene-django/hooks","issue_events_url":"https://api.github.com/repos/jm2242/graphene-django/issues/events{/number}","events_url":"https://api.github.com/repos/jm2242/graphene-django/events","assignees_url":"https://api.github.com/repos/jm2242/graphene-django/assignees{/user}","branches_url":"https://api.github.com/repos/jm2242/graphene-django/branches{/branch}","tags_url":"https://api.github.com/repos/jm2242/graphene-django/tags","blobs_url":"https://api.github.com/repos/jm2242/graphene-django/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jm2242/graphene-django/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jm2242/graphene-django/git/refs{/sha}","trees_url":"https://api.github.com/repos/jm2242/graphene-django/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jm2242/graphene-django/statuses/{sha}","languages_url":"https://api.github.com/repos/jm2242/graphene-django/languages","stargazers_url":"https://api.github.com/repos/jm2242/graphene-django/stargazers","contributors_url":"https://api.github.com/repos/jm2242/graphene-django/contributors","subscribers_url":"https://api.github.com/repos/jm2242/graphene-django/subscribers","subscription_url":"https://api.github.com/repos/jm2242/graphene-django/subscription","commits_url":"https://api.github.com/repos/jm2242/graphene-django/commits{/sha}","git_commits_url":"https://api.github.com/repos/jm2242/graphene-django/git/commits{/sha}","comments_url":"https://api.github.com/repos/jm2242/graphene-django/comments{/number}","issue_comment_url":"https://api.github.com/repos/jm2242/graphene-django/issues/comments{/number}","contents_url":"https://api.github.com/repos/jm2242/graphene-django/contents/{+path}","compare_url":"https://api.github.com/repos/jm2242/graphene-django/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jm2242/graphene-django/merges","archive_url":"https://api.github.com/repos/jm2242/graphene-django/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jm2242/graphene-django/downloads","issues_url":"https://api.github.com/repos/jm2242/graphene-django/issues{/number}","pulls_url":"https://api.github.com/repos/jm2242/graphene-django/pulls{/number}","milestones_url":"https://api.github.com/repos/jm2242/graphene-django/milestones{/number}","notifications_url":"https://api.github.com/repos/jm2242/graphene-django/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jm2242/graphene-django/labels{/name}","releases_url":"https://api.github.com/repos/jm2242/graphene-django/releases{/id}","deployments_url":"https://api.github.com/repos/jm2242/graphene-django/deployments","created_at":"2017-11-16T04:07:58Z","updated_at":"2017-11-16T04:08:01Z","pushed_at":"2018-02-04T03:51:29Z","git_url":"git://github.com/jm2242/graphene-django.git","ssh_url":"[email protected]:jm2242/graphene-django.git","clone_url":"https://github.com/jm2242/graphene-django.git","svn_url":"https://github.com/jm2242/graphene-django","homepage":"http://docs.graphene-python.org/projects/django/en/latest/","size":329,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"graphql-python:master","ref":"master","sha":"e827b10e7bfdb2b060966ab679f06d6c6ea7633f","user":{"login":"graphql-python","id":15002022,"avatar_url":"https://avatars3.githubusercontent.com/u/15002022?v=4","gravatar_id":"","url":"https://api.github.com/users/graphql-python","html_url":"https://github.com/graphql-python","followers_url":"https://api.github.com/users/graphql-python/followers","following_url":"https://api.github.com/users/graphql-python/following{/other_user}","gists_url":"https://api.github.com/users/graphql-python/gists{/gist_id}","starred_url":"https://api.github.com/users/graphql-python/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphql-python/subscriptions","organizations_url":"https://api.github.com/users/graphql-python/orgs","repos_url":"https://api.github.com/users/graphql-python/repos","events_url":"https://api.github.com/users/graphql-python/events{/privacy}","received_events_url":"https://api.github.com/users/graphql-python/received_events","type":"Organization","site_admin":false},"repo":{"id":68483365,"name":"graphene-django","full_name":"graphql-python/graphene-django","owner":{"login":"graphql-python","id":15002022,"avatar_url":"https://avatars3.githubusercontent.com/u/15002022?v=4","gravatar_id":"","url":"https://api.github.com/users/graphql-python","html_url":"https://github.com/graphql-python","followers_url":"https://api.github.com/users/graphql-python/followers","following_url":"https://api.github.com/users/graphql-python/following{/other_user}","gists_url":"https://api.github.com/users/graphql-python/gists{/gist_id}","starred_url":"https://api.github.com/users/graphql-python/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphql-python/subscriptions","organizations_url":"https://api.github.com/users/graphql-python/orgs","repos_url":"https://api.github.com/users/graphql-python/repos","events_url":"https://api.github.com/users/graphql-python/events{/privacy}","received_events_url":"https://api.github.com/users/graphql-python/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/graphql-python/graphene-django","description":"Graphene Django integration","fork":false,"url":"https://api.github.com/repos/graphql-python/graphene-django","forks_url":"https://api.github.com/repos/graphql-python/graphene-django/forks","keys_url":"https://api.github.com/repos/graphql-python/graphene-django/keys{/key_id}","collaborators_url":"https://api.github.com/repos/graphql-python/graphene-django/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/graphql-python/graphene-django/teams","hooks_url":"https://api.github.com/repos/graphql-python/graphene-django/hooks","issue_events_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/events{/number}","events_url":"https://api.github.com/repos/graphql-python/graphene-django/events","assignees_url":"https://api.github.com/repos/graphql-python/graphene-django/assignees{/user}","branches_url":"https://api.github.com/repos/graphql-python/graphene-django/branches{/branch}","tags_url":"https://api.github.com/repos/graphql-python/graphene-django/tags","blobs_url":"https://api.github.com/repos/graphql-python/graphene-django/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/graphql-python/graphene-django/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/graphql-python/graphene-django/git/refs{/sha}","trees_url":"https://api.github.com/repos/graphql-python/graphene-django/git/trees{/sha}","statuses_url":"https://api.github.com/repos/graphql-python/graphene-django/statuses/{sha}","languages_url":"https://api.github.com/repos/graphql-python/graphene-django/languages","stargazers_url":"https://api.github.com/repos/graphql-python/graphene-django/stargazers","contributors_url":"https://api.github.com/repos/graphql-python/graphene-django/contributors","subscribers_url":"https://api.github.com/repos/graphql-python/graphene-django/subscribers","subscription_url":"https://api.github.com/repos/graphql-python/graphene-django/subscription","commits_url":"https://api.github.com/repos/graphql-python/graphene-django/commits{/sha}","git_commits_url":"https://api.github.com/repos/graphql-python/graphene-django/git/commits{/sha}","comments_url":"https://api.github.com/repos/graphql-python/graphene-django/comments{/number}","issue_comment_url":"https://api.github.com/repos/graphql-python/graphene-django/issues/comments{/number}","contents_url":"https://api.github.com/repos/graphql-python/graphene-django/contents/{+path}","compare_url":"https://api.github.com/repos/graphql-python/graphene-django/compare/{base}...{head}","merges_url":"https://api.github.com/repos/graphql-python/graphene-django/merges","archive_url":"https://api.github.com/repos/graphql-python/graphene-django/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/graphql-python/graphene-django/downloads","issues_url":"https://api.github.com/repos/graphql-python/graphene-django/issues{/number}","pulls_url":"https://api.github.com/repos/graphql-python/graphene-django/pulls{/number}","milestones_url":"https://api.github.com/repos/graphql-python/graphene-django/milestones{/number}","notifications_url":"https://api.github.com/repos/graphql-python/graphene-django/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/graphql-python/graphene-django/labels{/name}","releases_url":"https://api.github.com/repos/graphql-python/graphene-django/releases{/id}","deployments_url":"https://api.github.com/repos/graphql-python/graphene-django/deployments","created_at":"2016-09-17T23:26:25Z","updated_at":"2018-02-13T03:29:19Z","pushed_at":"2018-02-11T22:01:19Z","git_url":"git://github.com/graphql-python/graphene-django.git","ssh_url":"[email protected]:graphql-python/graphene-django.git","clone_url":"https://github.com/graphql-python/graphene-django.git","svn_url":"https://github.com/graphql-python/graphene-django","homepage":"http://docs.graphene-python.org/projects/django/en/latest/","size":382,"stargazers_count":972,"watchers_count":972,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":181,"mirror_url":null,"archived":false,"open_issues_count":155,"license":null,"forks":181,"open_issues":155,"watchers":972,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373"},"html":{"href":"https://github.com/graphql-python/graphene-django/pull/373"},"issue":{"href":"https://api.github.com/repos/graphql-python/graphene-django/issues/373"},"comments":{"href":"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments"},"review_comments":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments"},"review_comment":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits"},"statuses":{"href":"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592"}},"author_association":"CONTRIBUTOR"}],"platform":"github","type":"development","tags":["utopian-io","graphql","graphene-django","graphene","python"],"links":["https://github.com/graphql-python/graphene-django/pull/373","http://docs.graphene-python.org/projects/django/en/latest/","https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111","https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43","https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112"]} |
| Transaction Info | Block #19838903/Trx 1389d9c225e97747421a01e99860ff184acd1b19 |
View Raw JSON Data
{
"trx_id": "1389d9c225e97747421a01e99860ff184acd1b19",
"block": 19838903,
"trx_in_block": 49,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T16:56:24",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "utopian-io",
"author": "jmares",
"permlink": "basic-proxy-model-support-in-graphene-django",
"title": "Basic Proxy Model Support in Graphene-Django",
"body": "# [Pull Request Link](https://github.com/graphql-python/graphene-django/pull/373)\n\n# Summary \nThis PR adds support for querying proxy models in [Graphene-Django](http://docs.graphene-python.org/projects/django/en/latest/). Graphene-Django is a Python library that enables developers to create GraphQL services on top of the Django web framework. \n\nProxy models are an interesting feature of Django. In short, they let you modify the runtime behavior of a model while maintaining the same database table as the superclass. This is contrasted with the typical inheritance model in Django, which will create a separate table for each model.\n\n# Motivation\nAt Quorum, we use proxy models in many places. While experimenting with GraphQL, I ran into an issue where some of my queries were failing, and suspected there was an issue with types. It turned out that our proxy models defined their own `__init__` methods which set their class to be the proxy model class at runtime. Graphene did not yet handle this situation.\n\n# Details and Example\nPreviously, while you were still able to query for all objects of a particular type, of which some may be proxy models, an error would be thrown if at runtime the Python class were changed. In `graphene_django_types.py` there is a line that verifies that each node in the resulting GraphQL matches the type of the declared type in the schema. I'll use a test case from my PR to illustrate this. \n\nLet's say you have a `Reporter` Django model like so:\n\n\n```\nclass Reporter(models.Model):\n first_name = ...\n last_name\n ...\n```\n\nYour GraphQL schema might look like:\n```\nclass ReporterType(DjangoObjectType):\n class Meta:\n model = Reporter # this is your Django model\n interfaces = (Node, )\n use_connection = True\n```\n\nthen, you might want to query for all Reporters:\n\n```\nclass Query(graphene.ObjectType):\n all_reporters = DjangoConnectionFilterField(ReporterType)\n```\n\nThe line `model == cls._meta.model` [(here)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111) would make sure that the model of each reporter type matches the declared model in the `ReporterType` `meta`. If you had just reporters, this would be totally fine.\n\nLet's say you also had another Django model called `CNNReporter` that is a proxy model to of `Reporter`:\n\n```\nclass CNNReporter(Reporter):\n class Meta:\n proxy = True\n\n```\n\nNow, if we override the `__init__` method of the `Reporter` class to modify its class [(link to code)](https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43), our proxy model instances will have a different type at runtime than instances of Reporter. The line would compare Reporter == CNNReporter, which would fail.\n\nIf we instead check the `concrete_model` field in the `_meta` of the instance’s model, we will always get the same type for all objects in the query, regardless of proxy model inheritance. In this case, `CNNReporter's` `concrete_model` is `Reporter`. The change is [here](https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112). \n\n<br /><hr/><em>Posted on <a href=\"https://utopian.io/utopian-io/@jmares/basic-proxy-model-support-in-graphene-django\">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>",
"json_metadata": "{\"community\":\"utopian\",\"app\":\"utopian/1.0.0\",\"format\":\"markdown\",\"repository\":{\"id\":68483365,\"name\":\"graphene-django\",\"full_name\":\"graphql-python/graphene-django\",\"html_url\":\"https://github.com/graphql-python/graphene-django\",\"fork\":false,\"owner\":{\"login\":\"graphql-python\"}},\"pullRequests\":[{\"url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373\",\"id\":162872281,\"html_url\":\"https://github.com/graphql-python/graphene-django/pull/373\",\"diff_url\":\"https://github.com/graphql-python/graphene-django/pull/373.diff\",\"patch_url\":\"https://github.com/graphql-python/graphene-django/pull/373.patch\",\"issue_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373\",\"number\":373,\"state\":\"closed\",\"locked\":false,\"title\":\"Basic Proxy model support\",\"user\":{\"login\":\"jm2242\",\"id\":8572502,\"avatar_url\":\"https://avatars1.githubusercontent.com/u/8572502?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jm2242\",\"html_url\":\"https://github.com/jm2242\",\"followers_url\":\"https://api.github.com/users/jm2242/followers\",\"following_url\":\"https://api.github.com/users/jm2242/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jm2242/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jm2242/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jm2242/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jm2242/orgs\",\"repos_url\":\"https://api.github.com/users/jm2242/repos\",\"events_url\":\"https://api.github.com/users/jm2242/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jm2242/received_events\",\"type\":\"User\",\"site_admin\":false},\"body\":\"This PR, in reference to #319 :\\r\\n- adds support for querying a table that has proxy model representations in Django, as long as the type is declared to be the superclass (and not the proxy model class). While you could still query for all objects of a particular type, if those objects were cast to a proxy model at runtime, the `is_type_of()` for the object would fail.\\r\\n~- adds `on_delete` where it was breaking tests due to Django 2 requirement~\\r\\n- fixes tests associated with the Reporter model, to accommodate an additional field `reporter_type`\\r\\n\\r\\nIn the future, a more intentional way of dealing with Proxy models can be considered.\\r\\n\\r\\n~There are 4 failing tests that are unrelated to this PR~\",\"created_at\":\"2018-01-15T05:36:55Z\",\"updated_at\":\"2018-02-11T21:46:14Z\",\"closed_at\":\"2018-02-11T21:46:14Z\",\"merged_at\":\"2018-02-11T21:46:14Z\",\"merge_commit_sha\":\"c0edb0c927fb5206c3747e0cce40984c2c4d9d49\",\"assignee\":null,\"assignees\":[],\"requested_reviewers\":[],\"requested_teams\":[],\"labels\":[],\"milestone\":null,\"commits_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits\",\"review_comments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments\",\"review_comment_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}\",\"comments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments\",\"statuses_url\":\"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592\",\"head\":{\"label\":\"jm2242:proxy-model-support\",\"ref\":\"proxy-model-support\",\"sha\":\"bfcfccfc8daa5e4b85b291d2b6a7fae935edd592\",\"user\":{\"login\":\"jm2242\",\"id\":8572502,\"avatar_url\":\"https://avatars1.githubusercontent.com/u/8572502?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jm2242\",\"html_url\":\"https://github.com/jm2242\",\"followers_url\":\"https://api.github.com/users/jm2242/followers\",\"following_url\":\"https://api.github.com/users/jm2242/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jm2242/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jm2242/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jm2242/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jm2242/orgs\",\"repos_url\":\"https://api.github.com/users/jm2242/repos\",\"events_url\":\"https://api.github.com/users/jm2242/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jm2242/received_events\",\"type\":\"User\",\"site_admin\":false},\"repo\":{\"id\":110921638,\"name\":\"graphene-django\",\"full_name\":\"jm2242/graphene-django\",\"owner\":{\"login\":\"jm2242\",\"id\":8572502,\"avatar_url\":\"https://avatars1.githubusercontent.com/u/8572502?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jm2242\",\"html_url\":\"https://github.com/jm2242\",\"followers_url\":\"https://api.github.com/users/jm2242/followers\",\"following_url\":\"https://api.github.com/users/jm2242/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jm2242/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jm2242/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jm2242/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jm2242/orgs\",\"repos_url\":\"https://api.github.com/users/jm2242/repos\",\"events_url\":\"https://api.github.com/users/jm2242/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jm2242/received_events\",\"type\":\"User\",\"site_admin\":false},\"private\":false,\"html_url\":\"https://github.com/jm2242/graphene-django\",\"description\":\"Graphene Django integration\",\"fork\":true,\"url\":\"https://api.github.com/repos/jm2242/graphene-django\",\"forks_url\":\"https://api.github.com/repos/jm2242/graphene-django/forks\",\"keys_url\":\"https://api.github.com/repos/jm2242/graphene-django/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jm2242/graphene-django/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jm2242/graphene-django/teams\",\"hooks_url\":\"https://api.github.com/repos/jm2242/graphene-django/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jm2242/graphene-django/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jm2242/graphene-django/events\",\"assignees_url\":\"https://api.github.com/repos/jm2242/graphene-django/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jm2242/graphene-django/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jm2242/graphene-django/tags\",\"blobs_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jm2242/graphene-django/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jm2242/graphene-django/languages\",\"stargazers_url\":\"https://api.github.com/repos/jm2242/graphene-django/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jm2242/graphene-django/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jm2242/graphene-django/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jm2242/graphene-django/subscription\",\"commits_url\":\"https://api.github.com/repos/jm2242/graphene-django/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jm2242/graphene-django/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jm2242/graphene-django/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jm2242/graphene-django/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/jm2242/graphene-django/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jm2242/graphene-django/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jm2242/graphene-django/merges\",\"archive_url\":\"https://api.github.com/repos/jm2242/graphene-django/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jm2242/graphene-django/downloads\",\"issues_url\":\"https://api.github.com/repos/jm2242/graphene-django/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jm2242/graphene-django/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jm2242/graphene-django/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jm2242/graphene-django/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jm2242/graphene-django/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/jm2242/graphene-django/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/jm2242/graphene-django/deployments\",\"created_at\":\"2017-11-16T04:07:58Z\",\"updated_at\":\"2017-11-16T04:08:01Z\",\"pushed_at\":\"2018-02-04T03:51:29Z\",\"git_url\":\"git://github.com/jm2242/graphene-django.git\",\"ssh_url\":\"[email protected]:jm2242/graphene-django.git\",\"clone_url\":\"https://github.com/jm2242/graphene-django.git\",\"svn_url\":\"https://github.com/jm2242/graphene-django\",\"homepage\":\"http://docs.graphene-python.org/projects/django/en/latest/\",\"size\":329,\"stargazers_count\":0,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"forks_count\":0,\"mirror_url\":null,\"archived\":false,\"open_issues_count\":0,\"license\":null,\"forks\":0,\"open_issues\":0,\"watchers\":0,\"default_branch\":\"master\"}},\"base\":{\"label\":\"graphql-python:master\",\"ref\":\"master\",\"sha\":\"e827b10e7bfdb2b060966ab679f06d6c6ea7633f\",\"user\":{\"login\":\"graphql-python\",\"id\":15002022,\"avatar_url\":\"https://avatars3.githubusercontent.com/u/15002022?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/graphql-python\",\"html_url\":\"https://github.com/graphql-python\",\"followers_url\":\"https://api.github.com/users/graphql-python/followers\",\"following_url\":\"https://api.github.com/users/graphql-python/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/graphql-python/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/graphql-python/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/graphql-python/subscriptions\",\"organizations_url\":\"https://api.github.com/users/graphql-python/orgs\",\"repos_url\":\"https://api.github.com/users/graphql-python/repos\",\"events_url\":\"https://api.github.com/users/graphql-python/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/graphql-python/received_events\",\"type\":\"Organization\",\"site_admin\":false},\"repo\":{\"id\":68483365,\"name\":\"graphene-django\",\"full_name\":\"graphql-python/graphene-django\",\"owner\":{\"login\":\"graphql-python\",\"id\":15002022,\"avatar_url\":\"https://avatars3.githubusercontent.com/u/15002022?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/graphql-python\",\"html_url\":\"https://github.com/graphql-python\",\"followers_url\":\"https://api.github.com/users/graphql-python/followers\",\"following_url\":\"https://api.github.com/users/graphql-python/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/graphql-python/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/graphql-python/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/graphql-python/subscriptions\",\"organizations_url\":\"https://api.github.com/users/graphql-python/orgs\",\"repos_url\":\"https://api.github.com/users/graphql-python/repos\",\"events_url\":\"https://api.github.com/users/graphql-python/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/graphql-python/received_events\",\"type\":\"Organization\",\"site_admin\":false},\"private\":false,\"html_url\":\"https://github.com/graphql-python/graphene-django\",\"description\":\"Graphene Django integration\",\"fork\":false,\"url\":\"https://api.github.com/repos/graphql-python/graphene-django\",\"forks_url\":\"https://api.github.com/repos/graphql-python/graphene-django/forks\",\"keys_url\":\"https://api.github.com/repos/graphql-python/graphene-django/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/graphql-python/graphene-django/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/graphql-python/graphene-django/teams\",\"hooks_url\":\"https://api.github.com/repos/graphql-python/graphene-django/hooks\",\"issue_events_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/graphql-python/graphene-django/events\",\"assignees_url\":\"https://api.github.com/repos/graphql-python/graphene-django/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/graphql-python/graphene-django/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/graphql-python/graphene-django/tags\",\"blobs_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/graphql-python/graphene-django/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/graphql-python/graphene-django/languages\",\"stargazers_url\":\"https://api.github.com/repos/graphql-python/graphene-django/stargazers\",\"contributors_url\":\"https://api.github.com/repos/graphql-python/graphene-django/contributors\",\"subscribers_url\":\"https://api.github.com/repos/graphql-python/graphene-django/subscribers\",\"subscription_url\":\"https://api.github.com/repos/graphql-python/graphene-django/subscription\",\"commits_url\":\"https://api.github.com/repos/graphql-python/graphene-django/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/graphql-python/graphene-django/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/graphql-python/graphene-django/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/graphql-python/graphene-django/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/graphql-python/graphene-django/merges\",\"archive_url\":\"https://api.github.com/repos/graphql-python/graphene-django/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/graphql-python/graphene-django/downloads\",\"issues_url\":\"https://api.github.com/repos/graphql-python/graphene-django/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/graphql-python/graphene-django/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/graphql-python/graphene-django/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/graphql-python/graphene-django/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/graphql-python/graphene-django/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/graphql-python/graphene-django/deployments\",\"created_at\":\"2016-09-17T23:26:25Z\",\"updated_at\":\"2018-02-13T03:29:19Z\",\"pushed_at\":\"2018-02-11T22:01:19Z\",\"git_url\":\"git://github.com/graphql-python/graphene-django.git\",\"ssh_url\":\"[email protected]:graphql-python/graphene-django.git\",\"clone_url\":\"https://github.com/graphql-python/graphene-django.git\",\"svn_url\":\"https://github.com/graphql-python/graphene-django\",\"homepage\":\"http://docs.graphene-python.org/projects/django/en/latest/\",\"size\":382,\"stargazers_count\":972,\"watchers_count\":972,\"language\":\"Python\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"forks_count\":181,\"mirror_url\":null,\"archived\":false,\"open_issues_count\":155,\"license\":null,\"forks\":181,\"open_issues\":155,\"watchers\":972,\"default_branch\":\"master\"}},\"_links\":{\"self\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373\"},\"html\":{\"href\":\"https://github.com/graphql-python/graphene-django/pull/373\"},\"issue\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373\"},\"comments\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/issues/373/comments\"},\"review_comments\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/comments\"},\"review_comment\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/comments{/number}\"},\"commits\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/pulls/373/commits\"},\"statuses\":{\"href\":\"https://api.github.com/repos/graphql-python/graphene-django/statuses/bfcfccfc8daa5e4b85b291d2b6a7fae935edd592\"}},\"author_association\":\"CONTRIBUTOR\"}],\"platform\":\"github\",\"type\":\"development\",\"tags\":[\"utopian-io\",\"graphql\",\"graphene-django\",\"graphene\",\"python\"],\"links\":[\"https://github.com/graphql-python/graphene-django/pull/373\",\"http://docs.graphene-python.org/projects/django/en/latest/\",\"https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72L111\",\"https://github.com/graphql-python/graphene-django/pull/373/files#diff-b60c4013deb0c92607a948d32a694fb8R43\",\"https://github.com/graphql-python/graphene-django/pull/373/files#diff-6926ea790e42fa924302b75462dfef72R112\"]}"
}
]
}jmaresupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are2018/02/13 14:44:48
jmaresupvoted (100.00%) @jmares / steemit-open-mic-week-72-all-the-things-you-are
2018/02/13 14:44:48
| voter | jmares |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19836274/Trx b83a7c1685bc15ae7f8d681b5046ba58fc899f4c |
View Raw JSON Data
{
"trx_id": "b83a7c1685bc15ae7f8d681b5046ba58fc899f4c",
"block": 19836274,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T14:44:48",
"op": [
"vote",
{
"voter": "jmares",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"weight": 10000
}
]
}jmarespublished a new post: steemit-open-mic-week-72-all-the-things-you-are2018/02/13 14:44:36
jmarespublished a new post: steemit-open-mic-week-72-all-the-things-you-are
2018/02/13 14:44:36
| parent author | |
| parent permlink | openmic |
| author | jmares |
| permlink | steemit-open-mic-week-72-all-the-things-you-are |
| title | Steemit Open Mic - Week 72- All the things you are |
| body | # All the things you are - Jerome Kern https://youtu.be/xFBQY7GlmMc @walnut1 and I jam out to this great tune. Many have recorded this one, among which some of my favorites are Bill Evans' on The Solo Sessions, Stan Getz, and Michael Jackson's funky version. |
| json metadata | {"tags":["openmic","music","jazz","piano","guitar"],"users":["walnut1"],"image":["https://img.youtube.com/vi/xFBQY7GlmMc/0.jpg"],"links":["https://youtu.be/xFBQY7GlmMc"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19836270/Trx 8c149943db3381f6b7282b129977f49038291975 |
View Raw JSON Data
{
"trx_id": "8c149943db3381f6b7282b129977f49038291975",
"block": 19836270,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-13T14:44:36",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "openmic",
"author": "jmares",
"permlink": "steemit-open-mic-week-72-all-the-things-you-are",
"title": "Steemit Open Mic - Week 72- All the things you are",
"body": "# All the things you are - Jerome Kern\n\nhttps://youtu.be/xFBQY7GlmMc\n\n@walnut1 and I jam out to this great tune. Many have recorded this one, among which some of my favorites are Bill Evans' on The Solo Sessions, Stan Getz, and Michael Jackson's funky version.",
"json_metadata": "{\"tags\":[\"openmic\",\"music\",\"jazz\",\"piano\",\"guitar\"],\"users\":[\"walnut1\"],\"image\":[\"https://img.youtube.com/vi/xFBQY7GlmMc/0.jpg\"],\"links\":[\"https://youtu.be/xFBQY7GlmMc\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}jmaresupvoted (100.00%) @majes.tytyty / re-jmares-now-playing-week-5-20180204t050820971z2018/02/11 15:14:39
jmaresupvoted (100.00%) @majes.tytyty / re-jmares-now-playing-week-5-20180204t050820971z
2018/02/11 15:14:39
| voter | jmares |
| author | majes.tytyty |
| permlink | re-jmares-now-playing-week-5-20180204t050820971z |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19779318/Trx 25ed0b220a7cd53209fb19a2bd2c649ce3b6f336 |
View Raw JSON Data
{
"trx_id": "25ed0b220a7cd53209fb19a2bd2c649ce3b6f336",
"block": 19779318,
"trx_in_block": 42,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-11T15:14:39",
"op": [
"vote",
{
"voter": "jmares",
"author": "majes.tytyty",
"permlink": "re-jmares-now-playing-week-5-20180204t050820971z",
"weight": 10000
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress8.47%
{
"voting_manabar": {
"current_mana": "14420247553",
"last_update_time": 1695340173
},
"downvote_manabar": {
"current_mana": 3605061888,
"last_update_time": 1695340173
},
"rc_account": {
"account": "jmares",
"rc_manabar": {
"current_mana": "16645133382",
"last_update_time": 1695340173
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "16440996526"
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"profile_image":"https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no","name":"Jonathan","location":"Washington DC","website":"http://jonathanmares.com","about":"Software Engineer and Musician"} |
| JSON METADATA | |
| profile | {"profile_image":"https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no","name":"Jonathan","location":"Washington DC","website":"http://jonathanmares.com","about":"Software Engineer and Musician"} |
{
"posting_json_metadata": {
"profile": {
"profile_image": "https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no",
"name": "Jonathan",
"location": "Washington DC",
"website": "http://jonathanmares.com",
"about": "Software Engineer and Musician"
}
},
"json_metadata": {
"profile": {
"profile_image": "https://lh3.googleusercontent.com/Cdf4OKrVxTFCSkIrPMnkBkxfj4evo8npPv7xGcyyyByNLMKFtA9F1ojr5IJ-Z4JJGbdhcels18dd5GNCgSxflLoUZV07MBd_fASVsYex75bfmrEkQba45YWn2nw2-o1M3AVHl20A1KxrdoaVVChJWaOgGtzQj02CHJvwqxp-Ad46B0P9j1QBA5XwQAfmdtl9YcdaQoYq00zOwX2pB-rgkYYrVW6wDEj3UL7caLmGnvtXS33BO286FiY4MSm4VnCxtXMtEUJtdyq34e7ZETDikpZt3fBIw8bu_g8wuQClLgh9BGNk8OpIY_ep26-uW3k3Co3RPe2J4oHr1m3fGSxL-loNSxmBmfK2XWd2DtwbtnOGFGzl2JQnqFPF7mu2MrWyBxDDp_03JNq0iZpViZ11Djy88z9fZQeswEMCycPKbaeNRfsT6JTQXpHKcuUNAHgp4L_gVUa228c8wbBrATdLYiSrSR7hFrbanIKCy4kNXVhUYKT27OzfIsSqqzUkKsRSOpt9jTPD01dY7821KtHiX6vs255tqG_TkN2KsNBun4ertx0VascEGh4wLXkKPId46p9Xlq1q1CTasstAM_UMv2TwErs_xhn0hm8Mo5r8=s1334-no",
"name": "Jonathan",
"location": "Washington DC",
"website": "http://jonathanmares.com",
"about": "Software Engineer and Musician"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM7VhWAGvpgYMaGekxTF47YMhizyD6fKacmTr6YPe74fzQLLXyQB1/1
Active
Single Signature
Public Keys
STM7nzFgEMF9A59cMoVe52Z5qyxf6nUNdfXt6WqMrMi5v27iCFoif1/1
Posting
Single Signature
Public Keys
STM5S2U3ggs1ahTrzU3YRJeYqRZTcH9DhuZSq2gC7cYuaowWbwRib1/1
App Permissions
@utopian.app1/1
Memo
STM7RDEJr8awedzCFxLt1oYAeiRorESHrHiCCKBvu4JDVttAyAKKQ
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7VhWAGvpgYMaGekxTF47YMhizyD6fKacmTr6YPe74fzQLLXyQB",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7nzFgEMF9A59cMoVe52Z5qyxf6nUNdfXt6WqMrMi5v27iCFoif",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [
[
"utopian.app",
1
]
],
"key_auths": [
[
"STM5S2U3ggs1ahTrzU3YRJeYqRZTcH9DhuZSq2gC7cYuaowWbwRib",
1
]
]
},
"memo": "STM7RDEJr8awedzCFxLt1oYAeiRorESHrHiCCKBvu4JDVttAyAKKQ"
}Witness Votes
0 / 30
No active witness votes.
[]