{"action":"created","comment":{"url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments/70513067","id":70513067,"diff_hunk":"@@ -1,106 +1,221 @@\n from mezzanine.pages.page_processors import processor_for\n-from models import TimeSeriesResource\n-from crispy_forms.layout import Layout, Fieldset, ButtonHolder, Submit, HTML\n-from forms import *\n+\n+from crispy_forms.layout import Layout, HTML\n+\n+from forms import SiteForm, VariableForm, MethodForm, ProcessingLevelForm, TimeSeriesResultForm, \\\n+    UpdateSQLiteLayout, SeriesSelectionLayout, TimeSeriesMetaDataLayout\n from hs_core import page_processors\n-from hs_core.views import *\n+from hs_core.views import add_generic_context\n+from hs_app_timeseries.models import TimeSeriesResource\n+\n \n @processor_for(TimeSeriesResource)\n-# TODO: problematic permissions\n def landing_page(request, page):\n     \"\"\"\n         A typical Mezzanine page processor.\n \n-        TODO: refactor to make it clear that there are two different modes = EDITABLE | READONLY\n-                - split into two helper functions: readonly_landing_page(...) and editable_landing_page(...)\n     \"\"\"\n     content_model = page.get_content_model()\n     edit_resource = page_processors.check_resource_mode(request)\n \n+    extended_metadata_exists = False\n+    if content_model.metadata.sites or \\\n+            content_model.metadata.variables or \\\n+            content_model.metadata.methods or \\\n+            content_model.metadata.processing_levels or \\\n+            content_model.metadata.time_series_results:\n+        extended_metadata_exists = True\n+\n+    series_ids = {}\n+    for result in content_model.metadata.time_series_results:\n+        series_id = result.series_ids[0]\n+        series_ids[series_id] = _get_series_label(series_id, content_model)\n+\n+    if 'series_id' in request.GET:\n+        selected_series_id = request.GET['series_id']\n+        if 'series_id' in request.session:\n+            if selected_series_id != request.session['series_id']:\n+                is_resource_specific_tab_active = True\n+                request.session['series_id'] = selected_series_id\n+            else:\n+                is_resource_specific_tab_active = False\n+        else:\n+            request.session['series_id'] = selected_series_id\n+            is_resource_specific_tab_active = False\n+    else:\n+        selected_series_id = series_ids.keys()[0] if series_ids.keys() else None\n+        request.session['series_id'] = selected_series_id\n+        is_resource_specific_tab_active = False\n+\n     # view depends on whether the resource is being edited\n     if not edit_resource:\n-        # READONLY\n-        # get the context from hs_core\n-        context = page_processors.get_page_context(page, request.user, resource_edit=edit_resource, extended_metadata_layout=None, request=request)\n-        extended_metadata_exists = False\n-        if content_model.metadata.site or \\\n-                content_model.metadata.variable or \\\n-                content_model.metadata.method or \\\n-                content_model.metadata.processing_level or \\\n-                content_model.metadata.time_series_result:\n-            extended_metadata_exists = True\n-\n-        context['extended_metadata_exists'] = extended_metadata_exists\n-        context['site'] = content_model.metadata.site\n-        context['variable'] = content_model.metadata.variable\n-        context['method'] = content_model.metadata.method\n-        context['processing_level'] = content_model.metadata.processing_level\n-        context['timeseries_result'] = content_model.metadata.time_series_result\n+        # resource in VIEW Mode\n+        context = _get_resource_view_context(page, request, content_model, selected_series_id,\n+                                             series_ids, extended_metadata_exists)\n     else:\n-        # EDIT MODE\n+        # resource in EDIT Mode\n+        context = _get_resource_edit_context(page, request, content_model, selected_series_id,\n+                                             series_ids, extended_metadata_exists)\n+\n+    context['is_resource_specific_tab_active'] = is_resource_specific_tab_active\n+\n+    # TODO: can we refactor to make it impossible to skip adding the generic context\n+    hs_core_context = add_generic_context(request, page)\n+    context.update(hs_core_context)\n+    return context\n+\n+\n+def _get_resource_view_context(page, request, content_model, selected_series_id, series_ids,\n+                               extended_metadata_exists):\n+    # get the context from hs_core\n+    context = page_processors.get_page_context(page, request.user, resource_edit=False,\n+                                               extended_metadata_layout=None, request=request)\n+\n+    context['extended_metadata_exists'] = extended_metadata_exists\n+    context['selected_series_id'] = selected_series_id\n+    context['series_ids'] = series_ids\n+    context['sites'] = [site for site in content_model.metadata.sites if selected_series_id in\n+                        site.series_ids]\n+    context['variables'] = [variable for variable in content_model.metadata.variables if\n+                            selected_series_id in variable.series_ids]\n+    context['methods'] = [method for method in content_model.metadata.methods if\n+                          selected_series_id in method.series_ids]\n+    context['processing_levels'] = [pro_level for pro_level in\n+                                    content_model.metadata.processing_levels if\n+                                    selected_series_id in pro_level.series_ids]\n+    context['timeseries_results'] = [ts_result for ts_result in\n+                                     content_model.metadata.time_series_results if\n+                                     selected_series_id in ts_result.series_ids]\n+\n+    return context\n \n-        # add some forms\n-        site_form = SiteForm(instance=content_model.metadata.site, res_short_id=content_model.short_id,\n-                             element_id=content_model.metadata.site.id if content_model.metadata.site else None)\n \n-        variable_form = VariableForm(instance=content_model.metadata.variable, res_short_id=content_model.short_id,\n-                             element_id=content_model.metadata.variable.id if content_model.metadata.variable else None)\n+def _get_resource_edit_context(page, request, content_model, selected_series_id, series_ids,\n+                               extended_metadata_exists):\n+    site_form = None\n+    variable_form = None\n+    processing_level_form = None\n+    method_form = None\n+    timeseries_result_form = None\n \n-        method_form = MethodForm(instance=content_model.metadata.method, res_short_id=content_model.short_id,\n-                                 element_id=content_model.metadata.method.id if content_model.metadata.method else None)\n+    if extended_metadata_exists:\n+        # create timeseries sepecific metadata element forms\n+        site = content_model.metadata.sites.filter(\n+            series_ids__contains=[selected_series_id]).first()\n+        site_form = SiteForm(instance=site, res_short_id=content_model.short_id,\n+                             element_id=site.id if site else None,\n+                             cv_site_types=content_model.metadata.cv_site_types.all(),\n+                             cv_elevation_datums=content_model.metadata.cv_elevation_datums.all())\n \n-        processing_level_form = ProcessingLevelForm(instance=content_model.metadata.processing_level,\n+        site_form.action = _get_element_update_form_action('site', content_model.short_id, site.id)\n+        site_form.number = site.id\n+        site_form.set_dropdown_widgets(site_form.initial['site_type'],\n+                                       site_form.initial['elevation_datum'])\n+\n+        variable = content_model.metadata.variables.filter(\n+            series_ids__contains=[selected_series_id]).first()\n+        variable_form = VariableForm(\n+            instance=variable, res_short_id=content_model.short_id,\n+            element_id=variable.id if variable else None,\n+            cv_variable_types=content_model.metadata.cv_variable_types.all(),\n+            cv_variable_names=content_model.metadata.cv_variable_names.all(),\n+            cv_speciations=content_model.metadata.cv_speciations.all())\n+\n+        variable_form.action = _get_element_update_form_action('variable',\n+                                                               content_model.short_id, site.id)\n+        variable_form.number = variable.id\n+        variable_form.set_dropdown_widgets(variable_form.initial['variable_type'],\n+                                           variable_form.initial['variable_name'],\n+                                           variable_form.initial['speciation'])\n+\n+        method = content_model.metadata.methods.filter(\n+            series_ids__contains=[selected_series_id]).first()","path":"hs_app_timeseries/page_processors.py","position":165,"original_position":165,"commit_id":"84dd9b07c6e4dfd5d237ec05fa6fa2664c7ad4a9","original_commit_id":"84dd9b07c6e4dfd5d237ec05fa6fa2664c7ad4a9","user":{"login":"hyi","id":476302,"avatar_url":"https://avatars.githubusercontent.com/u/476302?v=3","gravatar_id":"","url":"https://api.github.com/users/hyi","html_url":"https://github.com/hyi","followers_url":"https://api.github.com/users/hyi/followers","following_url":"https://api.github.com/users/hyi/following{/other_user}","gists_url":"https://api.github.com/users/hyi/gists{/gist_id}","starred_url":"https://api.github.com/users/hyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyi/subscriptions","organizations_url":"https://api.github.com/users/hyi/orgs","repos_url":"https://api.github.com/users/hyi/repos","events_url":"https://api.github.com/users/hyi/events{/privacy}","received_events_url":"https://api.github.com/users/hyi/received_events","type":"User","site_admin":false},"body":"@pkdash Never mind, ignore my comments about missing pairing right parenthesis. I see it now.","created_at":"2016-07-12T20:13:45Z","updated_at":"2016-07-12T20:13:45Z","html_url":"https://github.com/hydroshare/hydroshare/pull/1324#discussion_r70513067","pull_request_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324","_links":{"self":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments/70513067"},"html":{"href":"https://github.com/hydroshare/hydroshare/pull/1324#discussion_r70513067"},"pull_request":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324"}}},"pull_request":{"url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324","id":76624108,"html_url":"https://github.com/hydroshare/hydroshare/pull/1324","diff_url":"https://github.com/hydroshare/hydroshare/pull/1324.diff","patch_url":"https://github.com/hydroshare/hydroshare/pull/1324.patch","issue_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/1324","number":1324,"state":"open","locked":false,"title":"Support for multitimeseries sqlite","user":{"login":"pkdash","id":2523434,"avatar_url":"https://avatars.githubusercontent.com/u/2523434?v=3","gravatar_id":"","url":"https://api.github.com/users/pkdash","html_url":"https://github.com/pkdash","followers_url":"https://api.github.com/users/pkdash/followers","following_url":"https://api.github.com/users/pkdash/following{/other_user}","gists_url":"https://api.github.com/users/pkdash/gists{/gist_id}","starred_url":"https://api.github.com/users/pkdash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkdash/subscriptions","organizations_url":"https://api.github.com/users/pkdash/orgs","repos_url":"https://api.github.com/users/pkdash/repos","events_url":"https://api.github.com/users/pkdash/events{/privacy}","received_events_url":"https://api.github.com/users/pkdash/received_events","type":"User","site_admin":false},"body":"This branch been deployed on revierdev.hydrsohare.org. In order to test the functionality implemented in this branch, download the SQLite file from the publicly available timeseries resource at riverdev.hydroshare.org and then use that file as part of creating a timeseries resource.\r\n\r\nNew functionalities:\r\n\r\n- If the uploaded SQLite file does not meet ODM2 schema, when a creating a timeseries resource, the resource will be created but the uploaded file will be rejected (will not be part of the resource). If a resource is created with no SQLite file, the user will not be able to edit resource specific metadata until a SQLite file is added to the resource.\r\n- After deleting the SQLite file from an existing resource, if the users adds a SQLite file to the resource, the above validation logic applies. If the added SQLite file meets ODM2 schema, metadata will be extracted (no option to extract or not) and any previously extracted metadata will be overwritten.\r\n- Resource specific metadata can be viewed on a per timeseries basis. Use the dropdown list under resource specific tab to see metadata for a specific timeseries. Some of the resource specific metadata element fields represent CV terms. In the edit mode, these fields are presented as dropdown list. To enter a new CV term for any of these fields. select the 'Other...' option from the dropdown list. \r\n- If the user edits any resource specific metadata, in the resource edit mode, user will see an option to update the SQLite file. This allows to sync the metadata in Django database to the SQLite file. If the SQLite file is out of sync at the time of bag download or SQLite file download,  system will first update the SQLite file before the download begins. \r\n ","created_at":"2016-07-07T16:17:14Z","updated_at":"2016-07-12T20:13:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8f456ac4c58f8077eec81d7f948f272f9ecb166a","assignee":{"login":"hyi","id":476302,"avatar_url":"https://avatars.githubusercontent.com/u/476302?v=3","gravatar_id":"","url":"https://api.github.com/users/hyi","html_url":"https://github.com/hyi","followers_url":"https://api.github.com/users/hyi/followers","following_url":"https://api.github.com/users/hyi/following{/other_user}","gists_url":"https://api.github.com/users/hyi/gists{/gist_id}","starred_url":"https://api.github.com/users/hyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyi/subscriptions","organizations_url":"https://api.github.com/users/hyi/orgs","repos_url":"https://api.github.com/users/hyi/repos","events_url":"https://api.github.com/users/hyi/events{/privacy}","received_events_url":"https://api.github.com/users/hyi/received_events","type":"User","site_admin":false},"assignees":[{"login":"hyi","id":476302,"avatar_url":"https://avatars.githubusercontent.com/u/476302?v=3","gravatar_id":"","url":"https://api.github.com/users/hyi","html_url":"https://github.com/hyi","followers_url":"https://api.github.com/users/hyi/followers","following_url":"https://api.github.com/users/hyi/following{/other_user}","gists_url":"https://api.github.com/users/hyi/gists{/gist_id}","starred_url":"https://api.github.com/users/hyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyi/subscriptions","organizations_url":"https://api.github.com/users/hyi/orgs","repos_url":"https://api.github.com/users/hyi/repos","events_url":"https://api.github.com/users/hyi/events{/privacy}","received_events_url":"https://api.github.com/users/hyi/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324/commits","review_comments_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324/comments","review_comment_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/1324/comments","statuses_url":"https://api.github.com/repos/hydroshare/hydroshare/statuses/84dd9b07c6e4dfd5d237ec05fa6fa2664c7ad4a9","head":{"label":"hydroshare:1220-support-for-multitimeseries-sqlite","ref":"1220-support-for-multitimeseries-sqlite","sha":"84dd9b07c6e4dfd5d237ec05fa6fa2664c7ad4a9","user":{"login":"hydroshare","id":3444493,"avatar_url":"https://avatars.githubusercontent.com/u/3444493?v=3","gravatar_id":"","url":"https://api.github.com/users/hydroshare","html_url":"https://github.com/hydroshare","followers_url":"https://api.github.com/users/hydroshare/followers","following_url":"https://api.github.com/users/hydroshare/following{/other_user}","gists_url":"https://api.github.com/users/hydroshare/gists{/gist_id}","starred_url":"https://api.github.com/users/hydroshare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hydroshare/subscriptions","organizations_url":"https://api.github.com/users/hydroshare/orgs","repos_url":"https://api.github.com/users/hydroshare/repos","events_url":"https://api.github.com/users/hydroshare/events{/privacy}","received_events_url":"https://api.github.com/users/hydroshare/received_events","type":"Organization","site_admin":false},"repo":{"id":24703136,"name":"hydroshare","full_name":"hydroshare/hydroshare","owner":{"login":"hydroshare","id":3444493,"avatar_url":"https://avatars.githubusercontent.com/u/3444493?v=3","gravatar_id":"","url":"https://api.github.com/users/hydroshare","html_url":"https://github.com/hydroshare","followers_url":"https://api.github.com/users/hydroshare/followers","following_url":"https://api.github.com/users/hydroshare/following{/other_user}","gists_url":"https://api.github.com/users/hydroshare/gists{/gist_id}","starred_url":"https://api.github.com/users/hydroshare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hydroshare/subscriptions","organizations_url":"https://api.github.com/users/hydroshare/orgs","repos_url":"https://api.github.com/users/hydroshare/repos","events_url":"https://api.github.com/users/hydroshare/events{/privacy}","received_events_url":"https://api.github.com/users/hydroshare/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hydroshare/hydroshare","description":"HydroShare is a collaborative website being developed for better access to data and models in the hydrologic sciences. ","fork":false,"url":"https://api.github.com/repos/hydroshare/hydroshare","forks_url":"https://api.github.com/repos/hydroshare/hydroshare/forks","keys_url":"https://api.github.com/repos/hydroshare/hydroshare/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hydroshare/hydroshare/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hydroshare/hydroshare/teams","hooks_url":"https://api.github.com/repos/hydroshare/hydroshare/hooks","issue_events_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/events{/number}","events_url":"https://api.github.com/repos/hydroshare/hydroshare/events","assignees_url":"https://api.github.com/repos/hydroshare/hydroshare/assignees{/user}","branches_url":"https://api.github.com/repos/hydroshare/hydroshare/branches{/branch}","tags_url":"https://api.github.com/repos/hydroshare/hydroshare/tags","blobs_url":"https://api.github.com/repos/hydroshare/hydroshare/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hydroshare/hydroshare/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hydroshare/hydroshare/git/refs{/sha}","trees_url":"https://api.github.com/repos/hydroshare/hydroshare/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hydroshare/hydroshare/statuses/{sha}","languages_url":"https://api.github.com/repos/hydroshare/hydroshare/languages","stargazers_url":"https://api.github.com/repos/hydroshare/hydroshare/stargazers","contributors_url":"https://api.github.com/repos/hydroshare/hydroshare/contributors","subscribers_url":"https://api.github.com/repos/hydroshare/hydroshare/subscribers","subscription_url":"https://api.github.com/repos/hydroshare/hydroshare/subscription","commits_url":"https://api.github.com/repos/hydroshare/hydroshare/commits{/sha}","git_commits_url":"https://api.github.com/repos/hydroshare/hydroshare/git/commits{/sha}","comments_url":"https://api.github.com/repos/hydroshare/hydroshare/comments{/number}","issue_comment_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/comments{/number}","contents_url":"https://api.github.com/repos/hydroshare/hydroshare/contents/{+path}","compare_url":"https://api.github.com/repos/hydroshare/hydroshare/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hydroshare/hydroshare/merges","archive_url":"https://api.github.com/repos/hydroshare/hydroshare/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hydroshare/hydroshare/downloads","issues_url":"https://api.github.com/repos/hydroshare/hydroshare/issues{/number}","pulls_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls{/number}","milestones_url":"https://api.github.com/repos/hydroshare/hydroshare/milestones{/number}","notifications_url":"https://api.github.com/repos/hydroshare/hydroshare/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hydroshare/hydroshare/labels{/name}","releases_url":"https://api.github.com/repos/hydroshare/hydroshare/releases{/id}","deployments_url":"https://api.github.com/repos/hydroshare/hydroshare/deployments","created_at":"2014-10-02T02:19:41Z","updated_at":"2016-07-04T04:25:39Z","pushed_at":"2016-07-12T19:43:21Z","git_url":"git://github.com/hydroshare/hydroshare.git","ssh_url":"git@github.com:hydroshare/hydroshare.git","clone_url":"https://github.com/hydroshare/hydroshare.git","svn_url":"https://github.com/hydroshare/hydroshare","homepage":"https://www.hydroshare.org","size":84127,"stargazers_count":16,"watchers_count":16,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":226,"forks":2,"open_issues":226,"watchers":16,"default_branch":"develop"}},"base":{"label":"hydroshare:develop","ref":"develop","sha":"ea5d88decd8492e770712ecf70442751a6a5c879","user":{"login":"hydroshare","id":3444493,"avatar_url":"https://avatars.githubusercontent.com/u/3444493?v=3","gravatar_id":"","url":"https://api.github.com/users/hydroshare","html_url":"https://github.com/hydroshare","followers_url":"https://api.github.com/users/hydroshare/followers","following_url":"https://api.github.com/users/hydroshare/following{/other_user}","gists_url":"https://api.github.com/users/hydroshare/gists{/gist_id}","starred_url":"https://api.github.com/users/hydroshare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hydroshare/subscriptions","organizations_url":"https://api.github.com/users/hydroshare/orgs","repos_url":"https://api.github.com/users/hydroshare/repos","events_url":"https://api.github.com/users/hydroshare/events{/privacy}","received_events_url":"https://api.github.com/users/hydroshare/received_events","type":"Organization","site_admin":false},"repo":{"id":24703136,"name":"hydroshare","full_name":"hydroshare/hydroshare","owner":{"login":"hydroshare","id":3444493,"avatar_url":"https://avatars.githubusercontent.com/u/3444493?v=3","gravatar_id":"","url":"https://api.github.com/users/hydroshare","html_url":"https://github.com/hydroshare","followers_url":"https://api.github.com/users/hydroshare/followers","following_url":"https://api.github.com/users/hydroshare/following{/other_user}","gists_url":"https://api.github.com/users/hydroshare/gists{/gist_id}","starred_url":"https://api.github.com/users/hydroshare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hydroshare/subscriptions","organizations_url":"https://api.github.com/users/hydroshare/orgs","repos_url":"https://api.github.com/users/hydroshare/repos","events_url":"https://api.github.com/users/hydroshare/events{/privacy}","received_events_url":"https://api.github.com/users/hydroshare/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hydroshare/hydroshare","description":"HydroShare is a collaborative website being developed for better access to data and models in the hydrologic sciences. ","fork":false,"url":"https://api.github.com/repos/hydroshare/hydroshare","forks_url":"https://api.github.com/repos/hydroshare/hydroshare/forks","keys_url":"https://api.github.com/repos/hydroshare/hydroshare/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hydroshare/hydroshare/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hydroshare/hydroshare/teams","hooks_url":"https://api.github.com/repos/hydroshare/hydroshare/hooks","issue_events_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/events{/number}","events_url":"https://api.github.com/repos/hydroshare/hydroshare/events","assignees_url":"https://api.github.com/repos/hydroshare/hydroshare/assignees{/user}","branches_url":"https://api.github.com/repos/hydroshare/hydroshare/branches{/branch}","tags_url":"https://api.github.com/repos/hydroshare/hydroshare/tags","blobs_url":"https://api.github.com/repos/hydroshare/hydroshare/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hydroshare/hydroshare/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hydroshare/hydroshare/git/refs{/sha}","trees_url":"https://api.github.com/repos/hydroshare/hydroshare/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hydroshare/hydroshare/statuses/{sha}","languages_url":"https://api.github.com/repos/hydroshare/hydroshare/languages","stargazers_url":"https://api.github.com/repos/hydroshare/hydroshare/stargazers","contributors_url":"https://api.github.com/repos/hydroshare/hydroshare/contributors","subscribers_url":"https://api.github.com/repos/hydroshare/hydroshare/subscribers","subscription_url":"https://api.github.com/repos/hydroshare/hydroshare/subscription","commits_url":"https://api.github.com/repos/hydroshare/hydroshare/commits{/sha}","git_commits_url":"https://api.github.com/repos/hydroshare/hydroshare/git/commits{/sha}","comments_url":"https://api.github.com/repos/hydroshare/hydroshare/comments{/number}","issue_comment_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/comments{/number}","contents_url":"https://api.github.com/repos/hydroshare/hydroshare/contents/{+path}","compare_url":"https://api.github.com/repos/hydroshare/hydroshare/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hydroshare/hydroshare/merges","archive_url":"https://api.github.com/repos/hydroshare/hydroshare/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hydroshare/hydroshare/downloads","issues_url":"https://api.github.com/repos/hydroshare/hydroshare/issues{/number}","pulls_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls{/number}","milestones_url":"https://api.github.com/repos/hydroshare/hydroshare/milestones{/number}","notifications_url":"https://api.github.com/repos/hydroshare/hydroshare/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hydroshare/hydroshare/labels{/name}","releases_url":"https://api.github.com/repos/hydroshare/hydroshare/releases{/id}","deployments_url":"https://api.github.com/repos/hydroshare/hydroshare/deployments","created_at":"2014-10-02T02:19:41Z","updated_at":"2016-07-04T04:25:39Z","pushed_at":"2016-07-12T19:43:21Z","git_url":"git://github.com/hydroshare/hydroshare.git","ssh_url":"git@github.com:hydroshare/hydroshare.git","clone_url":"https://github.com/hydroshare/hydroshare.git","svn_url":"https://github.com/hydroshare/hydroshare","homepage":"https://www.hydroshare.org","size":84127,"stargazers_count":16,"watchers_count":16,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":226,"forks":2,"open_issues":226,"watchers":16,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324"},"html":{"href":"https://github.com/hydroshare/hydroshare/pull/1324"},"issue":{"href":"https://api.github.com/repos/hydroshare/hydroshare/issues/1324"},"comments":{"href":"https://api.github.com/repos/hydroshare/hydroshare/issues/1324/comments"},"review_comments":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324/comments"},"review_comment":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/1324/commits"},"statuses":{"href":"https://api.github.com/repos/hydroshare/hydroshare/statuses/84dd9b07c6e4dfd5d237ec05fa6fa2664c7ad4a9"}}}}
{"actor":{"display_login":"hyi"}}