igs-slm 0.1.0b0__py3-none-any.whl
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.
- igs_slm-0.1.0b0.dist-info/LICENSE +21 -0
- igs_slm-0.1.0b0.dist-info/METADATA +151 -0
- igs_slm-0.1.0b0.dist-info/RECORD +447 -0
- igs_slm-0.1.0b0.dist-info/WHEEL +4 -0
- igs_slm-0.1.0b0.dist-info/entry_points.txt +3 -0
- igs_tools/__init__.py +0 -0
- igs_tools/connection.py +88 -0
- igs_tools/defines/__init__.py +8 -0
- igs_tools/defines/constellation.py +21 -0
- igs_tools/defines/data_center.py +75 -0
- igs_tools/defines/rinex.py +49 -0
- igs_tools/directory.py +247 -0
- igs_tools/utils.py +66 -0
- slm/__init__.py +21 -0
- slm/admin.py +674 -0
- slm/api/edit/__init__.py +0 -0
- slm/api/edit/serializers.py +316 -0
- slm/api/edit/views.py +1632 -0
- slm/api/fields.py +89 -0
- slm/api/filter.py +504 -0
- slm/api/pagination.py +55 -0
- slm/api/permissions.py +65 -0
- slm/api/public/__init__.py +0 -0
- slm/api/public/serializers.py +249 -0
- slm/api/public/views.py +606 -0
- slm/api/serializers.py +132 -0
- slm/api/views.py +148 -0
- slm/apps.py +323 -0
- slm/authentication.py +198 -0
- slm/bin/__init__.py +0 -0
- slm/bin/startproject.py +262 -0
- slm/bin/templates/{{ project_dir }}/pyproject.toml +35 -0
- slm/bin/templates/{{ project_dir }}/sites/__init__.py +0 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/__init__.py +0 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/base.py +15 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/develop/__init__.py +56 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/develop/local.py +4 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/develop/wsgi.py +16 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/manage.py +34 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/production/__init__.py +61 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/production/wsgi.py +16 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/urls.py +7 -0
- slm/bin/templates/{{ project_dir }}/sites/{{ site }}/validation.py +11 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/__init__.py +0 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/admin.py +5 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/apps.py +14 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/management/__init__.py +0 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/management/commands/__init__.py +0 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/management/commands/import_archive.py +64 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/migrations/__init__.py +0 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/models.py +6 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/templates/slm/base.html +8 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/urls.py +10 -0
- slm/bin/templates/{{ project_dir }}/{{ extension_app }}/views.py +5 -0
- slm/defines/AlertLevel.py +24 -0
- slm/defines/AntennaCalibration.py +25 -0
- slm/defines/AntennaFeatures.py +27 -0
- slm/defines/AntennaReferencePoint.py +22 -0
- slm/defines/Aspiration.py +13 -0
- slm/defines/CardinalDirection.py +19 -0
- slm/defines/CollocationStatus.py +12 -0
- slm/defines/EquipmentState.py +22 -0
- slm/defines/FlagSeverity.py +14 -0
- slm/defines/FractureSpacing.py +15 -0
- slm/defines/FrequencyStandardType.py +15 -0
- slm/defines/GeodesyMLVersion.py +48 -0
- slm/defines/ISOCountry.py +1194 -0
- slm/defines/Instrumentation.py +19 -0
- slm/defines/LogEntryType.py +30 -0
- slm/defines/SLMFileType.py +18 -0
- slm/defines/SiteFileUploadStatus.py +61 -0
- slm/defines/SiteLogFormat.py +49 -0
- slm/defines/SiteLogStatus.py +78 -0
- slm/defines/TectonicPlates.py +28 -0
- slm/defines/__init__.py +46 -0
- slm/forms.py +1126 -0
- slm/jinja2/slm/sitelog/ascii_9char.log +346 -0
- slm/jinja2/slm/sitelog/legacy.log +346 -0
- slm/jinja2/slm/sitelog/xsd/0.4/collocationInformation.xml +12 -0
- slm/jinja2/slm/sitelog/xsd/0.4/condition.xml +12 -0
- slm/jinja2/slm/sitelog/xsd/0.4/contact.xml +52 -0
- slm/jinja2/slm/sitelog/xsd/0.4/formInformation.xml +5 -0
- slm/jinja2/slm/sitelog/xsd/0.4/frequencyStandard.xml +12 -0
- slm/jinja2/slm/sitelog/xsd/0.4/gnssAntenna.xml +16 -0
- slm/jinja2/slm/sitelog/xsd/0.4/gnssReceiver.xml +11 -0
- slm/jinja2/slm/sitelog/xsd/0.4/humiditySensor.xml +13 -0
- slm/jinja2/slm/sitelog/xsd/0.4/localEpisodicEffect.xml +10 -0
- slm/jinja2/slm/sitelog/xsd/0.4/moreInformation.xml +22 -0
- slm/jinja2/slm/sitelog/xsd/0.4/multipathSource.xml +10 -0
- slm/jinja2/slm/sitelog/xsd/0.4/otherInstrumentation.xml +5 -0
- slm/jinja2/slm/sitelog/xsd/0.4/pressureSensor.xml +12 -0
- slm/jinja2/slm/sitelog/xsd/0.4/radioInterference.xml +11 -0
- slm/jinja2/slm/sitelog/xsd/0.4/sensor.xml +16 -0
- slm/jinja2/slm/sitelog/xsd/0.4/signalObstruction.xml +10 -0
- slm/jinja2/slm/sitelog/xsd/0.4/siteIdentification.xml +22 -0
- slm/jinja2/slm/sitelog/xsd/0.4/siteLocation.xml +21 -0
- slm/jinja2/slm/sitelog/xsd/0.4/surveyedLocalTie.xml +20 -0
- slm/jinja2/slm/sitelog/xsd/0.4/temperatureSensor.xml +13 -0
- slm/jinja2/slm/sitelog/xsd/0.4/waterVaporSensor.xml +11 -0
- slm/jinja2/slm/sitelog/xsd/0.5/document.xml +10 -0
- slm/jinja2/slm/sitelog/xsd/geodesyml_0.4.xml +99 -0
- slm/jinja2/slm/sitelog/xsd/geodesyml_0.5.xml +112 -0
- slm/management/__init__.py +0 -0
- slm/management/commands/__init__.py +53 -0
- slm/management/commands/build_index.py +96 -0
- slm/management/commands/generate_sinex.py +675 -0
- slm/management/commands/head_from_index.py +541 -0
- slm/management/commands/import_archive.py +908 -0
- slm/management/commands/import_equipment.py +351 -0
- slm/management/commands/set_site.py +56 -0
- slm/management/commands/sitelog.py +144 -0
- slm/management/commands/synchronize.py +60 -0
- slm/management/commands/update_data_availability.py +167 -0
- slm/management/commands/validate_db.py +186 -0
- slm/management/commands/validate_gml.py +73 -0
- slm/map/__init__.py +1 -0
- slm/map/admin.py +5 -0
- slm/map/api/__init__.py +0 -0
- slm/map/api/edit/__init__.py +0 -0
- slm/map/api/edit/serializers.py +28 -0
- slm/map/api/edit/views.py +46 -0
- slm/map/api/public/__init__.py +0 -0
- slm/map/api/public/serializers.py +29 -0
- slm/map/api/public/views.py +64 -0
- slm/map/apps.py +7 -0
- slm/map/defines.py +53 -0
- slm/map/migrations/0001_initial.py +115 -0
- slm/map/migrations/__init__.py +0 -0
- slm/map/models.py +63 -0
- slm/map/static/slm/css/map.css +86 -0
- slm/map/static/slm/js/map.js +159 -0
- slm/map/templates/slm/map.html +374 -0
- slm/map/templates/slm/station/base.html +11 -0
- slm/map/templates/slm/station/edit.html +10 -0
- slm/map/templates/slm/top_nav.html +17 -0
- slm/map/templatetags/__init__.py +0 -0
- slm/map/templatetags/slm_map.py +18 -0
- slm/map/urls.py +25 -0
- slm/map/views.py +36 -0
- slm/middleware.py +29 -0
- slm/migrations/0001_alter_siteantenna_marker_enu_alter_sitelocation_llh_and_more.py +47 -0
- slm/migrations/0001_initial.py +4826 -0
- slm/migrations/0002_alter_dataavailability_site.py +22 -0
- slm/migrations/0003_remove_logentry_slm_logentr_site_lo_7a2af7_idx_and_more.py +80 -0
- slm/migrations/0004_alter_logentry_timestamp_and_more.py +25 -0
- slm/migrations/0005_alter_logentry_options_alter_logentry_section_and_more.py +46 -0
- slm/migrations/0006_alter_logentry_options_alter_logentry_index_together.py +24 -0
- slm/migrations/0007_alter_dataavailability_rate.py +23 -0
- slm/migrations/0008_alter_archiveindex_options_and_more.py +64 -0
- slm/migrations/0009_alter_archiveindex_end.py +21 -0
- slm/migrations/0010_alter_dataavailability_rinex_version_and_more.py +844 -0
- slm/migrations/0011_alter_siteidentification_fracture_spacing.py +33 -0
- slm/migrations/0012_alter_logentry_type.py +36 -0
- slm/migrations/0013_unpublishedfilesalert.py +48 -0
- slm/migrations/0014_sitelogpublished.py +48 -0
- slm/migrations/0015_alter_siteantenna_options_and_more.py +181 -0
- slm/migrations/0016_alter_antenna_description_alter_radome_description_and_more.py +42 -0
- slm/migrations/0017_alter_logentry_unique_together_and_more.py +54 -0
- slm/migrations/0018_afix_deleted.py +34 -0
- slm/migrations/0018_alter_siteantenna_options_and_more.py +244 -0
- slm/migrations/0019_remove_siteantenna_marker_enu_siteantenna_marker_une_and_more.py +101 -0
- slm/migrations/0020_alter_manufacturer_options.py +16 -0
- slm/migrations/0021_alter_siteform_report_type.py +23 -0
- slm/migrations/0022_rename_antcal_antenna_radome_slm_antcal_antenna_20827a_idx_and_more.py +297 -0
- slm/migrations/0023_archivedsitelog_gml_version_and_more.py +55 -0
- slm/migrations/0024_alter_agency_name_alter_agency_shortname.py +24 -0
- slm/migrations/0025_alter_archivedsitelog_log_format_and_more.py +61 -0
- slm/migrations/0026_alter_archivedsitelog_log_format_and_more.py +61 -0
- slm/migrations/0027_importalert_file_contents_importalert_findings_and_more.py +41 -0
- slm/migrations/0028_antenna_replaced_manufacturer_url_radome_replaced_and_more.py +46 -0
- slm/migrations/0029_manufacturer_full_name.py +17 -0
- slm/migrations/0030_alter_antenna_state_alter_radome_state_and_more.py +43 -0
- slm/migrations/__init__.py +0 -0
- slm/migrations/load_satellitesystems.py +27 -0
- slm/models/__init__.py +118 -0
- slm/models/about.py +14 -0
- slm/models/alerts.py +1204 -0
- slm/models/data.py +58 -0
- slm/models/equipment.py +229 -0
- slm/models/help.py +14 -0
- slm/models/index.py +428 -0
- slm/models/sitelog.py +4279 -0
- slm/models/system.py +723 -0
- slm/models/user.py +304 -0
- slm/parsing/__init__.py +786 -0
- slm/parsing/legacy/__init__.py +4 -0
- slm/parsing/legacy/binding.py +817 -0
- slm/parsing/legacy/parser.py +377 -0
- slm/parsing/xsd/__init__.py +34 -0
- slm/parsing/xsd/binding.py +86 -0
- slm/parsing/xsd/geodesyml/0.4/commonTypes.xsd +133 -0
- slm/parsing/xsd/geodesyml/0.4/contact.xsd +29 -0
- slm/parsing/xsd/geodesyml/0.4/dataStreams.xsd +129 -0
- slm/parsing/xsd/geodesyml/0.4/document.xsd +64 -0
- slm/parsing/xsd/geodesyml/0.4/equipment.xsd +427 -0
- slm/parsing/xsd/geodesyml/0.4/fieldMeasurement.xsd +170 -0
- slm/parsing/xsd/geodesyml/0.4/geodesyML.xsd +71 -0
- slm/parsing/xsd/geodesyml/0.4/geodeticEquipment.xsd +343 -0
- slm/parsing/xsd/geodesyml/0.4/geodeticMonument.xsd +147 -0
- slm/parsing/xsd/geodesyml/0.4/lineage.xsd +614 -0
- slm/parsing/xsd/geodesyml/0.4/localInterferences.xsd +131 -0
- slm/parsing/xsd/geodesyml/0.4/measurement.xsd +473 -0
- slm/parsing/xsd/geodesyml/0.4/monumentInfo.xsd +251 -0
- slm/parsing/xsd/geodesyml/0.4/observationSystem.xsd +429 -0
- slm/parsing/xsd/geodesyml/0.4/project.xsd +38 -0
- slm/parsing/xsd/geodesyml/0.4/quality.xsd +176 -0
- slm/parsing/xsd/geodesyml/0.4/referenceFrame.xsd +194 -0
- slm/parsing/xsd/geodesyml/0.4/siteLog.xsd +71 -0
- slm/parsing/xsd/geodesyml/0.5/commonTypes.xsd +133 -0
- slm/parsing/xsd/geodesyml/0.5/contact.xsd +29 -0
- slm/parsing/xsd/geodesyml/0.5/dataStreams.xsd +129 -0
- slm/parsing/xsd/geodesyml/0.5/document.xsd +64 -0
- slm/parsing/xsd/geodesyml/0.5/equipment.xsd +427 -0
- slm/parsing/xsd/geodesyml/0.5/fieldMeasurement.xsd +170 -0
- slm/parsing/xsd/geodesyml/0.5/geodesyML.xsd +71 -0
- slm/parsing/xsd/geodesyml/0.5/geodeticEquipment.xsd +343 -0
- slm/parsing/xsd/geodesyml/0.5/geodeticMonument.xsd +147 -0
- slm/parsing/xsd/geodesyml/0.5/lineage.xsd +614 -0
- slm/parsing/xsd/geodesyml/0.5/localInterferences.xsd +131 -0
- slm/parsing/xsd/geodesyml/0.5/measurement.xsd +473 -0
- slm/parsing/xsd/geodesyml/0.5/monumentInfo.xsd +306 -0
- slm/parsing/xsd/geodesyml/0.5/observationSystem.xsd +429 -0
- slm/parsing/xsd/geodesyml/0.5/project.xsd +38 -0
- slm/parsing/xsd/geodesyml/0.5/quality.xsd +176 -0
- slm/parsing/xsd/geodesyml/0.5/referenceFrame.xsd +194 -0
- slm/parsing/xsd/geodesyml/0.5/siteLog.xsd +73 -0
- slm/parsing/xsd/parser.py +116 -0
- slm/parsing/xsd/resolver.py +28 -0
- slm/receivers/__init__.py +11 -0
- slm/receivers/alerts.py +87 -0
- slm/receivers/cleanup.py +41 -0
- slm/receivers/event_loggers.py +175 -0
- slm/receivers/index.py +67 -0
- slm/settings/__init__.py +55 -0
- slm/settings/auth.py +15 -0
- slm/settings/ckeditor.py +14 -0
- slm/settings/debug.py +47 -0
- slm/settings/internationalization.py +12 -0
- slm/settings/logging.py +113 -0
- slm/settings/platform/__init__.py +0 -0
- slm/settings/platform/darwin.py +10 -0
- slm/settings/rest.py +21 -0
- slm/settings/root.py +152 -0
- slm/settings/routines.py +43 -0
- slm/settings/secrets.py +37 -0
- slm/settings/security.py +5 -0
- slm/settings/slm.py +188 -0
- slm/settings/static_templates.py +53 -0
- slm/settings/templates.py +29 -0
- slm/settings/uploads.py +8 -0
- slm/settings/urls.py +126 -0
- slm/settings/validation.py +196 -0
- slm/signals.py +250 -0
- slm/singleton.py +49 -0
- slm/static/rest_framework/css/bootstrap-tweaks.css +204 -0
- slm/static/rest_framework/css/bootstrap.min.css +7 -0
- slm/static/rest_framework/css/bootstrap.min.css.map +1 -0
- slm/static/rest_framework/css/default.css +82 -0
- slm/static/rest_framework/css/prettify.css +30 -0
- slm/static/rest_framework/docs/css/base.css +344 -0
- slm/static/rest_framework/docs/css/highlight.css +125 -0
- slm/static/rest_framework/docs/css/jquery.json-view.min.css +11 -0
- slm/static/rest_framework/docs/img/favicon.ico +0 -0
- slm/static/rest_framework/docs/img/grid.png +0 -0
- slm/static/rest_framework/docs/js/api.js +321 -0
- slm/static/rest_framework/docs/js/highlight.pack.js +2 -0
- slm/static/rest_framework/docs/js/jquery.json-view.min.js +7 -0
- slm/static/rest_framework/img/grid.png +0 -0
- slm/static/rest_framework/js/ajax-form.js +127 -0
- slm/static/rest_framework/js/bootstrap.bundle.min.js +7 -0
- slm/static/rest_framework/js/bootstrap.bundle.min.js.map +1 -0
- slm/static/rest_framework/js/bootstrap.min.js.map +1 -0
- slm/static/rest_framework/js/coreapi-0.1.1.js +2043 -0
- slm/static/rest_framework/js/csrf.js +52 -0
- slm/static/rest_framework/js/default.js +47 -0
- slm/static/rest_framework/js/jquery-3.5.1.min.js +2 -0
- slm/static/rest_framework/js/prettify-min.js +28 -0
- slm/static/slm/css/admin.css +3 -0
- slm/static/slm/css/defines.css +82 -0
- slm/static/slm/css/forms.css +1 -0
- slm/static/slm/css/style.css +1004 -0
- slm/static/slm/img/email-branding.png +0 -0
- slm/static/slm/img/favicon.ico +0 -0
- slm/static/slm/img/login-bg.jpg +0 -0
- slm/static/slm/img/slm-logo.svg +4 -0
- slm/static/slm/js/autocomplete.js +341 -0
- slm/static/slm/js/enums.js +322 -0
- slm/static/slm/js/fileIcons.js +30 -0
- slm/static/slm/js/form.js +404 -0
- slm/static/slm/js/formWidget.js +23 -0
- slm/static/slm/js/persistable.js +33 -0
- slm/static/slm/js/slm.js +1028 -0
- slm/static/slm/js/time24.js +212 -0
- slm/static_templates/slm/css/defines.css +26 -0
- slm/static_templates/slm/js/enums.js +28 -0
- slm/static_templates/slm/js/fileIcons.js +16 -0
- slm/static_templates/slm/js/urls.js +5 -0
- slm/templates/account/base.html +20 -0
- slm/templates/account/email/base.html +43 -0
- slm/templates/account/email/base_message.txt +7 -0
- slm/templates/account/email/email_confirmation_message.html +16 -0
- slm/templates/account/email/email_confirmation_message.txt +7 -0
- slm/templates/account/email/email_confirmation_signup_message.html +1 -0
- slm/templates/account/email/email_confirmation_signup_message.txt +1 -0
- slm/templates/account/email/email_confirmation_signup_subject.txt +1 -0
- slm/templates/account/email/email_confirmation_subject.txt +4 -0
- slm/templates/account/email/password_reset_key_message.html +28 -0
- slm/templates/account/email/password_reset_key_message.txt +9 -0
- slm/templates/account/email/password_reset_key_subject.txt +4 -0
- slm/templates/account/email/unknown_account_message.html +25 -0
- slm/templates/account/email/unknown_account_message.txt +12 -0
- slm/templates/account/email/unknown_account_subject.txt +4 -0
- slm/templates/account/login.html +67 -0
- slm/templates/account/logout.html +38 -0
- slm/templates/account/password_change.html +48 -0
- slm/templates/account/password_reset.html +51 -0
- slm/templates/account/password_reset_done.html +20 -0
- slm/templates/account/password_reset_from_key.html +52 -0
- slm/templates/account/password_reset_from_key_done.html +17 -0
- slm/templates/admin/base.html +7 -0
- slm/templates/messages.html +8 -0
- slm/templates/rest_framework/README +16 -0
- slm/templates/rest_framework/admin/detail.html +10 -0
- slm/templates/rest_framework/admin/dict_value.html +11 -0
- slm/templates/rest_framework/admin/list.html +32 -0
- slm/templates/rest_framework/admin/list_value.html +11 -0
- slm/templates/rest_framework/admin/simple_list_value.html +2 -0
- slm/templates/rest_framework/admin.html +282 -0
- slm/templates/rest_framework/api.html +3 -0
- slm/templates/rest_framework/base.html +334 -0
- slm/templates/rest_framework/docs/auth/basic.html +42 -0
- slm/templates/rest_framework/docs/auth/session.html +40 -0
- slm/templates/rest_framework/docs/auth/token.html +41 -0
- slm/templates/rest_framework/docs/document.html +37 -0
- slm/templates/rest_framework/docs/error.html +71 -0
- slm/templates/rest_framework/docs/index.html +55 -0
- slm/templates/rest_framework/docs/interact.html +57 -0
- slm/templates/rest_framework/docs/langs/javascript-intro.html +5 -0
- slm/templates/rest_framework/docs/langs/javascript.html +15 -0
- slm/templates/rest_framework/docs/langs/python-intro.html +3 -0
- slm/templates/rest_framework/docs/langs/python.html +13 -0
- slm/templates/rest_framework/docs/langs/shell-intro.html +3 -0
- slm/templates/rest_framework/docs/langs/shell.html +6 -0
- slm/templates/rest_framework/docs/link.html +113 -0
- slm/templates/rest_framework/docs/sidebar.html +78 -0
- slm/templates/rest_framework/filters/base.html +16 -0
- slm/templates/rest_framework/filters/ordering.html +17 -0
- slm/templates/rest_framework/filters/search.html +13 -0
- slm/templates/rest_framework/horizontal/checkbox.html +23 -0
- slm/templates/rest_framework/horizontal/checkbox_multiple.html +32 -0
- slm/templates/rest_framework/horizontal/dict_field.html +11 -0
- slm/templates/rest_framework/horizontal/fieldset.html +16 -0
- slm/templates/rest_framework/horizontal/form.html +6 -0
- slm/templates/rest_framework/horizontal/input.html +21 -0
- slm/templates/rest_framework/horizontal/list_field.html +11 -0
- slm/templates/rest_framework/horizontal/list_fieldset.html +13 -0
- slm/templates/rest_framework/horizontal/radio.html +42 -0
- slm/templates/rest_framework/horizontal/select.html +36 -0
- slm/templates/rest_framework/horizontal/select_multiple.html +38 -0
- slm/templates/rest_framework/horizontal/textarea.html +21 -0
- slm/templates/rest_framework/inline/checkbox.html +8 -0
- slm/templates/rest_framework/inline/checkbox_multiple.html +14 -0
- slm/templates/rest_framework/inline/dict_field.html +9 -0
- slm/templates/rest_framework/inline/fieldset.html +6 -0
- slm/templates/rest_framework/inline/form.html +8 -0
- slm/templates/rest_framework/inline/input.html +9 -0
- slm/templates/rest_framework/inline/list_field.html +9 -0
- slm/templates/rest_framework/inline/list_fieldset.html +3 -0
- slm/templates/rest_framework/inline/radio.html +25 -0
- slm/templates/rest_framework/inline/select.html +24 -0
- slm/templates/rest_framework/inline/select_multiple.html +25 -0
- slm/templates/rest_framework/inline/textarea.html +9 -0
- slm/templates/rest_framework/login.html +3 -0
- slm/templates/rest_framework/login_base.html +65 -0
- slm/templates/rest_framework/pagination/numbers.html +47 -0
- slm/templates/rest_framework/pagination/previous_and_next.html +21 -0
- slm/templates/rest_framework/raw_data_form.html +11 -0
- slm/templates/rest_framework/schema.js +3 -0
- slm/templates/rest_framework/vertical/checkbox.html +16 -0
- slm/templates/rest_framework/vertical/checkbox_multiple.html +30 -0
- slm/templates/rest_framework/vertical/dict_field.html +7 -0
- slm/templates/rest_framework/vertical/fieldset.html +13 -0
- slm/templates/rest_framework/vertical/form.html +6 -0
- slm/templates/rest_framework/vertical/input.html +17 -0
- slm/templates/rest_framework/vertical/list_field.html +7 -0
- slm/templates/rest_framework/vertical/list_fieldset.html +7 -0
- slm/templates/rest_framework/vertical/radio.html +40 -0
- slm/templates/rest_framework/vertical/select.html +34 -0
- slm/templates/rest_framework/vertical/select_multiple.html +31 -0
- slm/templates/rest_framework/vertical/textarea.html +17 -0
- slm/templates/slm/about.html +21 -0
- slm/templates/slm/alerts/alert.html +15 -0
- slm/templates/slm/alerts/geodesymlinvalid.html +8 -0
- slm/templates/slm/alerts/importalert.html +10 -0
- slm/templates/slm/alerts.html +18 -0
- slm/templates/slm/auth_menu.html +41 -0
- slm/templates/slm/base.html +195 -0
- slm/templates/slm/emails/alert_issued.html +31 -0
- slm/templates/slm/emails/alert_issued.txt +9 -0
- slm/templates/slm/emails/base.html +6 -0
- slm/templates/slm/emails/changes_rejected.txt +7 -0
- slm/templates/slm/emails/review_requested.txt +7 -0
- slm/templates/slm/forms/widgets/auto_complete.html +21 -0
- slm/templates/slm/forms/widgets/auto_complete_multiple.html +18 -0
- slm/templates/slm/forms/widgets/checkbox_multiple.html +6 -0
- slm/templates/slm/forms/widgets/inline_multi.html +1 -0
- slm/templates/slm/forms/widgets/splitdatetime.html +14 -0
- slm/templates/slm/forms/widgets/time24.html +37 -0
- slm/templates/slm/help.html +54 -0
- slm/templates/slm/messages.html +13 -0
- slm/templates/slm/new_site.html +88 -0
- slm/templates/slm/profile.html +57 -0
- slm/templates/slm/register.html +40 -0
- slm/templates/slm/reports/file_log.html +43 -0
- slm/templates/slm/reports/head_log.html +23 -0
- slm/templates/slm/reports/head_report.html +55 -0
- slm/templates/slm/reports/index_log.html +23 -0
- slm/templates/slm/reports/index_report.html +71 -0
- slm/templates/slm/station/alert.html +8 -0
- slm/templates/slm/station/alerts.html +19 -0
- slm/templates/slm/station/base.html +104 -0
- slm/templates/slm/station/download.html +87 -0
- slm/templates/slm/station/edit.html +283 -0
- slm/templates/slm/station/form.html +110 -0
- slm/templates/slm/station/log.html +18 -0
- slm/templates/slm/station/review.html +461 -0
- slm/templates/slm/station/upload.html +295 -0
- slm/templates/slm/station/uploads/attachment.html +20 -0
- slm/templates/slm/station/uploads/geodesyml.html +1 -0
- slm/templates/slm/station/uploads/image.html +27 -0
- slm/templates/slm/station/uploads/json.html +0 -0
- slm/templates/slm/station/uploads/legacy.html +77 -0
- slm/templates/slm/top_nav.html +14 -0
- slm/templates/slm/user_activity.html +16 -0
- slm/templates/slm/widgets/alert_scroll.html +135 -0
- slm/templates/slm/widgets/filelist.html +258 -0
- slm/templates/slm/widgets/legend.html +12 -0
- slm/templates/slm/widgets/log_scroll.html +88 -0
- slm/templates/slm/widgets/stationlist.html +233 -0
- slm/templatetags/__init__.py +0 -0
- slm/templatetags/jinja2.py +9 -0
- slm/templatetags/slm.py +459 -0
- slm/urls.py +148 -0
- slm/utils.py +299 -0
- slm/validators.py +297 -0
- slm/views.py +654 -0
- slm/widgets.py +134 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
|
|
3
|
+
<!-- Modal -->
|
|
4
|
+
<div class="modal fade api-modal" id="{{ section_key }}_{{ link_key|slugify }}_modal" tabindex="-1" role="dialog" aria-labelledby="api explorer modal">
|
|
5
|
+
<div class="modal-dialog modal-lg" role="document">
|
|
6
|
+
<div class="modal-content">
|
|
7
|
+
<div class="modal-header">
|
|
8
|
+
<div class="toggle-view d-none">
|
|
9
|
+
<div class="btn-group" role="group">
|
|
10
|
+
<button type="button" data-display-toggle="data" class="btn btn-sm btn-info">Data</button>
|
|
11
|
+
<button type="button" data-display-toggle="raw" class="btn btn-sm">Raw</button>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<h3 class="modal-title">
|
|
16
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="mb-1 bi bi-arrow-left-right" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
17
|
+
<path fill-rule="evenodd" d="M10.146 7.646a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L12.793 11l-2.647-2.646a.5.5 0 0 1 0-.708z"/>
|
|
18
|
+
<path fill-rule="evenodd" d="M2 11a.5.5 0 0 1 .5-.5H13a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 11zm3.854-9.354a.5.5 0 0 1 0 .708L3.207 5l2.647 2.646a.5.5 0 1 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 0 1 .708 0z"/>
|
|
19
|
+
<path fill-rule="evenodd" d="M2.5 5a.5.5 0 0 1 .5-.5h10.5a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"/>
|
|
20
|
+
</svg>
|
|
21
|
+
{{ link.title|default:link_key }}</h3>
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<form data-key='["{{ section_key }}", "{{ link_key }}"]' class="api-interaction">
|
|
26
|
+
<div class="modal-body">
|
|
27
|
+
<div class="row">
|
|
28
|
+
<div class="col-lg-6 request">
|
|
29
|
+
{% form_for_link link %}
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<hr class="hidden-lg hidden-xl" />
|
|
33
|
+
|
|
34
|
+
<div class="col-lg-6 response" id="response">
|
|
35
|
+
<div class="request-awaiting">Awaiting request</div>
|
|
36
|
+
|
|
37
|
+
<div class="meta d-none">
|
|
38
|
+
<span class="label label-primary request-method"></span>
|
|
39
|
+
<code class="request-url"></code>
|
|
40
|
+
<label class="label label-lg response-status-code pull-right"></label>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<pre class="well response-data d-none"></pre>
|
|
44
|
+
<pre class="well response-raw d-none"><div class="response-raw-request"></div><div class="response-raw-response"></div></pre>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="modal-footer">
|
|
50
|
+
<button type="button" class="btn btn-default" data-bs-dismiss="modal">Close</button>
|
|
51
|
+
<button type="submit" class="btn btn-primary">Send Request</button>
|
|
52
|
+
</div>
|
|
53
|
+
</form>
|
|
54
|
+
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
{% load static %}
|
|
3
|
+
<pre class="highlight javascript d-none" data-language="javascript"><code>{% code html %}<!-- Load the JavaScript client library -->
|
|
4
|
+
<script src="{% static 'rest_framework/js/coreapi-0.1.1.js' %}"></script>
|
|
5
|
+
<script src="{% url 'api-docs:schema-js' %}"></script>{% endcode %}</code></pre>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
<pre class="highlight javascript d-none" data-language="javascript"><code>{% code javascript %}var coreapi = window.coreapi // Loaded by `coreapi.js`
|
|
3
|
+
var schema = window.schema // Loaded by `schema.js`
|
|
4
|
+
|
|
5
|
+
// Initialize a client
|
|
6
|
+
var client = new coreapi.Client()
|
|
7
|
+
|
|
8
|
+
// Interact with the API endpoint
|
|
9
|
+
var action = [{% if section_key %}"{{ section_key }}", {% endif %}"{{ link_key }}"]
|
|
10
|
+
{% if link.fields %}var params = {
|
|
11
|
+
{% for field in link.fields %} {{ field.name }}: ...{% if not loop.last %},{% endif %}
|
|
12
|
+
{% endfor %}}
|
|
13
|
+
{% endif %}client.action(schema, action{% if link.fields %}, params{% endif %}).then(function(result) {
|
|
14
|
+
// Return value is in 'result'
|
|
15
|
+
}){% endcode %}</code></pre>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
<pre class="highlight python d-none" data-language="python"><code>{% code python %}import coreapi
|
|
3
|
+
|
|
4
|
+
# Initialize a client & load the schema document
|
|
5
|
+
client = coreapi.Client()
|
|
6
|
+
schema = client.get("{{ document.url }}"{% if schema_format %}, format="{{ schema_format }}"{% endif %})
|
|
7
|
+
|
|
8
|
+
# Interact with the API endpoint
|
|
9
|
+
action = [{% if section_key %}"{{ section_key }}", {% endif %}"{{ link_key }}"]
|
|
10
|
+
{% if link.fields %}params = {
|
|
11
|
+
{% for field in link.fields %} "{{ field.name }}": ...{% if not loop.last %},{% endif %}
|
|
12
|
+
{% endfor %}}
|
|
13
|
+
{% endif %}result = client.action(schema, action{% if link.fields %}, params=params{% endif %}){% endcode %}</code></pre>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
<pre class="highlight shell d-none" data-language="shell"><code>{% code bash %}# Load the schema document
|
|
3
|
+
$ coreapi get {{ document.url }}{% if schema_format %} --format {{ schema_format }}{% endif %}
|
|
4
|
+
|
|
5
|
+
# Interact with the API endpoint
|
|
6
|
+
$ coreapi action {% if section_key %}{{ section_key }} {% endif %}{{ link_key|cut:"> " }}{% for field in link.fields %} -p {{ field.name }}=...{% endfor %}{% endcode %}</code></pre>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
<div class="row coredocs-link">
|
|
3
|
+
|
|
4
|
+
<div class="col-md-6 docs-content">
|
|
5
|
+
<button
|
|
6
|
+
class="btn btn-sm btn-success"
|
|
7
|
+
style="float: right; margin-top: 20px"
|
|
8
|
+
data-bs-toggle="modal"
|
|
9
|
+
data-bs-target="#{{ section_key }}_{{ link_key|slugify }}_modal">
|
|
10
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="mb-1 bi bi-arrow-left-right" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
11
|
+
<path fill-rule="evenodd" d="M10.146 7.646a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L12.793 11l-2.647-2.646a.5.5 0 0 1 0-.708z"/>
|
|
12
|
+
<path fill-rule="evenodd" d="M2 11a.5.5 0 0 1 .5-.5H13a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 11zm3.854-9.354a.5.5 0 0 1 0 .708L3.207 5l2.647 2.646a.5.5 0 1 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 0 1 .708 0z"/>
|
|
13
|
+
<path fill-rule="evenodd" d="M2.5 5a.5.5 0 0 1 .5-.5h10.5a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"/>
|
|
14
|
+
</svg>
|
|
15
|
+
Interact
|
|
16
|
+
</button>
|
|
17
|
+
|
|
18
|
+
<h3 id="{{ section_key }}-{{ link_key|slugify }}" class="coredocs-link-title">{{ link.title|default:link_key }} <a href="#{{ section_key }}-{{ link_key|slugify }}">
|
|
19
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-link-45deg" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
20
|
+
<path d="M4.715 6.542L3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1.001 1.001 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4.018 4.018 0 0 1-.128-1.287z"/>
|
|
21
|
+
<path d="M5.712 6.96l.167-.167a1.99 1.99 0 0 1 .896-.518 1.99 1.99 0 0 1 .518-.896l.167-.167A3.004 3.004 0 0 0 6 5.499c-.22.46-.316.963-.288 1.46z"/>
|
|
22
|
+
<path d="M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 0 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 0 0-4.243-4.243L6.586 4.672z"/>
|
|
23
|
+
<path d="M10 9.5a2.99 2.99 0 0 0 .288-1.46l-.167.167a1.99 1.99 0 0 1-.896.518 1.99 1.99 0 0 1-.518.896l-.167.167A3.004 3.004 0 0 0 10 9.501z"/>
|
|
24
|
+
</svg>
|
|
25
|
+
</a></h3>
|
|
26
|
+
|
|
27
|
+
<div class="meta">
|
|
28
|
+
<span class="badge bg-secondary">{{ link.action|upper }}</span>
|
|
29
|
+
<code>{{ link.url }}</code>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
{% render_markdown link.description %}
|
|
33
|
+
|
|
34
|
+
{% if link.fields|with_location:'path' %}
|
|
35
|
+
<h4>Path Parameters</h4>
|
|
36
|
+
<p>The following parameters should be included in the URL path.</p>
|
|
37
|
+
<table class="parameters table table-bordered table-striped">
|
|
38
|
+
<thead>
|
|
39
|
+
<tr><th>Parameter</th><th>Description</th></tr>
|
|
40
|
+
</thead>
|
|
41
|
+
<tbody>
|
|
42
|
+
{% for field in link.fields|with_location:'path' %}
|
|
43
|
+
<tr><td class="parameter-name"><code>{{ field.name }}</code>{% if field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if field.schema.description %}{{ field.schema.description|safe }}{% endif %}</td></tr>
|
|
44
|
+
{% endfor %}
|
|
45
|
+
</tbody>
|
|
46
|
+
</table>
|
|
47
|
+
{% endif %}
|
|
48
|
+
{% if link.fields|with_location:'query' %}
|
|
49
|
+
<h4>Query Parameters</h4>
|
|
50
|
+
<p>The following parameters should be included as part of a URL query string.</p>
|
|
51
|
+
<table class="parameters table table-bordered table-striped">
|
|
52
|
+
<thead>
|
|
53
|
+
<tr><th>Parameter</th><th>Description</th></tr>
|
|
54
|
+
</thead>
|
|
55
|
+
<tbody>
|
|
56
|
+
{% for field in link.fields|with_location:'query' %}
|
|
57
|
+
<tr><td class="parameter-name"><code>{{ field.name }}</code>{% if field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if field.schema.description %}{{ field.schema.description|safe }}{% endif %}</td></tr>
|
|
58
|
+
{% endfor %}
|
|
59
|
+
</tbody>
|
|
60
|
+
</table>
|
|
61
|
+
{% endif %}
|
|
62
|
+
{% if link.fields|with_location:'header' %}
|
|
63
|
+
<h4>Header Parameters</h4>
|
|
64
|
+
<p>The following parameters should be included as HTTP headers.</p>
|
|
65
|
+
<table class="parameters table table-bordered table-striped">
|
|
66
|
+
<thead>
|
|
67
|
+
<tr><th>Parameter</th><th>Description</th></tr>
|
|
68
|
+
</thead>
|
|
69
|
+
<tbody>
|
|
70
|
+
{% for field in link.fields|with_location:'header' %}
|
|
71
|
+
<tr><td class="parameter-name"><code>{{ field.name }}</code>{% if field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if field.schema.description %}{{ field.schema.description|safe }}{% endif %}</td></tr>
|
|
72
|
+
{% endfor %}
|
|
73
|
+
</tbody>
|
|
74
|
+
</table>
|
|
75
|
+
{% endif %}
|
|
76
|
+
{% if link.fields|with_location:'body' %}
|
|
77
|
+
<h4>Request Body</h4>
|
|
78
|
+
<p>The request body should be <code>"{{ link.encoding }}"</code> encoded, and should contain a single item.</p>
|
|
79
|
+
<table class="parameters table table-bordered table-striped">
|
|
80
|
+
<thead>
|
|
81
|
+
<tr><th>Parameter</th><th>Description</th></tr>
|
|
82
|
+
</thead>
|
|
83
|
+
<tbody>
|
|
84
|
+
{% for field in link.fields|with_location:'body' %}
|
|
85
|
+
<tr><td class="parameter-name"><code>{{ field.name }}</code>{% if field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if field.schema.description %}{{ field.schema.description|safe }}{% endif %}</td></tr>
|
|
86
|
+
{% endfor %}
|
|
87
|
+
</tbody>
|
|
88
|
+
</table>
|
|
89
|
+
{% elif link.fields|with_location:'form' %}
|
|
90
|
+
<h4>Request Body</h4>
|
|
91
|
+
<p>The request body should be a <code>"{{ link.encoding }}"</code> encoded object, containing the following items.</p>
|
|
92
|
+
<table class="parameters table table-bordered table-striped">
|
|
93
|
+
<thead>
|
|
94
|
+
<tr><th>Parameter</th><th>Description</th></tr>
|
|
95
|
+
</thead>
|
|
96
|
+
<tbody>
|
|
97
|
+
{% for field in link.fields|with_location:'form' %}
|
|
98
|
+
<tr><td class="parameter-name"><code>{{ field.name }}</code>{% if field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if field.schema.description %}{{ field.schema.description|safe }}{% endif %}</td></tr>
|
|
99
|
+
{% endfor %}
|
|
100
|
+
</tbody>
|
|
101
|
+
</table>
|
|
102
|
+
{% endif %}
|
|
103
|
+
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<div class="col-md-6 code-samples">
|
|
107
|
+
{% for html in lang_htmls %}
|
|
108
|
+
{% include html %}
|
|
109
|
+
{% endfor %}
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
{% include "rest_framework/docs/interact.html" with link=link %}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
<div class="sidebar">
|
|
3
|
+
<h3 class="brand"><a href="#">{{ document.title }}</a></h3>
|
|
4
|
+
|
|
5
|
+
<svg data-bs-toggle="collapse" data-bs-target="#menu-content" width="2.5em" height="2.5em" viewBox="0 0 16 16" class="toggle-btn bi bi-three-dots-vertical" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
6
|
+
<path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/>
|
|
7
|
+
</svg>
|
|
8
|
+
<div class="menu-list">
|
|
9
|
+
<ul id="menu-content" class="menu-content collapse out">
|
|
10
|
+
{% if document|data %}
|
|
11
|
+
{% for section_key, section in document|data|items %}
|
|
12
|
+
<li data-bs-toggle="collapse" data-bs-target="#{{ section_key }}-dropdown" class="collapsed">
|
|
13
|
+
<a class="d-flex align-items-center">
|
|
14
|
+
<svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="me-2 ms-2 bi bi-bullseye" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
15
|
+
<path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
|
|
16
|
+
<path fill-rule="evenodd" d="M8 13A5 5 0 1 0 8 3a5 5 0 0 0 0 10zm0 1A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"/>
|
|
17
|
+
<path fill-rule="evenodd" d="M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"/>
|
|
18
|
+
<path d="M9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/>
|
|
19
|
+
</svg>
|
|
20
|
+
{% if section_key %}{{ section_key }}{% else %}API Endpoints{% endif %}
|
|
21
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="ms-auto me-3 bi bi-chevron-down" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
22
|
+
<path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/>
|
|
23
|
+
</svg>
|
|
24
|
+
|
|
25
|
+
</a>
|
|
26
|
+
</li>
|
|
27
|
+
<ul class="sub-menu {% if section_key %}collapse{% endif %}" id="{{ section_key }}-dropdown">
|
|
28
|
+
{% for link_key, link in section|schema_links|items %}
|
|
29
|
+
<li>
|
|
30
|
+
<a href="#{{ section_key }}-{{ link_key|slugify }}">
|
|
31
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-chevron-right" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
32
|
+
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
|
|
33
|
+
</svg>
|
|
34
|
+
{{ link.title|default:link_key }}
|
|
35
|
+
</a>
|
|
36
|
+
</li>
|
|
37
|
+
{% endfor %}
|
|
38
|
+
</ul>
|
|
39
|
+
|
|
40
|
+
{% endfor %}
|
|
41
|
+
{% endif %}
|
|
42
|
+
</ul>
|
|
43
|
+
|
|
44
|
+
<ul class="menu-list menu-list-bottom">
|
|
45
|
+
<li data-bs-toggle="collapse" data-bs-target="#auth-control" class="collapsed">
|
|
46
|
+
<a>
|
|
47
|
+
<svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="mb-1 me-2 ms-3 bi bi-person-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
48
|
+
<path fill-rule="evenodd" d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"/>
|
|
49
|
+
</svg>
|
|
50
|
+
Authentication
|
|
51
|
+
</a>
|
|
52
|
+
<span id="selected-authentication">{% if user.is_authenticated %}session{% else %}none{% endif %}</span>
|
|
53
|
+
</li>
|
|
54
|
+
<ul class="sub-menu collapse out" id="auth-control">
|
|
55
|
+
<li {% if not user.is_authenticated %}class="active"{% endif %}><a data-auth="none" href="#">none</a></li>
|
|
56
|
+
<li><a data-auth="token" data-bs-toggle="modal" data-bs-target="#auth_token_modal" href="#">token</a></li>
|
|
57
|
+
<li><a data-auth="basic" data-bs-toggle="modal" data-bs-target="#auth_basic_modal" href="#">basic</a></li>
|
|
58
|
+
<li {% if user.is_authenticated %}class="active"{% endif %}><a data-auth="session" data-bs-toggle="modal" data-bs-target="#auth_session_modal" href="#">session</a></li>
|
|
59
|
+
</ul>
|
|
60
|
+
|
|
61
|
+
<li data-bs-toggle="collapse" data-bs-target="#language-control" class="collapsed">
|
|
62
|
+
<a>
|
|
63
|
+
<svg width="1.5em" height="1.5em" viewBox="0 0 16 16" class="mb-1 ms-3 me-2 bi bi-code-slash" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
64
|
+
<path fill-rule="evenodd" d="M4.854 4.146a.5.5 0 0 1 0 .708L1.707 8l3.147 3.146a.5.5 0 0 1-.708.708l-3.5-3.5a.5.5 0 0 1 0-.708l3.5-3.5a.5.5 0 0 1 .708 0zm6.292 0a.5.5 0 0 0 0 .708L14.293 8l-3.147 3.146a.5.5 0 0 0 .708.708l3.5-3.5a.5.5 0 0 0 0-.708l-3.5-3.5a.5.5 0 0 0-.708 0zm-.999-3.124a.5.5 0 0 1 .33.625l-4 13a.5.5 0 0 1-.955-.294l4-13a.5.5 0 0 1 .625-.33z"/>
|
|
65
|
+
</svg>
|
|
66
|
+
Source Code
|
|
67
|
+
</a>
|
|
68
|
+
<span id="selected-language">{{ langs | first }}</span>
|
|
69
|
+
</li>
|
|
70
|
+
<ul class="sub-menu collapse out" id="language-control">
|
|
71
|
+
{% for lang in langs %}
|
|
72
|
+
<li{% if loop.first %} class="active"{% endif %}><a href="#" data-language="{{ lang }}">{{ lang }}</a></li>
|
|
73
|
+
{% endfor %}
|
|
74
|
+
</ul>
|
|
75
|
+
</ul>
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<div class="modal fade" id="filtersModal" tabindex="-1" role="dialog" aria-labelledby="filters" aria-hidden="true">
|
|
2
|
+
<div class="modal-dialog modal-xl">
|
|
3
|
+
<div class="modal-content">
|
|
4
|
+
<div class="modal-header">
|
|
5
|
+
<h4 class="modal-title">Filters</h4>
|
|
6
|
+
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="modal-body ui-front">
|
|
9
|
+
{% for element in elements %}
|
|
10
|
+
{% if not forloop.first %}<hr/>{% endif %}
|
|
11
|
+
{{ element }}
|
|
12
|
+
{% endfor %}
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
<h2>{% trans "Ordering" %}</h2>
|
|
4
|
+
<div class="list-group">
|
|
5
|
+
{% for key, label in options %}
|
|
6
|
+
{% if key == current %}
|
|
7
|
+
<a href="{% add_query_param request param key %}" class="list-group-item active">
|
|
8
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-check2" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
9
|
+
<path fill-rule="evenodd" d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/>
|
|
10
|
+
</svg>
|
|
11
|
+
{{ label }}
|
|
12
|
+
</a>
|
|
13
|
+
{% else %}
|
|
14
|
+
<a href="{% add_query_param request param key %}" class="list-group-item">{{ label }}</a>
|
|
15
|
+
{% endif %}
|
|
16
|
+
{% endfor %}
|
|
17
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{% load i18n %}
|
|
2
|
+
<h2>{% trans "Search" %}</h2>
|
|
3
|
+
<form>
|
|
4
|
+
<div class="input-group mb-3">
|
|
5
|
+
<input type="text" class="form-control" style="width: 350px" name="{{ param }}" value="{{ term }}">
|
|
6
|
+
<button class="btn btn-primary" type="submit">
|
|
7
|
+
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-search" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
8
|
+
<path fill-rule="evenodd" d="M10.442 10.442a1 1 0 0 1 1.415 0l3.85 3.85a1 1 0 0 1-1.414 1.415l-3.85-3.85a1 1 0 0 1 0-1.415z"/>
|
|
9
|
+
<path fill-rule="evenodd" d="M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z"/>
|
|
10
|
+
</svg>
|
|
11
|
+
{% trans "Search" %}</button>
|
|
12
|
+
</div>
|
|
13
|
+
</form>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<div class="mb-3 row">
|
|
2
|
+
{% if field.label %}
|
|
3
|
+
<label class="col-sm-2 col-form-label pt-0 {% if style.hide_label %}sr-only{% endif %}">
|
|
4
|
+
{{ field.label }}
|
|
5
|
+
</label>
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
<div class="col-sm-10">
|
|
9
|
+
<div class="col-sm-10">
|
|
10
|
+
<input class="form-check-input {% if field.errors %}is-invalid{% endif %}" type="checkbox" name="{{ field.name }}" value="true" {% if field.value %}checked{% endif %}>
|
|
11
|
+
|
|
12
|
+
{% if field.errors %}
|
|
13
|
+
{% for error in field.errors %}
|
|
14
|
+
<span class="invalid-feedback">{{ error }}</span>
|
|
15
|
+
{% endfor %}
|
|
16
|
+
{% endif %}
|
|
17
|
+
|
|
18
|
+
{% if field.help_text %}
|
|
19
|
+
<span class="form-text">{{ field.help_text|safe }}</span>
|
|
20
|
+
{% endif %}
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
|
|
3
|
+
<div class="mb-3 row">
|
|
4
|
+
{% if field.label %}
|
|
5
|
+
<label class="col-sm-2 col-form-label pt-0 {% if style.hide_label %}sr-only{% endif %}">
|
|
6
|
+
{{ field.label }}
|
|
7
|
+
</label>
|
|
8
|
+
{% endif %}
|
|
9
|
+
|
|
10
|
+
<div class="col-sm-10">
|
|
11
|
+
{% for key, text in field.choices|items %}
|
|
12
|
+
<div class="form-check {% if style.inline %}form-check-inline {% endif %}">
|
|
13
|
+
<input class="form-check-input {% if field.errors %}is-invalid{% endif %}" type="checkbox" name="{{ field.name }}" value="{{ key }}" {% if key|as_string in field.value|as_list_of_strings %}checked{% endif %}>
|
|
14
|
+
<label class="form-check-label">{{ text }}</label>
|
|
15
|
+
</div>
|
|
16
|
+
{% endfor %}
|
|
17
|
+
|
|
18
|
+
{% if field.errors %}
|
|
19
|
+
{# A fake input to trigger the error messages as it needs to be after a valid input #}
|
|
20
|
+
{# If it's with the last input and it's inline then the error stacks under the last input label #}
|
|
21
|
+
{# It has no name so no data will be sent #}
|
|
22
|
+
<input type="radio" class="is-invalid" style="display: none"/>
|
|
23
|
+
{% for error in field.errors %}
|
|
24
|
+
<span class="invalid-feedback">{{ error }}</span>
|
|
25
|
+
{% endfor %}
|
|
26
|
+
{% endif %}
|
|
27
|
+
|
|
28
|
+
{% if field.help_text %}
|
|
29
|
+
<p class="form-text">{{ field.help_text|safe }}</p>
|
|
30
|
+
{% endif %}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div class="mb-3 row">
|
|
2
|
+
{% if field.label %}
|
|
3
|
+
<label class="col-sm-2 col-form-label {% if style.hide_label %}sr-only{% endif %}">
|
|
4
|
+
{{ field.label }}
|
|
5
|
+
</label>
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
<div class="col-sm-10">
|
|
9
|
+
<p class="col-form-label">Dictionaries are not currently supported in HTML input.</p>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
<fieldset>
|
|
3
|
+
{% if field.label %}
|
|
4
|
+
<div class="mb-3 row" style="border-bottom: 1px solid #e5e5e5">
|
|
5
|
+
<legend class="col-form-label col-sm-2 {% if style.hide_label %}sr-only{% endif %}" style="border-bottom: 0">
|
|
6
|
+
{{ field.label }}
|
|
7
|
+
</legend>
|
|
8
|
+
</div>
|
|
9
|
+
{% endif %}
|
|
10
|
+
|
|
11
|
+
{% for nested_field in field %}
|
|
12
|
+
{% if not nested_field.read_only %}
|
|
13
|
+
{% render_field nested_field style=style %}
|
|
14
|
+
{% endif %}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</fieldset>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<div class="mb-3 row">
|
|
2
|
+
{% if field.label %}
|
|
3
|
+
<label class="col-sm-2 col-form-label {% if style.hide_label %}sr-only{% endif %}">
|
|
4
|
+
{{ field.label }}
|
|
5
|
+
</label>
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
<div class="col-sm-10">
|
|
9
|
+
<input name="{{ field.name }}" {% if style.input_type != "file" %}class="form-control{% if field.errors %} is-invalid{% endif %}"{% endif %} type="{{ style.input_type }}" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if field.value is not None %}value="{{ field.value }}"{% endif %} {% if style.autofocus and style.input_type != "hidden" %}autofocus{% endif %}>
|
|
10
|
+
|
|
11
|
+
{% if field.errors %}
|
|
12
|
+
{% for error in field.errors %}
|
|
13
|
+
<span class="invalid-feedback">{{ error }}</span>
|
|
14
|
+
{% endfor %}
|
|
15
|
+
{% endif %}
|
|
16
|
+
|
|
17
|
+
{% if field.help_text %}
|
|
18
|
+
<span class="form-text">{{ field.help_text|safe }}</span>
|
|
19
|
+
{% endif %}
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div class="mb-3 row">
|
|
2
|
+
{% if field.label %}
|
|
3
|
+
<label class="col-sm-2 col-form-label {% if style.hide_label %}sr-only{% endif %}">
|
|
4
|
+
{{ field.label }}
|
|
5
|
+
</label>
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
<div class="col-sm-10">
|
|
9
|
+
<p class="col-form-label">Lists are not currently supported in HTML input.</p>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
|
|
3
|
+
<fieldset>
|
|
4
|
+
{% if field.label %}
|
|
5
|
+
<div class="mb-3 row" style="border-bottom: 1px solid #e5e5e5">
|
|
6
|
+
<legend class="col-form-label col-sm-2 {% if style.hide_label %}sr-only{% endif %}" style="border-bottom: 0">
|
|
7
|
+
{{ field.label }}
|
|
8
|
+
</legend>
|
|
9
|
+
</div>
|
|
10
|
+
{% endif %}
|
|
11
|
+
|
|
12
|
+
<p>Lists are not currently supported in HTML input.</p>
|
|
13
|
+
</fieldset>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{% load i18n %}
|
|
2
|
+
{% load rest_framework %}
|
|
3
|
+
|
|
4
|
+
{% trans "None" as none_choice %}
|
|
5
|
+
|
|
6
|
+
<div class="mb-3 row">
|
|
7
|
+
{% if field.label %}
|
|
8
|
+
<label class="col-sm-2 col-form-label pt-0 {% if style.hide_label %}sr-only{% endif %}">
|
|
9
|
+
{{ field.label }}
|
|
10
|
+
</label>
|
|
11
|
+
{% endif %}
|
|
12
|
+
|
|
13
|
+
<div class="col-sm-10">
|
|
14
|
+
{% if field.allow_null or field.allow_blank %}
|
|
15
|
+
<div class="form-check {% if style.inline %}form-check-inline {% endif %}">
|
|
16
|
+
<input class="form-check-input" type="radio" name="{{ field.name }}" value="" {% if not field.value %}checked{% endif %} />
|
|
17
|
+
<label class="form-check-label">{{ none_choice }}</label>
|
|
18
|
+
</div>
|
|
19
|
+
{% endif %}
|
|
20
|
+
|
|
21
|
+
{% for key, text in field.choices|items %}
|
|
22
|
+
<div class="form-check {% if style.inline %}form-check-inline {% endif %}">
|
|
23
|
+
<input class="form-check-input {% if field.errors %}is-invalid{% endif %}" type="radio" name="{{ field.name }}" value="{{ key }}" {% if key|as_string == field.value|as_string %}checked{% endif %} />
|
|
24
|
+
<label class="form-check-label">{{ text }}</label>
|
|
25
|
+
</div>
|
|
26
|
+
{% endfor %}
|
|
27
|
+
|
|
28
|
+
{% if field.errors %}
|
|
29
|
+
{# A fake input to trigger the error messages as it needs to be after a valid input #}
|
|
30
|
+
{# If it's with the last input and it's inline then the error stacks under the last input label #}
|
|
31
|
+
{# It has no name so no data will be sent #}
|
|
32
|
+
<input type="radio" class="is-invalid" style="display: none"/>
|
|
33
|
+
{% for error in field.errors %}
|
|
34
|
+
<span class="invalid-feedback">{{ error }}</span>
|
|
35
|
+
{% endfor %}
|
|
36
|
+
{% endif %}
|
|
37
|
+
|
|
38
|
+
{% if field.help_text %}
|
|
39
|
+
<p class="form-text">{{ field.help_text|safe }}</p>
|
|
40
|
+
{% endif %}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{% load rest_framework %}
|
|
2
|
+
|
|
3
|
+
<div class="mb-3 row">
|
|
4
|
+
{% if field.label %}
|
|
5
|
+
<label class="col-sm-2 col-form-label {% if style.hide_label %}sr-only{% endif %}">
|
|
6
|
+
{{ field.label }}
|
|
7
|
+
</label>
|
|
8
|
+
{% endif %}
|
|
9
|
+
|
|
10
|
+
<div class="col-sm-10">
|
|
11
|
+
<select class="form-select{% if field.errors %} is-invalid{% endif %}" name="{{ field.name }}">
|
|
12
|
+
{% if field.allow_null or field.allow_blank %}
|
|
13
|
+
<option value="" {% if not field.value %}selected{% endif %}>--------</option>
|
|
14
|
+
{% endif %}
|
|
15
|
+
{% for select in field.iter_options %}
|
|
16
|
+
{% if select.start_option_group %}
|
|
17
|
+
<optgroup label="{{ select.label }}">
|
|
18
|
+
{% elif select.end_option_group %}
|
|
19
|
+
</optgroup>
|
|
20
|
+
{% else %}
|
|
21
|
+
<option value="{{ select.value }}" {% if select.value|as_string == field.value|as_string %}selected{% endif %} {% if select.disabled %}disabled{% endif %}>{{ select.display_text }}</option>
|
|
22
|
+
{% endif %}
|
|
23
|
+
{% endfor %}
|
|
24
|
+
</select>
|
|
25
|
+
|
|
26
|
+
{% if field.errors %}
|
|
27
|
+
{% for error in field.errors %}
|
|
28
|
+
<span class="invalid-feedback">{{ error }}</span>
|
|
29
|
+
{% endfor %}
|
|
30
|
+
{% endif %}
|
|
31
|
+
|
|
32
|
+
{% if field.help_text %}
|
|
33
|
+
<span class="form-text">{{ field.help_text|safe }}</span>
|
|
34
|
+
{% endif %}
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{% load i18n %}
|
|
2
|
+
{% load rest_framework %}
|
|
3
|
+
|
|
4
|
+
{% trans "No items to select." as no_items %}
|
|
5
|
+
|
|
6
|
+
<div class="mb-3 row">
|
|
7
|
+
{% if field.label %}
|
|
8
|
+
<label class="col-sm-2 col-form-label {% if style.hide_label %}sr-only{% endif %}">
|
|
9
|
+
{{ field.label }}
|
|
10
|
+
</label>
|
|
11
|
+
{% endif %}
|
|
12
|
+
|
|
13
|
+
<div class="col-sm-10">
|
|
14
|
+
<select multiple {{ field.choices|yesno:",disabled" }} class="form-select {% if field.errors %}is-invalid{% endif %}" name="{{ field.name }}">
|
|
15
|
+
{% for select in field.iter_options %}
|
|
16
|
+
{% if select.start_option_group %}
|
|
17
|
+
<optgroup label="{{ select.label }}">
|
|
18
|
+
{% elif select.end_option_group %}
|
|
19
|
+
</optgroup>
|
|
20
|
+
{% else %}
|
|
21
|
+
<option value="{{ select.value }}" {% if select.value|as_string in field.value|as_list_of_strings %}selected{% endif %} {% if select.disabled %}disabled{% endif %}>{{ select.display_text }}</option>
|
|
22
|
+
{% endif %}
|
|
23
|
+
{% empty %}
|
|
24
|
+
<option>{{ no_items }}</option>
|
|
25
|
+
{% endfor %}
|
|
26
|
+
</select>
|
|
27
|
+
|
|
28
|
+
{% if field.errors %}
|
|
29
|
+
{% for error in field.errors %}
|
|
30
|
+
<span class="invalid-feedback">{{ error }}</span>
|
|
31
|
+
{% endfor %}
|
|
32
|
+
{% endif %}
|
|
33
|
+
|
|
34
|
+
{% if field.help_text %}
|
|
35
|
+
<span class="form-text">{{ field.help_text|safe }}</span>
|
|
36
|
+
{% endif %}
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|