psat-server-web 0.4.2__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of psat-server-web might be problematic. Click here for more details.
- psat_server_web-0.5.1/PKG-INFO +131 -0
- psat_server_web-0.5.1/README.md +101 -0
- psat_server_web-0.5.1/psat_server_web/__version__.py +1 -0
- psat_server_web-0.5.1/psat_server_web/atlas/accounts/admin.py +34 -0
- psat_server_web-0.5.1/psat_server_web/atlas/accounts/migrations/0002_groupprofile_api_write_access.py +18 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/accounts/models.py +5 -1
- psat_server_web-0.5.1/psat_server_web/atlas/accounts/signals.py +27 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/settings.py +51 -5
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlasapi/authentication.py +7 -2
- psat_server_web-0.5.1/psat_server_web/atlas/atlasapi/permissions.py +45 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlasapi/views.py +16 -15
- psat_server_web-0.5.1/psat_server_web/atlas/tests/atlasapi/test_authentication.py +111 -0
- psat_server_web-0.5.1/psat_server_web/atlas/tests/atlasapi/test_failure.py +8 -0
- psat_server_web-0.5.1/psat_server_web/atlas/tests/atlasapi/test_permissions.py +343 -0
- psat_server_web-0.5.1/psat_server_web/ps1/__init__.py +0 -0
- psat_server_web-0.5.1/psat_server_web/ps1/psdb/__init__.py +0 -0
- psat_server_web-0.5.1/psat_server_web/ps1/site_media/js/celestial/data/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_gravity_alerts.sql +1 -1
- psat_server_web-0.5.1/psat_server_web.egg-info/PKG-INFO +131 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web.egg-info/SOURCES.txt +8 -1
- psat_server_web-0.5.1/setup.cfg +8 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/setup.py +3 -0
- psat_server_web-0.4.2/PKG-INFO +0 -43
- psat_server_web-0.4.2/README.md +0 -13
- psat_server_web-0.4.2/psat_server_web/__version__.py +0 -1
- psat_server_web-0.4.2/psat_server_web/atlas/accounts/admin.py +0 -18
- psat_server_web-0.4.2/psat_server_web/atlas/accounts/signals.py +0 -15
- psat_server_web-0.4.2/psat_server_web/atlas/atlasapi/permissions.py +0 -12
- psat_server_web-0.4.2/psat_server_web/atlas/tests/test_permissions.py +0 -28
- psat_server_web-0.4.2/psat_server_web.egg-info/PKG-INFO +0 -43
- psat_server_web-0.4.2/setup.cfg +0 -4
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/LICENSE +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/MANIFEST.in +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/.DS_Store +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/.DS_Store +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/accounts/apps.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/accounts/migrations/0001_initial.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/accounts/migrations/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/apiutils.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/commonqueries.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/dbviews.py +0 -0
- /psat_server_web-0.4.2/psat_server_web/atlas/site_media/js/celestial/data/__init__.py → /psat_server_web-0.5.1/psat_server_web/atlas/atlas/django-default.log +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/document.sh +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/formchoices.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/helpers.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/insert_gravity_event.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/lightcurvequeries.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/models.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/sqlpaginator.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/urls.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/view_celestial.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/views.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/wsgi.atlas.conf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/wsgi.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlas/wsgi_apache_example.conf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlasapi/apps.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlasapi/serializers.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlasapi/urls.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/cow_backup.txt +0 -0
- /psat_server_web-0.4.2/psat_server_web/atlas/tests/__init__.py → /psat_server_web-0.5.1/psat_server_web/atlas/django-default.log +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/generate_mod_wsgi_apachectl.sh +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/generate_mod_wsgi_apachectl_test.sh +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/manage.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/media/images/README.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/css/aladin.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/css/celestial.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/css/fontawesome.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/css/main.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/css/main_bootstrap.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/images/atlas_logo.png +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/images/image_not_available.jpeg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/aladin.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/bootstrap_utils.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/celestial.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/d3.geo.projection.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/d3.geo.projection.min.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/d3.geo.zoom.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/d3.min.js +0 -0
- {psat_server_web-0.4.2/psat_server_web/common → psat_server_web-0.5.1/psat_server_web/atlas/site_media/js/celestial/data}/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/constellations.bounds.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/constellations.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/constellations.lines.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/dsos.bright.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/lg.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/mw.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/planets.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/celestial/data/stars.6.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/colourplot.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/excanvas.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery-1.7.2.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.axislabels.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.crosshair.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.errorbars.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.fillbetween.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.image.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.navigate.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.pie.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.resize.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.selection.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.stack.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.symbol.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/flot/jquery.flot.threshold.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/followup_selectall.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/heatmap.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/lightcurve.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/lightcurveplotly.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/mjdcalc.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/plotly/plotly-latest.kws.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/recurrenceplot.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/js/recurrenceplotplotly.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-brands-400.eot +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-brands-400.svg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-brands-400.ttf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-brands-400.woff +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-brands-400.woff2 +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-regular-400.eot +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-regular-400.svg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-regular-400.ttf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-regular-400.woff +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-regular-400.woff2 +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-solid-900.eot +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-solid-900.svg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-solid-900.ttf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-solid-900.woff +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/site_media/webfonts/fa-solid-900.woff2 +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/sql/create_web_views.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/.DS_Store +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/400.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/403.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/404.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/500.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/atelfasttrackobject.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/atelsdiscovery.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/atelsfast.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/candidate.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/candidate_plotly.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/candidate_plotly_test.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/crossmatch_external.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/error.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup2.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup_bypass_django_tables.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup_quickview.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup_quickview_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/followup_subset.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/gcn.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/gcn_latex.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/heatmap.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/heatmap_test.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/index.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/index_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/index_bs_celestial.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/index_bs_celestial_experiment.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/iobserve.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/lightcurve.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/lightcurveddc.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/lightcurveforced.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/lightcurvestackedforced.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/pesstorecurrences.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/pesstorecurrencesddc.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/pesstosummary.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/search_results.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/search_results_plotly.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/sne.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/summary.csv +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/userdefinedlists.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/userdefinedlists_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/atlas/visibility.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/base.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/base_bootstrap.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/base_bootstrap_login.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/bootstrap4_django_tables2_atlas.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/invalid_login.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/loggedin.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/login.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/templates/logout.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/test.py +0 -0
- {psat_server_web-0.4.2/psat_server_web/ps1 → psat_server_web-0.5.1/psat_server_web/atlas/tests}/__init__.py +0 -0
- {psat_server_web-0.4.2/psat_server_web/ps1/psdb → psat_server_web-0.5.1/psat_server_web/atlas/tests/atlasapi}/__init__.py +0 -0
- {psat_server_web-0.4.2/psat_server_web/ps1/site_media/js/celestial/data → psat_server_web-0.5.1/psat_server_web/common}/__init__.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/common/psat_api_client.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/config/wsgi.conf.template +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/createUsers.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/generate_mod_wsgi_apachectl.sh +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/manage.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/media/images/README.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/admin.py.old +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/catalogueviews.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/commonqueries.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/dbviews.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/formchoices.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/helpers.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/img_scale.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/lightcurvequeries.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/models.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/settings.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/urls.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/views.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/wsgi.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdb/wsgi_apache_example.conf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdbapi/apps.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdbapi/permissions.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdbapi/query_auth.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdbapi/serializers.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdbapi/urls.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/psdbapi/views.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/css/aladin.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/css/celestial.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/css/fontawesome.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/css/main.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/css/main_bootstrap.css +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/1-star-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/1-star.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/2-star-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/2-star.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/3-star-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/3-star.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/aladin.gif +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/cfaIcon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/cfaIconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/confirmed-sne-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/confirmed-sne.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/detection_example.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/down.jpeg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/down.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/image_not_available.jpeg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/jhuIcon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/jhuIconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/minus.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/ncuIcon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/ncuIconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/non_detection_example.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/others-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/others.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs-logo-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs-logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs1_logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs1_o3_logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs2_logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs2_o3_logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs_logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs_logo_o4.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs_logo_original.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs_logo_yse.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/panstarrs_logo_yse_stack.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/pittsIcon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/pittsIconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/plus.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/ps1Icon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/ps1IconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/ps1sc.gif +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/qub-logo-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/qub-logo.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/qubIcon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/qubIconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/sdss.gif +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/table-background.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/table-bottom-left.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/table-bottom-right.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/table-row.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/table-top-left.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/table-top-right.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/uhifaIcon.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/uhifaIconHover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/up.jpeg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/up.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/variable-stars-hover.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/images/variable-stars.jpg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/aladin.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/celestial.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/d3.geo.projection.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/d3.geo.projection.min.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/d3.geo.zoom.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/d3.min.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/constellations.bounds.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/constellations.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/constellations.lines.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/dsos.bright.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/lg.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/mw.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/planets.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/celestial/data/stars.6.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/colourplot.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/excanvas.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery-1.7.2.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.axislabels.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.crosshair.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.errorbars.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.fillbetween.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.image.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.navigate.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.pie.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.resize.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.selection.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.stack.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.symbol.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/flot/jquery.flot.threshold.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/followup_selectall.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/lightcurve.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/lightcurveplotly.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/mjdcalc.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/plotly/plotly-latest.kws.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/recurrenceplot.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/js/recurrenceplotplotly.js +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-brands-400.eot +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-brands-400.svg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-brands-400.ttf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-brands-400.woff +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-brands-400.woff2 +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-regular-400.eot +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-regular-400.svg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-regular-400.ttf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-regular-400.woff +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-regular-400.woff2 +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-solid-900.eot +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-solid-900.svg +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-solid-900.ttf +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-solid-900.woff +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/site_media/webfonts/fa-solid-900.woff2 +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/sql/create_web_cat_views.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/sql/create_web_user_grants.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/sql/create_web_views.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/sql/create_web_views_fgss.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/400.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/403.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/404.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/500.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/admin/base_site.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/base.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/base_bootstrap.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/base_bootstrap_login.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/base_new.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/bootstrap4_django_tables2_atlas.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/invalid_login.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/loggedin.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/login.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/logout.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/atelsdiscovery.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/candidate.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/candidate_plotly.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/candidate_quickview.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/candidateflot.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/candidates.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/colourdata.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/crossmatch_cfa_with_ipp.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/crossmatch_external.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/dss2.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/error.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/fasttrackastronote.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/filter.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup_bs_old.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup_quickview.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup_quickview_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/followup_quickview_bs_old.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/gcn.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/gcn_latex.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/index.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/index_bs_celestial.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/index_public.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/lightcurve.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/lightcurveforced.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/lightcurves.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/obscat.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/obsmediawiki.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/public.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/public_textonly.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/reports.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/search_results.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/search_results_plotly.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/sne.json +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/userdefinedlists.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/ps1/templates/psdb/userdefinedlists_bs.html +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_detections.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_detectionsddc.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_detectionsnnc.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_diff_detections.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_diff_logs.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_diff_moments.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_diff_objects.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_diff_subcell_logs.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_diff_subcells.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_forced_photometry.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_heatmaps.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_metadata.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_metadataddc.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_objects.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/atlas_stacked_forced_photometry.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/convert_backend_storage_to_innodb.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/create_atlas_flattened_view.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/create_photpipe_views.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/create_schema.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/create_user_grants.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/create_user_grants_generic.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/create_user_grants_root.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/delete_transients.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/generateATLASSchemaAndCPPClasses.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/get_table_columns_for_avro.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/get_table_columns_for_avro.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/mjdnow.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/refresh_django_views.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/setup_database.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/setup_database_utils.py +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/sherlock_classifications.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/sherlock_crossmatches.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/sherlock_triggers_atlas.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/sherlock_triggers_ps1.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_gaia_dr1.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_gaia_dr2.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_gaia_dr2_cassandra.cql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_kepler_k2.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_kepler_k2_pixels.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_ps1_medium_deep_ref.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_ps1_ubercal_stars.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cat_satellites.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_catalogue_tables.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cfa_detections.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cfa_to_ipp_lookup.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_classification_flags.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_classification_history.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cmf_metadata.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cross_matches.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_cross_matches_external.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_detection_lists.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_detection_lists_atlas.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_followup_photometry.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_followup_telescope_instruments.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_followup_telescopes.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_forced_photometry.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_function_lunation.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_function_mjdlunation.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_gravity_event_annotations.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_gravity_events.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_guide_star_cat.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_image_groups.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_images.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_ipp_to_cfa_lookup.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_latest_object_stats.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_object_comments.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_object_group_definitions.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_object_group_definitions_atlas.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_object_groups.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_parameter_definitions.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_photpipe_detections.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_postage_stamp_images.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_postage_stamp_requests.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_postage_stamp_status_codes.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_processing_status.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_search_parameters.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_tns_requests.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_tphot_detections.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_transient_objects.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_transient_reobservations.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_vra_rank.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_vra_scores.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_vra_todo.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_zoo_requests.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/tcs_zooniverse_scores.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/types_gaia_dr2_cassandra.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_database_types_to_tns_types_atlas.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_database_types_to_tns_types_panstarrs.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_tcs_gravity_alerts_001.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_tcs_gravity_event_annotations_001.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_tcs_latest_object_stats_001.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_tcs_vra_rank_20240814.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/update_tcs_vra_scores_20240814.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/schema/vra_triggers_atlas.sql +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web.egg-info/dependency_links.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web.egg-info/not-zip-safe +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web.egg-info/requires.txt +0 -0
- {psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: psat-server-web
|
|
3
|
+
Version: 0.5.1
|
|
4
|
+
Summary: Pan-STARRS and ATLAS web interface.
|
|
5
|
+
Home-page: https://github.com/genghisken/psat-server-web
|
|
6
|
+
Author: genghisken
|
|
7
|
+
Author-email: ken.w.smith@gmail.com
|
|
8
|
+
License: MIT
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
12
|
+
Classifier: Topic :: Utilities
|
|
13
|
+
Requires-Python: >=3.6
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: numpy
|
|
17
|
+
Requires-Dist: mysqlclient
|
|
18
|
+
Requires-Dist: django<4.2
|
|
19
|
+
Requires-Dist: django_tables2
|
|
20
|
+
Requires-Dist: djangorestframework
|
|
21
|
+
Requires-Dist: mod-wsgi
|
|
22
|
+
Requires-Dist: pyyaml
|
|
23
|
+
Requires-Dist: docopt
|
|
24
|
+
Requires-Dist: python-dotenv
|
|
25
|
+
Requires-Dist: gkhtm
|
|
26
|
+
Requires-Dist: gkutils>=0.3.2
|
|
27
|
+
Requires-Dist: requests
|
|
28
|
+
Requires-Dist: lasair
|
|
29
|
+
Requires-Dist: dustmaps
|
|
30
|
+
|
|
31
|
+
# psat-server-web
|
|
32
|
+
Python 3 web interface for the Pan-STARRS and ATLAS surveys.
|
|
33
|
+
|
|
34
|
+
To install:
|
|
35
|
+
|
|
36
|
+
pip install psat-server-web
|
|
37
|
+
|
|
38
|
+
Once installed, don't forget to add the "data" symlinks in the:
|
|
39
|
+
|
|
40
|
+
site-packages/psat\_server\_web/atlas/media/images
|
|
41
|
+
site-packages/psat\_server\_web/ps1/media/images
|
|
42
|
+
|
|
43
|
+
directories which point to the location of the image stamps.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Local development version
|
|
48
|
+
|
|
49
|
+
A localised development instance can be run with docker compose. You will need a
|
|
50
|
+
`.env` file in your repository root to define some environment variables,
|
|
51
|
+
looking something like:
|
|
52
|
+
|
|
53
|
+
``` .env
|
|
54
|
+
# Django settings
|
|
55
|
+
SECRET_KEY={YOUR_SECRET_KEY_HERE}
|
|
56
|
+
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
|
|
57
|
+
|
|
58
|
+
# MySQL/MariaDB settings
|
|
59
|
+
MYSQL_ROOT_USER=root
|
|
60
|
+
MYSQL_ROOT_PASSWORD=root
|
|
61
|
+
MYSQL_DATABASE=atlas
|
|
62
|
+
MYSQL_USER=atlas
|
|
63
|
+
MYSQL_PASSWORD=atlas
|
|
64
|
+
MYSQL_PORT=3306
|
|
65
|
+
MYSQL_TEST_DATABASE=atlas_test
|
|
66
|
+
MYSQL_TEST_PORT=3306
|
|
67
|
+
MYSQL_TEST_USER=root
|
|
68
|
+
MYSQL_TEST_PASSWORD=root
|
|
69
|
+
|
|
70
|
+
DJANGO_MYSQL_DBUSER=atlas
|
|
71
|
+
DJANGO_LASAIR_TOKEN=
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Several of the values are omitted but aren't necessary to run a development
|
|
76
|
+
environment. Also ruch simple passwords should not be used in production, but this should get you something running locally. Hopefully it's then as simple as running the following:
|
|
77
|
+
|
|
78
|
+
``` bash
|
|
79
|
+
docker compose up
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Which will start 4 services, comprised of:
|
|
83
|
+
- `db` - A MariaDB instance. By default served at `localhost:3036`
|
|
84
|
+
- `atlas-web` - A mod-wsgi instance to serve the django front end. By default
|
|
85
|
+
served at `localhost:8086` and requires `db` to be running.
|
|
86
|
+
- `adminer` - A web interface for interacting with the db. By default served
|
|
87
|
+
at `localhost:8080` and requires `db` to be running.
|
|
88
|
+
- `tests` - A single-use run of the unit tests using django's `manage.py test`.
|
|
89
|
+
Requires `db` to be running.
|
|
90
|
+
|
|
91
|
+
Each of these services can be run independently with
|
|
92
|
+
|
|
93
|
+
``` bash
|
|
94
|
+
docker compose up {service_name}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
So if, for example, you wanted to run the tests you could execute
|
|
98
|
+
`docker compose up tests` and it would – after starting `db` if it is not
|
|
99
|
+
already running – perform a single run of the unit tests.
|
|
100
|
+
|
|
101
|
+
## A dummy database
|
|
102
|
+
|
|
103
|
+
There are a few things you will likely need to do to get a fully working version
|
|
104
|
+
of the web-server so as to make your local version useful, namely:
|
|
105
|
+
1. Get a dummy database dump .sql file from one of the developers and place it into `data/init.sql`
|
|
106
|
+
2. [Optional] Get an image dump and place it into `data/db_data/`
|
|
107
|
+
3. Fix a mild issue with the database model (see next section)
|
|
108
|
+
|
|
109
|
+
If you are having problems with any of this, contact one of the developers.
|
|
110
|
+
|
|
111
|
+
### Issue with `TcsGravityEventAnnotations.map_iteration`
|
|
112
|
+
|
|
113
|
+
If you are getting an error along the lines of
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
atlas-web-1 | ERRORS:
|
|
117
|
+
atlas-web-1 | atlas.TcsGravityEventAnnotations.map_iteration: (fields.E311) 'TcsGravityAlerts.map_iteration' must be unique because it is referenced by a foreign key.
|
|
118
|
+
atlas-web-1 | HINT: Add unique=True to this field or add a UniqueConstraint (without condition) in the model Meta.constraints.
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Then you may need to make an adjustment to the models, specifically by
|
|
122
|
+
uncommenting the line declaring `TcsGravityAlerts.map_iteration` which adds a
|
|
123
|
+
unique `kwarg`, and commenting the line without the unique `kwarg`, should solve
|
|
124
|
+
the problem. Specifically, the lines should look like
|
|
125
|
+
```
|
|
126
|
+
# map_iteration = models.CharField(max_length=100, blank=True, null=True)
|
|
127
|
+
map_iteration = models.CharField(max_length=100, blank=True, null=True, unique=True)
|
|
128
|
+
```
|
|
129
|
+
This is within the `TcsGravityAlerts(models.Model)` class. Again, please speak
|
|
130
|
+
to one of the developers if this is unclear.
|
|
131
|
+
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# psat-server-web
|
|
2
|
+
Python 3 web interface for the Pan-STARRS and ATLAS surveys.
|
|
3
|
+
|
|
4
|
+
To install:
|
|
5
|
+
|
|
6
|
+
pip install psat-server-web
|
|
7
|
+
|
|
8
|
+
Once installed, don't forget to add the "data" symlinks in the:
|
|
9
|
+
|
|
10
|
+
site-packages/psat\_server\_web/atlas/media/images
|
|
11
|
+
site-packages/psat\_server\_web/ps1/media/images
|
|
12
|
+
|
|
13
|
+
directories which point to the location of the image stamps.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Local development version
|
|
18
|
+
|
|
19
|
+
A localised development instance can be run with docker compose. You will need a
|
|
20
|
+
`.env` file in your repository root to define some environment variables,
|
|
21
|
+
looking something like:
|
|
22
|
+
|
|
23
|
+
``` .env
|
|
24
|
+
# Django settings
|
|
25
|
+
SECRET_KEY={YOUR_SECRET_KEY_HERE}
|
|
26
|
+
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
|
|
27
|
+
|
|
28
|
+
# MySQL/MariaDB settings
|
|
29
|
+
MYSQL_ROOT_USER=root
|
|
30
|
+
MYSQL_ROOT_PASSWORD=root
|
|
31
|
+
MYSQL_DATABASE=atlas
|
|
32
|
+
MYSQL_USER=atlas
|
|
33
|
+
MYSQL_PASSWORD=atlas
|
|
34
|
+
MYSQL_PORT=3306
|
|
35
|
+
MYSQL_TEST_DATABASE=atlas_test
|
|
36
|
+
MYSQL_TEST_PORT=3306
|
|
37
|
+
MYSQL_TEST_USER=root
|
|
38
|
+
MYSQL_TEST_PASSWORD=root
|
|
39
|
+
|
|
40
|
+
DJANGO_MYSQL_DBUSER=atlas
|
|
41
|
+
DJANGO_LASAIR_TOKEN=
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Several of the values are omitted but aren't necessary to run a development
|
|
46
|
+
environment. Also ruch simple passwords should not be used in production, but this should get you something running locally. Hopefully it's then as simple as running the following:
|
|
47
|
+
|
|
48
|
+
``` bash
|
|
49
|
+
docker compose up
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Which will start 4 services, comprised of:
|
|
53
|
+
- `db` - A MariaDB instance. By default served at `localhost:3036`
|
|
54
|
+
- `atlas-web` - A mod-wsgi instance to serve the django front end. By default
|
|
55
|
+
served at `localhost:8086` and requires `db` to be running.
|
|
56
|
+
- `adminer` - A web interface for interacting with the db. By default served
|
|
57
|
+
at `localhost:8080` and requires `db` to be running.
|
|
58
|
+
- `tests` - A single-use run of the unit tests using django's `manage.py test`.
|
|
59
|
+
Requires `db` to be running.
|
|
60
|
+
|
|
61
|
+
Each of these services can be run independently with
|
|
62
|
+
|
|
63
|
+
``` bash
|
|
64
|
+
docker compose up {service_name}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
So if, for example, you wanted to run the tests you could execute
|
|
68
|
+
`docker compose up tests` and it would – after starting `db` if it is not
|
|
69
|
+
already running – perform a single run of the unit tests.
|
|
70
|
+
|
|
71
|
+
## A dummy database
|
|
72
|
+
|
|
73
|
+
There are a few things you will likely need to do to get a fully working version
|
|
74
|
+
of the web-server so as to make your local version useful, namely:
|
|
75
|
+
1. Get a dummy database dump .sql file from one of the developers and place it into `data/init.sql`
|
|
76
|
+
2. [Optional] Get an image dump and place it into `data/db_data/`
|
|
77
|
+
3. Fix a mild issue with the database model (see next section)
|
|
78
|
+
|
|
79
|
+
If you are having problems with any of this, contact one of the developers.
|
|
80
|
+
|
|
81
|
+
### Issue with `TcsGravityEventAnnotations.map_iteration`
|
|
82
|
+
|
|
83
|
+
If you are getting an error along the lines of
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
atlas-web-1 | ERRORS:
|
|
87
|
+
atlas-web-1 | atlas.TcsGravityEventAnnotations.map_iteration: (fields.E311) 'TcsGravityAlerts.map_iteration' must be unique because it is referenced by a foreign key.
|
|
88
|
+
atlas-web-1 | HINT: Add unique=True to this field or add a UniqueConstraint (without condition) in the model Meta.constraints.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Then you may need to make an adjustment to the models, specifically by
|
|
92
|
+
uncommenting the line declaring `TcsGravityAlerts.map_iteration` which adds a
|
|
93
|
+
unique `kwarg`, and commenting the line without the unique `kwarg`, should solve
|
|
94
|
+
the problem. Specifically, the lines should look like
|
|
95
|
+
```
|
|
96
|
+
# map_iteration = models.CharField(max_length=100, blank=True, null=True)
|
|
97
|
+
map_iteration = models.CharField(max_length=100, blank=True, null=True, unique=True)
|
|
98
|
+
```
|
|
99
|
+
This is within the `TcsGravityAlerts(models.Model)` class. Again, please speak
|
|
100
|
+
to one of the developers if this is unclear.
|
|
101
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.5.1'
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Customise admin interface for Group model to include GroupProfile, so default
|
|
3
|
+
expiry time for tokens can be set.
|
|
4
|
+
"""
|
|
5
|
+
import logging
|
|
6
|
+
|
|
7
|
+
from django.contrib import admin
|
|
8
|
+
from django.contrib.auth.models import Group
|
|
9
|
+
from django.forms.models import ModelForm
|
|
10
|
+
from .models import GroupProfile
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
class AlwaysChangedModelForm(ModelForm):
|
|
16
|
+
def has_changed(self):
|
|
17
|
+
""" Should return True if data differs from initial.
|
|
18
|
+
By always returning true even unchanged inlines will get validated and saved.
|
|
19
|
+
We need this because the GroupProfile needs to be created even if the default
|
|
20
|
+
values haven't been changed.
|
|
21
|
+
"""
|
|
22
|
+
return True
|
|
23
|
+
|
|
24
|
+
class GroupProfileInline(admin.StackedInline):
|
|
25
|
+
model = GroupProfile
|
|
26
|
+
can_delete = False
|
|
27
|
+
extra = 1
|
|
28
|
+
form = AlwaysChangedModelForm
|
|
29
|
+
|
|
30
|
+
class GroupAdmin(admin.ModelAdmin):
|
|
31
|
+
inlines = (GroupProfileInline,)
|
|
32
|
+
|
|
33
|
+
admin.site.unregister(Group)
|
|
34
|
+
admin.site.register(Group, GroupAdmin)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated by Django 5.1 on 2024-12-04 12:00
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('accounts', '0001_initial'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name='groupprofile',
|
|
15
|
+
name='api_write_access',
|
|
16
|
+
field=models.BooleanField(default=False, help_text='Does the group have write access to the API?'),
|
|
17
|
+
),
|
|
18
|
+
]
|
|
@@ -17,10 +17,14 @@ class GroupProfile(models.Model):
|
|
|
17
17
|
on_delete=models.CASCADE,
|
|
18
18
|
related_name='profile'
|
|
19
19
|
)
|
|
20
|
+
api_write_access = models.BooleanField(
|
|
21
|
+
default=False,
|
|
22
|
+
help_text='Does the group have write access to the API?'
|
|
23
|
+
)
|
|
20
24
|
token_expiration_time = models.DurationField(
|
|
21
25
|
help_text='in days, default 1 day (24*60*60 seconds)',
|
|
22
26
|
default=timedelta(days=1)
|
|
23
|
-
|
|
27
|
+
)
|
|
24
28
|
description = models.TextField(
|
|
25
29
|
blank=True,
|
|
26
30
|
help_text='What is the group for?'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from django.db.models import signals
|
|
4
|
+
from django.dispatch import receiver
|
|
5
|
+
from django.contrib.auth.models import Group
|
|
6
|
+
|
|
7
|
+
logger = logging.getLogger(__name__)
|
|
8
|
+
|
|
9
|
+
@receiver(signals.post_save, sender=Group)
|
|
10
|
+
def create_group_profile(sender, instance, created, **kwargs):
|
|
11
|
+
# NOTE (2024-11-12 JL): This function is no longer needed as we have instead
|
|
12
|
+
# solved the problem of duplicate GroupProfile creation by using the
|
|
13
|
+
# AlwaysChangedModelForm in the admin interface, but I'm leaving this here
|
|
14
|
+
# as a reference for future use of signals and logging.
|
|
15
|
+
logger.debug('create_group_profile called')
|
|
16
|
+
logger.debug('instance: %s', instance)
|
|
17
|
+
logger.debug('created: %s', created)
|
|
18
|
+
|
|
19
|
+
# Disconnect the signal so we don't get into a loop
|
|
20
|
+
signals.post_save.disconnect(create_group_profile, sender=Group)
|
|
21
|
+
|
|
22
|
+
if created:
|
|
23
|
+
logger.debug('In created block')
|
|
24
|
+
|
|
25
|
+
# Reconnect the signal once we're done
|
|
26
|
+
signals.post_save.connect(create_group_profile, sender=Group)
|
|
27
|
+
logger.debug('create_group_profile finished')
|
|
@@ -25,9 +25,9 @@ SITE_ID = 1
|
|
|
25
25
|
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')
|
|
26
26
|
|
|
27
27
|
# SECURITY WARNING: don't run with debug turned on in production!
|
|
28
|
-
DEBUG = True
|
|
28
|
+
DEBUG = os.environ.get('DJANGO_DEBUG', 'False') == 'True'
|
|
29
29
|
|
|
30
|
-
TEMPLATE_DEBUG = True
|
|
30
|
+
TEMPLATE_DEBUG = os.environ.get('DJANGO_DEBUG', 'False') == 'True'
|
|
31
31
|
|
|
32
32
|
# 2021-08-21 KWS Need to set this to None, otherwise default is 1000.
|
|
33
33
|
DATA_UPLOAD_MAX_NUMBER_FIELDS = None
|
|
@@ -57,14 +57,17 @@ LOGOUT_URL = 'logout'
|
|
|
57
57
|
|
|
58
58
|
DATABASES = {
|
|
59
59
|
'default': {
|
|
60
|
-
'ENGINE': 'django.db.backends.mysql',
|
|
60
|
+
'ENGINE': os.environ.get('DJANGO_DB_ENGINE', 'django.db.backends.mysql'),
|
|
61
61
|
'NAME': os.environ.get('DJANGO_MYSQL_DBNAME'),
|
|
62
62
|
'USER': os.environ.get('DJANGO_MYSQL_DBUSER'),
|
|
63
63
|
'PASSWORD': os.environ.get('DJANGO_MYSQL_DBPASS'),
|
|
64
64
|
'HOST': os.environ.get('DJANGO_MYSQL_DBHOST'),
|
|
65
65
|
'PORT': int(os.environ.get('DJANGO_MYSQL_DBPORT')),
|
|
66
66
|
'TEST': {
|
|
67
|
-
'NAME': os.environ.get('
|
|
67
|
+
'NAME': os.environ.get('DJANGO_MYSQL_TEST_DBNAME'),
|
|
68
|
+
'PORT': os.environ.get('DJANGO_MYSQL_TEST_DBPORT'),
|
|
69
|
+
'USER': os.environ.get('DJANGO_MYSQL_TEST_DBUSER'),
|
|
70
|
+
'PASSWORD': os.environ.get('DJANGO_MYSQL_TEST_DBPASS'),
|
|
68
71
|
}
|
|
69
72
|
}
|
|
70
73
|
}
|
|
@@ -84,6 +87,49 @@ DAEMONS = {
|
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
|
|
90
|
+
DJANGO_LOG_LEVEL = os.environ.get('DJANGO_LOG_LEVEL', 'WARNING')
|
|
91
|
+
LOGGING = {
|
|
92
|
+
"version": 1, # the dictConfig format version
|
|
93
|
+
"disable_existing_loggers": False, # retain the default loggers
|
|
94
|
+
"formatters": {
|
|
95
|
+
"verbose": {
|
|
96
|
+
"format": "{name} {levelname} {asctime} {module} {message}",
|
|
97
|
+
"style": "{",
|
|
98
|
+
},
|
|
99
|
+
"simple": {
|
|
100
|
+
"format": "{levelname} {message}",
|
|
101
|
+
"style": "{",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
"handlers": {
|
|
106
|
+
# The different log handlers are defined here. We have a file logger and
|
|
107
|
+
# a stderr logger - which reroutes to the error_log file managed by wsgi.
|
|
108
|
+
"file": {
|
|
109
|
+
"class": "logging.FileHandler",
|
|
110
|
+
"filename": "django-default.log",
|
|
111
|
+
"level": DJANGO_LOG_LEVEL,
|
|
112
|
+
"formatter": "verbose",
|
|
113
|
+
},
|
|
114
|
+
"stderr": {
|
|
115
|
+
"class": "logging.StreamHandler",
|
|
116
|
+
"level": DJANGO_LOG_LEVEL,
|
|
117
|
+
"formatter": "verbose",
|
|
118
|
+
"stream": "ext://sys.stderr",
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
# Implement the stderr logger as the default logger.
|
|
122
|
+
"loggers": {
|
|
123
|
+
"": {
|
|
124
|
+
"handlers": ["stderr"],
|
|
125
|
+
"level": DJANGO_LOG_LEVEL,
|
|
126
|
+
"propagate": True,
|
|
127
|
+
},
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
87
133
|
LANGUAGE_CODE = 'en-gb'
|
|
88
134
|
|
|
89
135
|
TIME_ZONE = 'UTC'
|
|
@@ -187,4 +233,4 @@ INSTALLED_APPS = [
|
|
|
187
233
|
]
|
|
188
234
|
|
|
189
235
|
# Token expiry time in days, default 1 day (24*60*60 seconds)
|
|
190
|
-
TOKEN_EXPIRY = int(os.environ.get("API_TOKEN_EXPIRY") or 86400) # seconds
|
|
236
|
+
TOKEN_EXPIRY = int(os.environ.get("API_TOKEN_EXPIRY") or 86400) # seconds
|
{psat_server_web-0.4.2 → psat_server_web-0.5.1}/psat_server_web/atlas/atlasapi/authentication.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from re import match
|
|
2
|
+
import logging
|
|
2
3
|
|
|
3
4
|
from django.conf import settings
|
|
4
5
|
from django.utils.timezone import now
|
|
@@ -6,6 +7,8 @@ from rest_framework.authtoken.models import Token
|
|
|
6
7
|
from rest_framework.authentication import TokenAuthentication
|
|
7
8
|
from rest_framework.exceptions import AuthenticationFailed
|
|
8
9
|
|
|
10
|
+
logger = logging.getLogger(__name__)
|
|
11
|
+
|
|
9
12
|
class ExpiringTokenAuthentication(TokenAuthentication):
|
|
10
13
|
"""
|
|
11
14
|
Token authentication using the ExpiringToken model, which has an expiry
|
|
@@ -23,8 +26,9 @@ class ExpiringTokenAuthentication(TokenAuthentication):
|
|
|
23
26
|
try:
|
|
24
27
|
group_profile = user.groups.first().profile
|
|
25
28
|
except AttributeError:
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
msg = 'Could not authenticate: Group has no profile. Please contact administrator.'
|
|
30
|
+
logger.error(msg)
|
|
31
|
+
raise AuthenticationFailed(msg)
|
|
28
32
|
token_expiration_time = group_profile.token_expiration_time.total_seconds()
|
|
29
33
|
else:
|
|
30
34
|
# Otherwise use the default expiration time
|
|
@@ -33,6 +37,7 @@ class ExpiringTokenAuthentication(TokenAuthentication):
|
|
|
33
37
|
# Calculate the token's age and compare it to the expiration setting
|
|
34
38
|
token_age = (now() - token.created).total_seconds()
|
|
35
39
|
if token_age > token_expiration_time:
|
|
40
|
+
logger.warning(f'User {user} attempted to use an expired token.')
|
|
36
41
|
raise AuthenticationFailed('Token has expired.')
|
|
37
42
|
|
|
38
43
|
return user, token
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from rest_framework.permissions import BasePermission, SAFE_METHODS
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
logger = logging.getLogger(__name__)
|
|
7
|
+
|
|
8
|
+
class HasReadAccess(BasePermission):
|
|
9
|
+
def has_permission(self, request, view):
|
|
10
|
+
# Allow all safe methods (GET, OPTIONS, HEAD)
|
|
11
|
+
if request.method in SAFE_METHODS:
|
|
12
|
+
return True
|
|
13
|
+
|
|
14
|
+
# Allow POST if the user is authenticated
|
|
15
|
+
return (request.user
|
|
16
|
+
and request.user.is_authenticated)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class HasWriteAccess(BasePermission):
|
|
20
|
+
def has_permission(self, request, view):
|
|
21
|
+
# Allow all safe methods (GET, OPTIONS, HEAD)
|
|
22
|
+
if request.method in SAFE_METHODS:
|
|
23
|
+
return True
|
|
24
|
+
|
|
25
|
+
write_fl = False
|
|
26
|
+
user = request.user
|
|
27
|
+
# Retrieve the user's group and get the api write access flag from the
|
|
28
|
+
# group profile
|
|
29
|
+
if user.groups.exists():
|
|
30
|
+
try:
|
|
31
|
+
group_profile = user.groups.first().profile
|
|
32
|
+
write_fl = group_profile.api_write_access
|
|
33
|
+
except AttributeError:
|
|
34
|
+
# If the group has no profile, then there's something wrong with
|
|
35
|
+
# the database. This should be fixed by an administrator, but
|
|
36
|
+
# we don't need to block the user from accessing the API.
|
|
37
|
+
msg = 'Could not authorise based on group: Group has no profile.'
|
|
38
|
+
logger.error(msg)
|
|
39
|
+
write_fl = False
|
|
40
|
+
|
|
41
|
+
# Only allow POST to write endpoints if the user is authenticated and is
|
|
42
|
+
# either in a writeable group or is a staff member
|
|
43
|
+
return (request.user
|
|
44
|
+
and request.user.is_authenticated
|
|
45
|
+
and (write_fl or request.user.is_staff))
|
|
@@ -28,7 +28,7 @@ from .serializers import (
|
|
|
28
28
|
ObjectDetectionListSerializer,
|
|
29
29
|
)
|
|
30
30
|
from .authentication import QueryAuthentication, ExpiringTokenAuthentication
|
|
31
|
-
from .permissions import
|
|
31
|
+
from .permissions import HasReadAccess, HasWriteAccess
|
|
32
32
|
|
|
33
33
|
def retcode(message):
|
|
34
34
|
if 'error' in message: return status.HTTP_400_BAD_REQUEST
|
|
@@ -68,7 +68,7 @@ class ObtainExpiringAuthToken(ObtainAuthToken):
|
|
|
68
68
|
|
|
69
69
|
class ConeView(APIView):
|
|
70
70
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
71
|
-
permission_classes = [IsAuthenticated&
|
|
71
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
72
72
|
|
|
73
73
|
def get(self, request):
|
|
74
74
|
serializer = ConeSerializer(data=request.GET, context={'request': request})
|
|
@@ -87,7 +87,7 @@ class ConeView(APIView):
|
|
|
87
87
|
|
|
88
88
|
class ObjectsView(APIView):
|
|
89
89
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
90
|
-
permission_classes = [IsAuthenticated&
|
|
90
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
91
91
|
|
|
92
92
|
def get(self, request):
|
|
93
93
|
serializer = ObjectsSerializer(data=request.GET, context={'request': request})
|
|
@@ -106,7 +106,7 @@ class ObjectsView(APIView):
|
|
|
106
106
|
|
|
107
107
|
class ObjectListView(APIView):
|
|
108
108
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
109
|
-
permission_classes = [IsAuthenticated&
|
|
109
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
110
110
|
|
|
111
111
|
def get(self, request):
|
|
112
112
|
serializer = ObjectListSerializer(data=request.GET, context={'request': request})
|
|
@@ -125,7 +125,7 @@ class ObjectListView(APIView):
|
|
|
125
125
|
|
|
126
126
|
class VRAScoresView(APIView):
|
|
127
127
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
128
|
-
permission_classes = [IsAuthenticated&
|
|
128
|
+
permission_classes = [IsAuthenticated&HasWriteAccess]
|
|
129
129
|
|
|
130
130
|
def get(self, request):
|
|
131
131
|
return Response({"Error": "GET is not implemented for this service."})
|
|
@@ -142,7 +142,7 @@ class VRAScoresView(APIView):
|
|
|
142
142
|
|
|
143
143
|
class VRAScoresListView(APIView):
|
|
144
144
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
145
|
-
permission_classes = [IsAuthenticated&
|
|
145
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
146
146
|
|
|
147
147
|
def get(self, request):
|
|
148
148
|
serializer = VRAScoresListSerializer(data=request.GET, context={'request': request})
|
|
@@ -162,7 +162,7 @@ class VRAScoresListView(APIView):
|
|
|
162
162
|
# appropriate to the circumstances. E.g. if object is not found generate a 404, etc.
|
|
163
163
|
class VRATodoView(APIView):
|
|
164
164
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
165
|
-
permission_classes = [IsAuthenticated&
|
|
165
|
+
permission_classes = [IsAuthenticated&HasWriteAccess]
|
|
166
166
|
|
|
167
167
|
def get(self, request):
|
|
168
168
|
return Response({"Error": "GET is not implemented for this service."})
|
|
@@ -179,7 +179,7 @@ class VRATodoView(APIView):
|
|
|
179
179
|
# 2024-05-07 KWS Added VRATodoListView.
|
|
180
180
|
class VRATodoListView(APIView):
|
|
181
181
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
182
|
-
permission_classes = [IsAuthenticated&
|
|
182
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
183
183
|
|
|
184
184
|
def get(self, request):
|
|
185
185
|
serializer = VRATodoListSerializer(data=request.GET, context={'request': request})
|
|
@@ -197,7 +197,7 @@ class VRATodoListView(APIView):
|
|
|
197
197
|
|
|
198
198
|
class TcsObjectGroupsView(APIView):
|
|
199
199
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
200
|
-
permission_classes = [IsAuthenticated&
|
|
200
|
+
permission_classes = [IsAuthenticated&HasWriteAccess]
|
|
201
201
|
|
|
202
202
|
def get(self, request):
|
|
203
203
|
return Response({"Error": "GET is not implemented for this service."})
|
|
@@ -213,7 +213,7 @@ class TcsObjectGroupsView(APIView):
|
|
|
213
213
|
|
|
214
214
|
class TcsObjectGroupsListView(APIView):
|
|
215
215
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
216
|
-
permission_classes = [IsAuthenticated&
|
|
216
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
217
217
|
|
|
218
218
|
def get(self, request):
|
|
219
219
|
serializer = TcsObjectGroupsListSerializer(data=request.GET, context={'request': request})
|
|
@@ -232,7 +232,8 @@ class TcsObjectGroupsListView(APIView):
|
|
|
232
232
|
|
|
233
233
|
class TcsObjectGroupsDeleteView(APIView):
|
|
234
234
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
235
|
-
|
|
235
|
+
# TODO: Change this to HasDeleteAccess?
|
|
236
|
+
permission_classes = [IsAuthenticated&HasWriteAccess]
|
|
236
237
|
|
|
237
238
|
def get(self, request):
|
|
238
239
|
return Response({"Error": "GET is not implemented for this service."})
|
|
@@ -255,7 +256,7 @@ class TcsObjectGroupsDeleteView(APIView):
|
|
|
255
256
|
# appropriate to the circumstances. E.g. if object is not found generate a 404, etc.
|
|
256
257
|
class VRARankView(APIView):
|
|
257
258
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
258
|
-
permission_classes = [IsAuthenticated&
|
|
259
|
+
permission_classes = [IsAuthenticated&HasWriteAccess]
|
|
259
260
|
|
|
260
261
|
def get(self, request):
|
|
261
262
|
return Response({"Error": "GET is not implemented for this service."})
|
|
@@ -272,7 +273,7 @@ class VRARankView(APIView):
|
|
|
272
273
|
# 2024-05-22 KWS Added VRARankListView.
|
|
273
274
|
class VRARankListView(APIView):
|
|
274
275
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
275
|
-
permission_classes = [IsAuthenticated&
|
|
276
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
276
277
|
|
|
277
278
|
def get(self, request):
|
|
278
279
|
serializer = VRARankListSerializer(data=request.GET, context={'request': request})
|
|
@@ -292,7 +293,7 @@ class VRARankListView(APIView):
|
|
|
292
293
|
# 2024-09-24 KWS Added ExternalCrossmatchesListView.
|
|
293
294
|
class ExternalCrossmatchesListView(APIView):
|
|
294
295
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
295
|
-
permission_classes = [IsAuthenticated&
|
|
296
|
+
permission_classes = [IsAuthenticated&HasReadAccess]
|
|
296
297
|
|
|
297
298
|
def get(self, request):
|
|
298
299
|
serializer = ExternalCrossmatchesListSerializer(data=request.GET, context={'request': request})
|
|
@@ -312,7 +313,7 @@ class ExternalCrossmatchesListView(APIView):
|
|
|
312
313
|
# 2024-09-24 KWS Added ExternalCrossmatchesListView.
|
|
313
314
|
class ObjectDetectionListView(APIView):
|
|
314
315
|
authentication_classes = [ExpiringTokenAuthentication, QueryAuthentication]
|
|
315
|
-
permission_classes = [IsAuthenticated&
|
|
316
|
+
permission_classes = [IsAuthenticated&HasWriteAccess]
|
|
316
317
|
|
|
317
318
|
def get(self, request):
|
|
318
319
|
serializer = ObjectDetectionListSerializer(data=request.GET, context={'request': request})
|