{"action":"created","comment":{"url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments/42405552","id":42405552,"diff_hunk":"@@ -0,0 +1,254 @@\n+__author__ = 'drew'\n+\n+from django import forms\n+from hs_core.forms import BaseFormHelper\n+from crispy_forms.layout import Layout, Field, HTML\n+import copy\n+\n+class OriginalCoverageFormHelper(BaseFormHelper):\n+    def __init__(self, allow_edit=True, res_short_id=None, element_id=None, element_name=None,  *args, **kwargs):\n+\n+        # the order in which the model fields are listed for the FieldSet is the order these fields will be displayed\n+        field_width = 'form-control input-sm'\n+        layout = Layout(\n+                        Field('projection_name', css_class=field_width),\n+                        Field('datum', css_class=field_width),\n+                        Field('unit', css_class=field_width),\n+                        Field('projection_string', css_class=field_width),\n+                        Field('northlimit', css_class=field_width),\n+                        Field('eastlimit', css_class=field_width),\n+                        Field('southlimit', css_class=field_width),\n+                        Field('westlimit', css_class=field_width),\n+                        )\n+\n+        super(OriginalCoverageFormHelper, self).__init__(allow_edit, res_short_id, element_id, element_name, layout, element_name_label='Spatial Reference', *args, **kwargs)\n+\n+\n+class OriginalCoverageForm(forms.Form):\n+    projection_string = forms.CharField(max_length=2048, required=False, label='Coordinate String', widget=forms.Textarea())\n+    projection_name = forms.CharField(max_length=256, required=False, label='Coordinate Reference System')\n+    datum = forms.CharField(max_length=256, required=False, label='Datum')\n+    unit = forms.CharField(max_length=256, required=False, label='Unit')\n+\n+    northlimit = forms.FloatField(label='North Extent', widget=forms.TextInput())\n+    eastlimit = forms.FloatField(label='East Extent', widget=forms.TextInput())\n+    southlimit = forms.FloatField(label='South Extent', widget=forms.TextInput())\n+    westlimit = forms.FloatField(label='West Extent', widget=forms.TextInput())\n+\n+\n+    def __init__(self, allow_edit=True, res_short_id=None, element_id=None, *args, **kwargs):\n+        super(OriginalCoverageForm, self).__init__(*args, **kwargs)\n+        self.helper = OriginalCoverageFormHelper(allow_edit, res_short_id, element_id, element_name='OriginalCoverage')\n+        self.delete_modal_form = None\n+        self.number = 0\n+        self.allow_edit = allow_edit\n+        self.errors.clear()\n+\n+        if not allow_edit:\n+            for field in self.fields.values():\n+                field.widget.attrs['readonly'] = True\n+                field.widget.attrs['style'] = \"background-color:white;\"\n+\n+    def clean(self):\n+        # modify the form's cleaned_data dictionary\n+        super(OriginalCoverageForm, self).clean()\n+\n+        is_form_errors = False\n+        extent={}\n+        for bound in ('northlimit', 'eastlimit', 'southlimit', 'westlimit'):\n+            if self.cleaned_data.get(bound, None):\n+                v=self.cleaned_data[bound]\n+                if isinstance(v, float):\n+                    extent[bound]=self.cleaned_data[bound]\n+                else:\n+                    self._errors[bound] = [\"Data for %s is not float\" % bound]\n+                    is_form_errors = True\n+                    break\n+            else:\n+                self._errors[bound] = [\"Data for %s is missing\" % bound]\n+                is_form_errors = True\n+                break\n+\n+        if not is_form_errors:\n+            self.cleaned_data[\"northlimit\"] = extent[\"northlimit\"]\n+            self.cleaned_data[\"eastlimit\"] = extent[\"eastlimit\"]\n+            self.cleaned_data[\"southlimit\"] = extent[\"southlimit\"]\n+            self.cleaned_data[\"westlimit\"] = extent[\"westlimit\"]\n+\n+        return self.cleaned_data\n+\n+\n+class OriginalCoverageValidationForm(forms.Form):\n+    northlimit = forms.FloatField(required=True)\n+    eastlimit = forms.FloatField(required=True)\n+    southlimit = forms.FloatField(required=True)\n+    westlimit = forms.FloatField(required=True)\n+    projection_string = forms.CharField(max_length=1024, required=False)\n+    projection_name = forms.CharField(max_length=256, required=False)\n+    datum = forms.CharField(max_length=256, required=False)\n+    unit = forms.CharField(max_length=256, required=False)\n+\n+\n+class GeometryInformationFormHelper(BaseFormHelper):\n+    def __init__(self, allow_edit=True, res_short_id=None, element_id=None, element_name=None,  *args, **kwargs):\n+\n+        # the order in which the model fields are listed for the FieldSet is the order these fields will be displayed\n+        field_width = 'form-control input-sm'\n+        layout = Layout(\n+                        Field('geometryType', css_class=field_width),\n+                        Field('featureCount', css_class=field_width),\n+                        )\n+\n+        super(GeometryInformationFormHelper, self).__init__(allow_edit, res_short_id, element_id, element_name, layout, element_name_label='Geometry Information', *args, **kwargs)\n+\n+\n+class GeometryInformationForm(forms.Form):\n+    geometryType = forms.CharField(max_length=128, required=True, label='Geometry Type')\n+    featureCount = forms.IntegerField(label='Feature Count', required=True, widget=forms.TextInput())\n+\n+    def __init__(self, allow_edit=True, res_short_id=None, element_id=None, *args, **kwargs):\n+        super(GeometryInformationForm, self).__init__(*args, **kwargs)\n+        self.helper = GeometryInformationFormHelper(allow_edit, res_short_id, element_id, element_name='GeometryInformation')\n+        self.delete_modal_form = None\n+        self.number = 0\n+        self.allow_edit = allow_edit\n+        self.errors.clear()\n+\n+        if not allow_edit:\n+            for field in self.fields.values():\n+                field.widget.attrs['readonly'] = True\n+                field.widget.attrs['style'] = \"background-color:white;\"\n+\n+    def clean(self):\n+        # modify the form's cleaned_data dictionary\n+        super(GeometryInformationForm, self).clean()\n+\n+        is_form_errors = False\n+        out={}\n+        for ele in ('geometryType', 'featureCount'):\n+            if self.cleaned_data.get(ele, None):\n+                out[ele]=self.cleaned_data[ele]\n+            else:\n+                self._errors[ele] = [\"Data for %s is missing\" % ele]\n+                is_form_errors = True\n+                break\n+\n+        if not is_form_errors:\n+            self.cleaned_data[\"geometryType\"] = out[\"geometryType\"]\n+            self.cleaned_data[\"featureCount\"] = out[\"featureCount\"]\n+\n+        return self.cleaned_data\n+\n+\n+class GeometryInformationValidationForm(forms.Form):\n+    featureCount = forms.IntegerField(required=True)\n+    geometryType = forms.CharField(max_length=128, required=True)\n+\n+\n+class FieldInformationFormHelper(BaseFormHelper):\n+    def __init__(self, allow_edit=True, res_short_id=None, element_id=None, element_name=None,  *args, **kwargs):\n+\n+        # the order in which the model fields are listed for the FieldSet is the order these fields will be displayed\n+        field_width = 'form-control input-sm'\n+        layout = Layout(\n+                       HTML(\n+                        '<h4 ><strong>Field Information:</strong></h4>'\n+                        '<hr style=\"margin-top: 0px;margin-bottom: 2px\">'\n+                        '<table>'\n+                            '<tr class=\"row\">'\n+                                 '<th >Name</th><th class=\"col-sm-2\">Type</th> <th class=\"col-sm-2\">Width</th> <th class=\"col-sm-2\">Precision</th>'\n+                            '</tr>'\n+                            '{%for field_item in field_information %}'\n+                            'tr class=\"row\">'\n+                            '<td class=\"col-sm-2\">{{field_item.fieldName}}</td>'\n+                            '<td>{{field_item.fieldType}}</td>'\n+                            '<td>{{field_item.fieldWidth}}</td>'\n+                            '<td>{{field_item.fieldPrecision}}</td>'\n+                            '</tr>'\n+                            '{% endfor %}'\n+                        '</table>'","path":"hs_geographic_feature_resource/forms.py","position":169,"original_position":169,"commit_id":"0e0d5cddfaf572b54906c46e0c596a3ec74aed45","original_commit_id":"0e0d5cddfaf572b54906c46e0c596a3ec74aed45","user":{"login":"zhiyuli","id":10070599,"avatar_url":"https://avatars.githubusercontent.com/u/10070599?v=3","gravatar_id":"","url":"https://api.github.com/users/zhiyuli","html_url":"https://github.com/zhiyuli","followers_url":"https://api.github.com/users/zhiyuli/followers","following_url":"https://api.github.com/users/zhiyuli/following{/other_user}","gists_url":"https://api.github.com/users/zhiyuli/gists{/gist_id}","starred_url":"https://api.github.com/users/zhiyuli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zhiyuli/subscriptions","organizations_url":"https://api.github.com/users/zhiyuli/orgs","repos_url":"https://api.github.com/users/zhiyuli/repos","events_url":"https://api.github.com/users/zhiyuli/events{/privacy}","received_events_url":"https://api.github.com/users/zhiyuli/received_events","type":"User","site_admin":false},"body":"Is this what crispy form is all about?","created_at":"2015-10-19T18:09:59Z","updated_at":"2015-10-19T18:09:59Z","html_url":"https://github.com/hydroshare/hydroshare/pull/678#discussion_r42405552","pull_request_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678","_links":{"self":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments/42405552"},"html":{"href":"https://github.com/hydroshare/hydroshare/pull/678#discussion_r42405552"},"pull_request":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678"}}},"pull_request":{"url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678","id":48087366,"html_url":"https://github.com/hydroshare/hydroshare/pull/678","diff_url":"https://github.com/hydroshare/hydroshare/pull/678.diff","patch_url":"https://github.com/hydroshare/hydroshare/pull/678.patch","issue_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/678","number":678,"state":"open","locked":false,"title":"1.6.1 -- big-merge-503-geographic-feature-res-type-phase-1","user":{"login":"zhiyuli","id":10070599,"avatar_url":"https://avatars.githubusercontent.com/u/10070599?v=3","gravatar_id":"","url":"https://api.github.com/users/zhiyuli","html_url":"https://github.com/zhiyuli","followers_url":"https://api.github.com/users/zhiyuli/followers","following_url":"https://api.github.com/users/zhiyuli/following{/other_user}","gists_url":"https://api.github.com/users/zhiyuli/gists{/gist_id}","starred_url":"https://api.github.com/users/zhiyuli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zhiyuli/subscriptions","organizations_url":"https://api.github.com/users/zhiyuli/orgs","repos_url":"https://api.github.com/users/zhiyuli/repos","events_url":"https://api.github.com/users/zhiyuli/events{/privacy}","received_events_url":"https://api.github.com/users/zhiyuli/received_events","type":"User","site_admin":false},"body":"Testing coverage report\r\n\r\n```\r\nName                                       Stmts   Miss  Cover\r\n\r\n__init__                                       0      0   100%\r\nhs_access_control/__init__                     1      0   100%\r\nhs_access_control/models                     658    188    71%\r\nhs_app_netCDF/__init__                         0      0   100%\r\nhs_app_netCDF/admin                            4      0   100%\r\nhs_app_netCDF/forms                          121     70    42%\r\nhs_app_netCDF/models                         188    135    28%\r\nhs_app_netCDF/nc_functions/__init__            0      0   100%\r\nhs_app_netCDF/receivers                      195    184     6%\r\nhs_app_netCDF/serialization                  330    166    50%\r\nhs_app_netCDF/tasks                            0      0   100%\r\nhs_app_timeseries/__init__                     0      0   100%\r\nhs_app_timeseries/admin                        4      0   100%\r\nhs_app_timeseries/forms                      109     27    75%\r\nhs_app_timeseries/models                     269    169    37%\r\nhs_app_timeseries/receivers                  310    291     6%\r\nhs_app_timeseries/tasks                        0      0   100%\r\nhs_core/__init__                               0      0   100%\r\nhs_core/admin                                  8      0   100%\r\nhs_core/autocomplete_light_registry           21     14    33%\r\nhs_core/forms                                715    484    32%\r\nhs_core/hydroshare/__init__                    5      0   100%\r\nhs_core/hydroshare/date_util                  53     34    36%\r\nhs_core/hydroshare/discovery                   8      4    50%\r\nhs_core/hydroshare/hs_bagit                  132     44    67%\r\nhs_core/hydroshare/resource                  228     88    61%\r\nhs_core/hydroshare/social                     77     61    21%\r\nhs_core/hydroshare/users                     215    159    26%\r\nhs_core/hydroshare/utils                     237     76    68%\r\nhs_core/languages_iso                          1      0   100%\r\nhs_core/management/__init__                    1      0   100%\r\nhs_core/management/commands/__init__           1      0   100%\r\nhs_core/models                              1286    308    76%\r\nhs_core/receivers                             78     71     9%\r\nhs_core/serialization                        912    680    25%\r\nhs_core/signals                                9      0   100%\r\nhs_core/tasks                                  0      0   100%\r\nhs_core/templatetags/__init__                  1      0   100%\r\nhs_core/testing                               11      0   100%\r\nhs_core/views/__init__                       442    370    16%\r\nhs_core/views/pagination                       3      0   100%\r\nhs_core/views/resource_rest_api              169    113    33%\r\nhs_core/views/serializers                     75     15    80%\r\nhs_core/views/user_rest_api                    8      0   100%\r\nhs_core/views/utils                          105     78    26%\r\nhs_geo_raster_resource/__init__                0      0   100%\r\nhs_geo_raster_resource/admin                   4      0   100%\r\nhs_geo_raster_resource/forms                 154     93    40%\r\nhs_geo_raster_resource/models                177    113    36%\r\nhs_geo_raster_resource/receivers              98     88    10%\r\nhs_geo_raster_resource/serialization         341    210    38%\r\nhs_geo_raster_resource/tasks                   0      0   100%\r\nhs_geographic_feature_resource/__init__        0      0   100%\r\nhs_geographic_feature_resource/admin           4      0   100%\r\nhs_geographic_feature_resource/forms         157    104    34%\r\nhs_geographic_feature_resource/models        252     47    81%\r\nhs_geographic_feature_resource/parse_lib      84     10    88%\r\nhs_geographic_feature_resource/receivers     370     72    81%\r\nhs_metrics/__init__                            0      0   100%\r\nhs_metrics/models                              0      0   100%\r\nhs_model_program/__init__                      0      0   100%\r\nhs_model_program/admin                         4      0   100%\r\nhs_model_program/forms                        39     12    69%\r\nhs_model_program/models                       78     35    55%\r\nhs_model_program/receivers                    27     19    30%\r\nhs_modelinstance/__init__                      0      0   100%\r\nhs_modelinstance/admin                         4      0   100%\r\nhs_modelinstance/forms                        51     19    63%\r\nhs_modelinstance/models                      115     70    39%\r\nhs_modelinstance/receivers                    22     14    36%\r\nhs_modelinstance/tasks                         0      0   100%\r\nhs_swat_modelinstance/__init__                 0      0   100%\r\nhs_swat_modelinstance/admin                    5      0   100%\r\nhs_swat_modelinstance/forms                  164     61    63%\r\nhs_swat_modelinstance/models                 402    279    31%\r\nhs_swat_modelinstance/receivers               33     24    27%\r\nhs_swat_modelinstance/tasks                    0      0   100%\r\nhs_tools_resource/__init__                     0      0   100%\r\nhs_tools_resource/admin                        4      0   100%\r\nhs_tools_resource/forms                       85     30    65%\r\nhs_tools_resource/models                     169    118    30%\r\nhs_tools_resource/receivers                   39     29    26%\r\nhydroshare/__init__                            2      0   100%\r\nhydroshare/celery                             11      1    91%\r\nhydroshare/local_settings                     62      0   100%\r\nhydroshare/settings                           55      2    96%\r\nirods_browser_app/__init__                     0      0   100%\r\nirods_browser_app/models                       0      0   100%\r\nmanage                                         6      0   100%\r\nref_ts/__init__                                0      0   100%\r\nref_ts/admin                                   3      0   100%\r\nref_ts/models                                260    191    27%\r\nref_ts/receivers                              10      5    50%\r\ntheme/__init__                                 0      0   100%\r\ntheme/admin                                   12      0   100%\r\ntheme/blog_mods/__init__                       0      0   100%\r\ntheme/blog_mods/admin                          7      3    57%\r\ntheme/blog_mods/models                         0      0   100%\r\ntheme/models                                  85     12    86%\r\ntheme/templatetags/__init__                    0      0   100%\r\n\r\nTOTAL                                      10385   5490    47%\r\n```","created_at":"2015-10-19T15:33:02Z","updated_at":"2015-10-19T18:09:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3f03606021d47a805a47031f49242077c6d6f20b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678/commits","review_comments_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678/comments","review_comment_url":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hydroshare/hydroshare/issues/678/comments","statuses_url":"https://api.github.com/repos/hydroshare/hydroshare/statuses/0e0d5cddfaf572b54906c46e0c596a3ec74aed45","head":{"label":"hydroshare:big-merge-503-geographic-feature-res-type-phase-1","ref":"big-merge-503-geographic-feature-res-type-phase-1","sha":"0e0d5cddfaf572b54906c46e0c596a3ec74aed45","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}","created_at":"2014-10-02T02:19:41Z","updated_at":"2015-10-16T12:02:24Z","pushed_at":"2015-10-19T15:39:50Z","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":69289,"stargazers_count":12,"watchers_count":12,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":166,"forks":2,"open_issues":166,"watchers":12,"default_branch":"develop"}},"base":{"label":"hydroshare:develop","ref":"develop","sha":"80a170fa93060242e50d4f239b644ac59140a14b","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}","created_at":"2014-10-02T02:19:41Z","updated_at":"2015-10-16T12:02:24Z","pushed_at":"2015-10-19T15:39:50Z","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":69289,"stargazers_count":12,"watchers_count":12,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":166,"forks":2,"open_issues":166,"watchers":12,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678"},"html":{"href":"https://github.com/hydroshare/hydroshare/pull/678"},"issue":{"href":"https://api.github.com/repos/hydroshare/hydroshare/issues/678"},"comments":{"href":"https://api.github.com/repos/hydroshare/hydroshare/issues/678/comments"},"review_comments":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678/comments"},"review_comment":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hydroshare/hydroshare/pulls/678/commits"},"statuses":{"href":"https://api.github.com/repos/hydroshare/hydroshare/statuses/0e0d5cddfaf572b54906c46e0c596a3ec74aed45"}}}}