{"action":"created","comment":{"url":"https://api.github.com/repos/dimagi/commcare-hq/pulls/comments/57079785","id":57079785,"diff_hunk":"@@ -0,0 +1,449 @@\n+# TODO: Can't store a translation like this on the dataschema. Translate it somewhere else instead.\n+#from django.utils.translation import ugettext_lazy as _\n+def _(s):\n+    return s\n+\n+from corehq.apps.export.const import (\n+    PROPERTY_TAG_ROW,\n+    PROPERTY_TAG_INFO,\n+    PROPERTY_TAG_APP,\n+    PROPERTY_TAG_SERVER,\n+    PROPERTY_TAG_CASE,\n+    CASE_NAME_TRANSFORM,\n+    USERNAME_TRANSFORM,\n+    PROPERTY_TAG_NONE)\n+from corehq.apps.export.models import ExportColumn, ExportItem\n+\n+# item\n+    # label\n+    # is_advanced\n+    # selected\n+    # tags\n+    # transforms\n+\n+\n+# System properties to be displayed above the form questions\n+from corehq.apps.export.models.new import PathNode\n+\n+TOP_MAIN_FORM_TABLE_PROPERTIES = [\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_ROW],\n+        label=\"number\",\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label=\"formid\",\n+        item=ExportItem(path=[\n+            PathNode(name='form'),\n+            PathNode(name='meta'),\n+            PathNode(name='instnaceID')\n+        ]),\n+        help_text=_('Unique identifier of the form submission'),\n+        selected=True,\n+    )\n+]\n+\n+# System properties to be displayed below the form questions\n+BOTTOM_MAIN_FORM_TABLE_PROPERTIES = [\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='completed_time',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='meta'), PathNode(name='timeEnd')\n+        ]),\n+        help_text=_('The time at which this form was completed'),\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='username',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='meta'), PathNode(name='username')\n+        ]),\n+        help_text=_('The user who submitted this form'),\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='userID',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='meta'), PathNode(name='userID')\n+        ]),\n+        is_advanced=True,\n+        help_text=_(\"The id of the user who submitted this form\")\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='@xmlns',\n+        item=ExportItem(path=[PathNode(name='xmlns')]),\n+        is_advanced=True,\n+        help_text=_('The xmlns of this form')\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='@name',\n+        item=ExportItem(path=[PathNode(name='form'), PathNode(name='@name')]),\n+        is_advanced=True,\n+        help_text=_('The name of this form')\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='App Version',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='meta'), PathNode(name='appVersion')\n+        ]),\n+        is_advanced=True,\n+        help_text=_('The version of CommCare that was used to submit this form')),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='deviceID',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='meta'), PathNode(name='deviceID')\n+        ]),\n+        is_advanced=True,\n+        help_text=_(\"The id of the device that submitted this form\")\n+    ),\n+\n+\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_APP],\n+        label='app_id',\n+        item=ExportItem(path=[PathNode(name='app_id')]),\n+        is_advanced=True,\n+        help_text=_(\"The id of the app that this form is part of\")\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_APP],\n+        label='build_id',\n+        item=ExportItem(path=[PathNode(name='build_id')]),\n+        is_advanced=True,\n+        help_text=_(\"The id of the app version that this form is part of\")\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_APP],\n+        label='@version',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='@version')\n+        ]),\n+        is_advanced=True,\n+        help_text=_(\"The app version number that this form is part of\")\n+    ),\n+\n+\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label=\"state\",\n+        item=ExportItem(path=[PathNode(name=\"doc_type\")]),\n+        is_advanced=True\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label=\"last_sync_token\",\n+        item=ExportItem(path=[PathNode(name=\"last_sync_token\")]),\n+        is_advanced=True,\n+        help_text=_(\"last_sync_token\")\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label=\"partial_submission\",\n+        item=ExportItem(path=[PathNode(name=\"partial_submission\")]),\n+        is_advanced=True,\n+        help_text=_(\"True if the form was a partial submission, False otherwise.\")\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label=\"received_on\",\n+        item=ExportItem(path=[PathNode(name=\"received_on\")]),\n+        selected=True,\n+        help_text=_(\"The time at which the server receive this form submission\"),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label=\"submit_ip\",\n+        item=ExportItem(path=[PathNode(name=\"submit_ip\")]),\n+        is_advanced=True,\n+        help_text=_(\"The IP address from which the form was submitted\")\n+    ),\n+\n+\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_CASE],\n+        label='caseid',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='case'), PathNode(name='@case_id')\n+        ]),\n+        selected=True,\n+        help_text=_('The id of the case that this form operated on')\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_CASE],\n+        label='case_name',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='case'), PathNode(name='@case_id')\n+        ]),\n+        selected=True,\n+        transforms=[CASE_NAME_TRANSFORM],\n+        help_text=_(\"The name of the case that this form operated on\")\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_CASE],\n+        label='create.case_name',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='case'), PathNode(name='create'), PathNode(name='case_name')\n+        ]),\n+        is_advanced=True,\n+        help_text=_('The name of the case that this form opened')\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_CASE],\n+        label='create.case_type',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='case'), PathNode(name='create'), PathNode(name='case_type')\n+        ]),\n+        is_advanced=True,\n+        help_text=_('The type of the case that this form opened')\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_CASE],\n+        label='create.owner_id',\n+        item=ExportItem(path=[\n+            PathNode(name='form'), PathNode(name='case'), PathNode(name='create'), PathNode(name='owner_id')]\n+        ),\n+        is_advanced=True,\n+        help_text=_('The owner id of the case that this form opened')\n+    ),\n+]\n+MAIN_FORM_TABLE_PROPERTIES = TOP_MAIN_FORM_TABLE_PROPERTIES + BOTTOM_MAIN_FORM_TABLE_PROPERTIES\n+\n+ROW_NUMBER_COLUMN = ExportColumn(\n+    tags=[PROPERTY_TAG_ROW],\n+    label='number',\n+    item=ExportItem(path=[PathNode(name='number')]),\n+)\n+\n+TOP_MAIN_CASE_TABLE_PROPERTIES = [\n+    # This first list is displayed above the case properties\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_ROW],\n+        label='number',\n+        item=ExportItem(path=[PathNode(name='number')]),\n+        selected=True\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='caseid',\n+        item=ExportItem(path=[PathNode(name='_id')]),\n+        help_text=_(\"The id of the case\"),\n+        selected=True\n+    ),\n+]\n+\n+BOTTOM_MAIN_CASE_TABLE_PROPERTIES = [\n+    # This second list is displayed below the case properties\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='case_type',\n+        item=ExportItem(path=[PathNode(name='type')]),\n+        help_text=_(\"The type of the case\"),\n+        is_advanced=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='closed',\n+        item=ExportItem(path=[PathNode(name='closed')]),\n+        help_text=_(\"True if the case is closed, otherwise False\"),\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='closed_by_user_id',\n+        item=ExportItem(path=[PathNode(name='closed_by')]),\n+        help_text=_(\"The id of the user who closed the case\"),\n+        is_advanced=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='closed_by_username',\n+        item=ExportItem(path=[PathNode(name='closed_by')]),\n+        help_text=_(\"The username of the user who closed the case\"),\n+        transforms=[USERNAME_TRANSFORM],\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='closed_date',\n+        item=ExportItem(path=[PathNode(name='closed_on')]),\n+        help_text=_(\"The date and time at which the case was closed\"),\n+        selected=True\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='external_id',\n+        item=ExportItem(path=[PathNode(name='external_id')]),\n+        help_text=_(\"The external id for this case\"),\n+        is_advanced=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='last_modified_by_user_id',\n+        item=ExportItem(path=[PathNode(name='user_id')]),\n+        help_text=_(\"The id of the user who last modified this case\"),\n+        is_advanced=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='last_modified_by_user_username',\n+        item=ExportItem(path=[PathNode(name='user_id')]),\n+        help_text=_(\"The username of the user who last modified this case\"),\n+        transforms=[USERNAME_TRANSFORM],\n+        selected=True\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='last_modified_date',\n+        item=ExportItem(path=[PathNode(name='modified_on')]),\n+        help_text=_(\"The date and time at which the case was last modified\"),\n+        selected=True\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='opened_by_user_id',\n+        item=ExportItem(path=[PathNode(name='opened_by')]),\n+        help_text=_(\"The id of the user who opened the case\"),\n+        is_advanced=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='opened_by_username',\n+        item=ExportItem(path=[PathNode(name='opened_by')]),\n+        help_text=_(\"The username of the user who opened the case\"),\n+        transforms=[USERNAME_TRANSFORM],\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='opened_date',\n+        item=ExportItem(path=[PathNode(name='opened_on')]),\n+        help_text=_(\"The date and time at which the case was opened\"),\n+        selected=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='owner_id',\n+        item=ExportItem(path=[PathNode(name='owner_id')]),\n+        help_text=_(\"The id of the user who owns the case\"),\n+        is_advanced=True,\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='owner_name',\n+        item=ExportItem(path=[PathNode(name='owner_id')]),\n+        help_text=_(\"The username of the user who owns the case\"),\n+        transforms=[USERNAME_TRANSFORM],\n+        selected=True\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_INFO],\n+        label='server_last_modified_date',\n+        item=ExportItem(path=[PathNode(name='server_modified_on')]),\n+        help_text=_(\"The date and time at which the server received the form that last modified the case\"),\n+        transforms=[USERNAME_TRANSFORM],\n+        is_advanced=True,\n+    ),\n+    # TODO: Make sure state gets converted to a doc_type or whatever in the form es index\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label='state',\n+        item=ExportItem(path=[PathNode(name='doc_type')]),\n+        is_advanced=True,\n+    ),\n+]\n+MAIN_CASE_TABLE_PROPERTIES = TOP_MAIN_CASE_TABLE_PROPERTIES + BOTTOM_MAIN_FORM_TABLE_PROPERTIES\n+\n+CASE_HISTORY_PROPERTIES = [\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_ROW],\n+        label='number',\n+        item=ExportItem(path=[PathNode(name='number')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='action_type',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='action_type')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='user_id',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='user_id')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='date',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='date')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='server_date',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='server_date')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='xform_id',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='xform_id')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='xform_xmlns',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='xform_xmlns')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='xform_name',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='xform_name')]),    \n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='deprecated',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='deprecated')]),\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='sync_log_id',\n+        item=ExportItem(path=[PathNode(name='actions', is_repeat=True), PathNode(name='sync_log_id')]),\n+        is_advanced=True,\n+    ),\n+]\n+\n+PARENT_CASE_TABLE_PROPERTIES = [\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_ROW],\n+        label='number',\n+        item=ExportItem(path=[PathNode(name='number')]),\n+        is_advanced=False\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='parent_case_id',\n+        item=ExportItem(path=[PathNode(name='indices', is_repeat=True), PathNode(name='referenced_id')]),\n+        is_advanced=False\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='parent_case_type',\n+        item=ExportItem(path=[PathNode(name='indices', is_repeat=True), PathNode(name='referenced_type')]),\n+        is_advanced=False\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_NONE],\n+        label='relationship_type',\n+        item=ExportItem(path=[PathNode(name='indices', is_repeat=True), PathNode(name='relationship')]),\n+        is_advanced=False\n+    ),\n+    ExportColumn(\n+        tags=[PROPERTY_TAG_SERVER],\n+        label='state',\n+        item=ExportItem(path=[PathNode(name='indices', is_repeat=True), PathNode(name='doc_type')]),\n+        is_advanced=False\n+    ),\n+]","path":"corehq/apps/export/system_properties.py","position":440,"original_position":449,"commit_id":"d76ecc2e1488163946b72e6648914e83c08e2708","original_commit_id":"2ca62c1d9d652a60f41f4805a15ea26e108e5a14","user":{"login":"benrudolph","id":918514,"avatar_url":"https://avatars.githubusercontent.com/u/918514?v=3","gravatar_id":"","url":"https://api.github.com/users/benrudolph","html_url":"https://github.com/benrudolph","followers_url":"https://api.github.com/users/benrudolph/followers","following_url":"https://api.github.com/users/benrudolph/following{/other_user}","gists_url":"https://api.github.com/users/benrudolph/gists{/gist_id}","starred_url":"https://api.github.com/users/benrudolph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benrudolph/subscriptions","organizations_url":"https://api.github.com/users/benrudolph/orgs","repos_url":"https://api.github.com/users/benrudolph/repos","events_url":"https://api.github.com/users/benrudolph/events{/privacy}","received_events_url":"https://api.github.com/users/benrudolph/received_events","type":"User","site_admin":false},"body":"you're a hero :ring: ","created_at":"2016-03-22T22:20:37Z","updated_at":"2016-03-22T22:20:37Z","html_url":"https://github.com/dimagi/commcare-hq/pull/10847#discussion_r57079785","pull_request_url":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847","_links":{"self":{"href":"https://api.github.com/repos/dimagi/commcare-hq/pulls/comments/57079785"},"html":{"href":"https://github.com/dimagi/commcare-hq/pull/10847#discussion_r57079785"},"pull_request":{"href":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847"}}},"pull_request":{"url":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847","id":63384503,"html_url":"https://github.com/dimagi/commcare-hq/pull/10847","diff_url":"https://github.com/dimagi/commcare-hq/pull/10847.diff","patch_url":"https://github.com/dimagi/commcare-hq/pull/10847.patch","issue_url":"https://api.github.com/repos/dimagi/commcare-hq/issues/10847","number":10847,"state":"open","locked":false,"title":"Add system properties to new exports (and fix various bugs)","user":{"login":"NoahCarnahan","id":2117127,"avatar_url":"https://avatars.githubusercontent.com/u/2117127?v=3","gravatar_id":"","url":"https://api.github.com/users/NoahCarnahan","html_url":"https://github.com/NoahCarnahan","followers_url":"https://api.github.com/users/NoahCarnahan/followers","following_url":"https://api.github.com/users/NoahCarnahan/following{/other_user}","gists_url":"https://api.github.com/users/NoahCarnahan/gists{/gist_id}","starred_url":"https://api.github.com/users/NoahCarnahan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NoahCarnahan/subscriptions","organizations_url":"https://api.github.com/users/NoahCarnahan/orgs","repos_url":"https://api.github.com/users/NoahCarnahan/repos","events_url":"https://api.github.com/users/NoahCarnahan/events{/privacy}","received_events_url":"https://api.github.com/users/NoahCarnahan/received_events","type":"User","site_admin":false},"body":"(This PR includes everything in https://github.com/dimagi/commcare-hq/pull/10601/, wait for that to be merged before merging this.)\r\n\r\nProbably best reviewed commit-by-commit (starting with `b587086`).\r\n@benrudolph @dimagi/scale-team cc: @calellowitz \r\nSorry this is so large :(","created_at":"2016-03-18T14:44:59Z","updated_at":"2016-03-22T22:20:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"77f33b5e50a3178edac33c9843d2f44dbae6ba3a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847/commits","review_comments_url":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847/comments","review_comment_url":"https://api.github.com/repos/dimagi/commcare-hq/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dimagi/commcare-hq/issues/10847/comments","statuses_url":"https://api.github.com/repos/dimagi/commcare-hq/statuses/d76ecc2e1488163946b72e6648914e83c08e2708","head":{"label":"dimagi:add-system-properties-to-new-exports","ref":"add-system-properties-to-new-exports","sha":"d76ecc2e1488163946b72e6648914e83c08e2708","user":{"login":"dimagi","id":94514,"avatar_url":"https://avatars.githubusercontent.com/u/94514?v=3","gravatar_id":"","url":"https://api.github.com/users/dimagi","html_url":"https://github.com/dimagi","followers_url":"https://api.github.com/users/dimagi/followers","following_url":"https://api.github.com/users/dimagi/following{/other_user}","gists_url":"https://api.github.com/users/dimagi/gists{/gist_id}","starred_url":"https://api.github.com/users/dimagi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimagi/subscriptions","organizations_url":"https://api.github.com/users/dimagi/orgs","repos_url":"https://api.github.com/users/dimagi/repos","events_url":"https://api.github.com/users/dimagi/events{/privacy}","received_events_url":"https://api.github.com/users/dimagi/received_events","type":"Organization","site_admin":false},"repo":{"id":247278,"name":"commcare-hq","full_name":"dimagi/commcare-hq","owner":{"login":"dimagi","id":94514,"avatar_url":"https://avatars.githubusercontent.com/u/94514?v=3","gravatar_id":"","url":"https://api.github.com/users/dimagi","html_url":"https://github.com/dimagi","followers_url":"https://api.github.com/users/dimagi/followers","following_url":"https://api.github.com/users/dimagi/following{/other_user}","gists_url":"https://api.github.com/users/dimagi/gists{/gist_id}","starred_url":"https://api.github.com/users/dimagi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimagi/subscriptions","organizations_url":"https://api.github.com/users/dimagi/orgs","repos_url":"https://api.github.com/users/dimagi/repos","events_url":"https://api.github.com/users/dimagi/events{/privacy}","received_events_url":"https://api.github.com/users/dimagi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dimagi/commcare-hq","description":"A server-side tool to help manage community health workers, written in Django","fork":false,"url":"https://api.github.com/repos/dimagi/commcare-hq","forks_url":"https://api.github.com/repos/dimagi/commcare-hq/forks","keys_url":"https://api.github.com/repos/dimagi/commcare-hq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dimagi/commcare-hq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dimagi/commcare-hq/teams","hooks_url":"https://api.github.com/repos/dimagi/commcare-hq/hooks","issue_events_url":"https://api.github.com/repos/dimagi/commcare-hq/issues/events{/number}","events_url":"https://api.github.com/repos/dimagi/commcare-hq/events","assignees_url":"https://api.github.com/repos/dimagi/commcare-hq/assignees{/user}","branches_url":"https://api.github.com/repos/dimagi/commcare-hq/branches{/branch}","tags_url":"https://api.github.com/repos/dimagi/commcare-hq/tags","blobs_url":"https://api.github.com/repos/dimagi/commcare-hq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dimagi/commcare-hq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dimagi/commcare-hq/git/refs{/sha}","trees_url":"https://api.github.com/repos/dimagi/commcare-hq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dimagi/commcare-hq/statuses/{sha}","languages_url":"https://api.github.com/repos/dimagi/commcare-hq/languages","stargazers_url":"https://api.github.com/repos/dimagi/commcare-hq/stargazers","contributors_url":"https://api.github.com/repos/dimagi/commcare-hq/contributors","subscribers_url":"https://api.github.com/repos/dimagi/commcare-hq/subscribers","subscription_url":"https://api.github.com/repos/dimagi/commcare-hq/subscription","commits_url":"https://api.github.com/repos/dimagi/commcare-hq/commits{/sha}","git_commits_url":"https://api.github.com/repos/dimagi/commcare-hq/git/commits{/sha}","comments_url":"https://api.github.com/repos/dimagi/commcare-hq/comments{/number}","issue_comment_url":"https://api.github.com/repos/dimagi/commcare-hq/issues/comments{/number}","contents_url":"https://api.github.com/repos/dimagi/commcare-hq/contents/{+path}","compare_url":"https://api.github.com/repos/dimagi/commcare-hq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dimagi/commcare-hq/merges","archive_url":"https://api.github.com/repos/dimagi/commcare-hq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dimagi/commcare-hq/downloads","issues_url":"https://api.github.com/repos/dimagi/commcare-hq/issues{/number}","pulls_url":"https://api.github.com/repos/dimagi/commcare-hq/pulls{/number}","milestones_url":"https://api.github.com/repos/dimagi/commcare-hq/milestones{/number}","notifications_url":"https://api.github.com/repos/dimagi/commcare-hq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dimagi/commcare-hq/labels{/name}","releases_url":"https://api.github.com/repos/dimagi/commcare-hq/releases{/id}","deployments_url":"https://api.github.com/repos/dimagi/commcare-hq/deployments","created_at":"2009-07-09T17:00:07Z","updated_at":"2016-03-22T18:18:57Z","pushed_at":"2016-03-22T22:19:03Z","git_url":"git://github.com/dimagi/commcare-hq.git","ssh_url":"git@github.com:dimagi/commcare-hq.git","clone_url":"https://github.com/dimagi/commcare-hq.git","svn_url":"https://github.com/dimagi/commcare-hq","homepage":"http://www.commcarehq.org","size":258063,"stargazers_count":65,"watchers_count":65,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":67,"mirror_url":null,"open_issues_count":67,"forks":67,"open_issues":67,"watchers":65,"default_branch":"master"}},"base":{"label":"dimagi:master","ref":"master","sha":"559ed5cbdff8a96b9e544628e6e71ccc6844d001","user":{"login":"dimagi","id":94514,"avatar_url":"https://avatars.githubusercontent.com/u/94514?v=3","gravatar_id":"","url":"https://api.github.com/users/dimagi","html_url":"https://github.com/dimagi","followers_url":"https://api.github.com/users/dimagi/followers","following_url":"https://api.github.com/users/dimagi/following{/other_user}","gists_url":"https://api.github.com/users/dimagi/gists{/gist_id}","starred_url":"https://api.github.com/users/dimagi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimagi/subscriptions","organizations_url":"https://api.github.com/users/dimagi/orgs","repos_url":"https://api.github.com/users/dimagi/repos","events_url":"https://api.github.com/users/dimagi/events{/privacy}","received_events_url":"https://api.github.com/users/dimagi/received_events","type":"Organization","site_admin":false},"repo":{"id":247278,"name":"commcare-hq","full_name":"dimagi/commcare-hq","owner":{"login":"dimagi","id":94514,"avatar_url":"https://avatars.githubusercontent.com/u/94514?v=3","gravatar_id":"","url":"https://api.github.com/users/dimagi","html_url":"https://github.com/dimagi","followers_url":"https://api.github.com/users/dimagi/followers","following_url":"https://api.github.com/users/dimagi/following{/other_user}","gists_url":"https://api.github.com/users/dimagi/gists{/gist_id}","starred_url":"https://api.github.com/users/dimagi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimagi/subscriptions","organizations_url":"https://api.github.com/users/dimagi/orgs","repos_url":"https://api.github.com/users/dimagi/repos","events_url":"https://api.github.com/users/dimagi/events{/privacy}","received_events_url":"https://api.github.com/users/dimagi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dimagi/commcare-hq","description":"A server-side tool to help manage community health workers, written in Django","fork":false,"url":"https://api.github.com/repos/dimagi/commcare-hq","forks_url":"https://api.github.com/repos/dimagi/commcare-hq/forks","keys_url":"https://api.github.com/repos/dimagi/commcare-hq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dimagi/commcare-hq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dimagi/commcare-hq/teams","hooks_url":"https://api.github.com/repos/dimagi/commcare-hq/hooks","issue_events_url":"https://api.github.com/repos/dimagi/commcare-hq/issues/events{/number}","events_url":"https://api.github.com/repos/dimagi/commcare-hq/events","assignees_url":"https://api.github.com/repos/dimagi/commcare-hq/assignees{/user}","branches_url":"https://api.github.com/repos/dimagi/commcare-hq/branches{/branch}","tags_url":"https://api.github.com/repos/dimagi/commcare-hq/tags","blobs_url":"https://api.github.com/repos/dimagi/commcare-hq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dimagi/commcare-hq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dimagi/commcare-hq/git/refs{/sha}","trees_url":"https://api.github.com/repos/dimagi/commcare-hq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dimagi/commcare-hq/statuses/{sha}","languages_url":"https://api.github.com/repos/dimagi/commcare-hq/languages","stargazers_url":"https://api.github.com/repos/dimagi/commcare-hq/stargazers","contributors_url":"https://api.github.com/repos/dimagi/commcare-hq/contributors","subscribers_url":"https://api.github.com/repos/dimagi/commcare-hq/subscribers","subscription_url":"https://api.github.com/repos/dimagi/commcare-hq/subscription","commits_url":"https://api.github.com/repos/dimagi/commcare-hq/commits{/sha}","git_commits_url":"https://api.github.com/repos/dimagi/commcare-hq/git/commits{/sha}","comments_url":"https://api.github.com/repos/dimagi/commcare-hq/comments{/number}","issue_comment_url":"https://api.github.com/repos/dimagi/commcare-hq/issues/comments{/number}","contents_url":"https://api.github.com/repos/dimagi/commcare-hq/contents/{+path}","compare_url":"https://api.github.com/repos/dimagi/commcare-hq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dimagi/commcare-hq/merges","archive_url":"https://api.github.com/repos/dimagi/commcare-hq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dimagi/commcare-hq/downloads","issues_url":"https://api.github.com/repos/dimagi/commcare-hq/issues{/number}","pulls_url":"https://api.github.com/repos/dimagi/commcare-hq/pulls{/number}","milestones_url":"https://api.github.com/repos/dimagi/commcare-hq/milestones{/number}","notifications_url":"https://api.github.com/repos/dimagi/commcare-hq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dimagi/commcare-hq/labels{/name}","releases_url":"https://api.github.com/repos/dimagi/commcare-hq/releases{/id}","deployments_url":"https://api.github.com/repos/dimagi/commcare-hq/deployments","created_at":"2009-07-09T17:00:07Z","updated_at":"2016-03-22T18:18:57Z","pushed_at":"2016-03-22T22:19:03Z","git_url":"git://github.com/dimagi/commcare-hq.git","ssh_url":"git@github.com:dimagi/commcare-hq.git","clone_url":"https://github.com/dimagi/commcare-hq.git","svn_url":"https://github.com/dimagi/commcare-hq","homepage":"http://www.commcarehq.org","size":258063,"stargazers_count":65,"watchers_count":65,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":67,"mirror_url":null,"open_issues_count":67,"forks":67,"open_issues":67,"watchers":65,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847"},"html":{"href":"https://github.com/dimagi/commcare-hq/pull/10847"},"issue":{"href":"https://api.github.com/repos/dimagi/commcare-hq/issues/10847"},"comments":{"href":"https://api.github.com/repos/dimagi/commcare-hq/issues/10847/comments"},"review_comments":{"href":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847/comments"},"review_comment":{"href":"https://api.github.com/repos/dimagi/commcare-hq/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dimagi/commcare-hq/pulls/10847/commits"},"statuses":{"href":"https://api.github.com/repos/dimagi/commcare-hq/statuses/d76ecc2e1488163946b72e6648914e83c08e2708"}}}}