package.json: Add satellite.js dependency
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
Move to satellite.js in map, drop satellite footprint
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
Remove gpredict.js dependency
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
Replace gpredict.js with satellite.js
Builds on the work of kerel-fs in !596 and #440, implements satellite.js for core TLE and SGP4 handling, deprecating and removing gpredict.js
fixes#440
does NOT fix#204
Signed-off-by: Corey Shields <cshields@gmail.com>
Have to make this card a full width, even at col-xl-6 size it can shrink to stretch past the edge of the card. Adjusted a little more to make better visual use of the space as well.
Fixes#426
Signed-off-by: Corey Shields <cshields@gmail.com>
If the satellite has a transmitter that is flagged as 'bad_transmitter' (frequency coordination violation today), then show such in the Status card.
Fixes#250
Signed-off-by: Corey Shields <cshields@gmail.com>
Some accessibility improvements:
* fixed some buttons to be more compatible with keyboard focus
* added labels where missing for tab links where a screenreader might get confused by the fontawesome icon
* added a "Skip to main content" link
* labeled the search box
* added labels for some of our visual indicators for satellite and transmitter statuses
* ensured that "Focusable elements should have interactive semantics"
Fixes#414Fixes#417Fixes#418Fixes#419Fixes#420
Signed-off-by: Corey Shields <cshields@gmail.com>
handle deep-linking of anchors into tabbed panes on the satellite and stats pages.
Fixes#399
Also clean up map visibility, only showing if a satellite has not re-entered *and* has a TLE associated with it (note, we are not testing for validity of the TLE).
Fixes#412
Signed-off-by: Corey Shields <cshields@gmail.com>
Adds a chart card showing the last month of decoded data as currently stored in influxdb.
Unfortunately there's no native way to count the number of 'entries' for a measurement across a given time, so we have to do a count(*) across all points. This returns a blob of <timestamp>, <count(pointa)>, <count(pointb)>, <...> and in almost (but not all) cases those counts will be identical but we have to account for it not, so I iterate over each timestamp (client side) and take the max count to assign to that point in time. Since we are doing a 30d query from influx with 1d aggregation this should not be too intensive.
Also cleaned up the coloring of the profile link buttons.
Signed-off-by: Corey Shields <cshields@gmail.com>
Update the card look and feel from the Data panel to match everything else in the Info/Profile panel.
Signed-off-by: Corey Shields <cshields@gmail.com>
The intent of the "5 recent submitters" on the satellite page is to show the 5 most recent stations and their last submitted time, whereas this was showing the last 5 submissions regardless of the ground station.
Signed-off-by: Corey Shields <cshields@gmail.com>
Fixes regression where 'submit transmitter' link and modal were visible and partly accessible when not authenticated. Also tightens the satellite edit modal similarly.
Signed-off-by: Corey Shields <cshields@gmail.com>
Removes the field.html include - and the frequent inclusion of that in the transmitter cards.
Fix a bug in satellite.js where input not recognized as an integer
Add gitlab links to the version info
Removes the manually-entered kaitai struct field from view (will need removed from db in a later change) - replacing with a procedurally generated list of fields from the class imported through satnogsdecoders.
Fixes#385
Signed-off-by: Corey Shields <cshields@gmail.com>
Bring transmitter uuid and copy-to-clipboard back to new UI.
Also fixes tooltips in new UI
Also fixes a typo in new 404 screen.
Fixes#382
Signed-off-by: Corey Shields <cshields@gmail.com>
Fixes#384 - by cleaning up the data export links
Fixes#379 - simple fontawesome change
Fixes#308 - adds 'most recent 5' observation submitters (regardless of number of submissions or staggering of submissions)
Changes the queryset for satellites to pull the properly 'approved'/valid transmitters as approved_transmitters which can be used to count transmitters with |length and reduce queries at the same time. As such:
Fixes#365Fixes#381
Thanks to @deckbsd and @adamkalis for their assistance on these!
Signed-off-by: Corey Shields <cshields@gmail.com>
Initial commit of new UI. There is still some work to be done before this goes into dev, but here is the work so far:
* Updated dependencies to latest 2.x django
* Updated to Bootstrap 4
* New home screen to display most recent satellite entries, most recent data, and contributors
* Adopted django-bootstrap-modal-forms for handling satellite and transmitter creation and update, with more of an emphasis on django's model/view/form model - and a dynamic flow where the modals and details are only loaded when the proper icon is clicked, reducing the overall page size
* Adopted AdminLTE 3.x framework atop Bootstrap 4
* Created reusable cards for satellite and transmitters
* Cards and Modals are organized into subdirectories for template includes and base templates, respectively
* New stats display widgets using BS4 and AdminLTE 3
* Satellite search is redesigned and now accessible from any page of the site
* Introduced datatables for an "All Satellites" view and a modification of the new "All Transmitters" view
* Focus on all UI scaling down to mobile devices
* New model created for Operator (/ Owner): name, names, description, website
* Added django-countries for support of CountryField
* Satellite model expanded to include: Operator, (satellite) website, countries, launched datetime, deployed datetime
* Transmitter suggestions can now be approved in the UI by superusers
* Satellite entries can now be edited in the UI by users with the change satellite permission
* Satellite page is now broken into 'tabbed' panels (Profile, Map, Transmitters, etc) - with the tab menu options appearing in the sidebar or at the top depending on screen size
* Other cleanup and changes that I'm missing for sure.
Signed-off-by: Corey Shields <cshields@gmail.com>
Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
replace the for loop by one big query
Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
Undo the modification made for test
Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
remove migration tests
Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
use urlfield instead of texfield on sat model
Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
remove the initialization of the url field
Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
Signed-off-by: Flawinne Julien flawinne.julien at protonmail dot com
add uplink_mode field for transciever and transponder
Signed-off-by: Flawinne Julien flawinne.julien@protonmail.com
adapt unit test for transmitter model
Update migration for taking account of the invert value
update uplink_mode migration condition
Not request TLE with NORAD ID above 99000
Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>
rename mode transmitter field to downlink_mode
adapt unit test for transmitter model
update uplink_mode migration condition
add uplink_mode field for transciever and transponder transmitter type
Signed-off-by: Flawinne Julien flawinne.julien at protonmail dot com
keep mode id
add forgotten field mode id
add missing ,
fix yapf error
Updates:
* gulp to 4.0.2
* gulp-eslint to 6.0.0
* stylelint to 4.3.1
* bootstrap to 3.4.1
* chart.js to 2.8.0
* jquery to 3.4.1
* mapbox-gl to 1.3.1
* moment to 2.24.0
Removals:
* bootstrap-daterangepicker
* backbonejs(code parts that weren't removed)
* d3
* underscore
Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>
Fixing these as part of W0511
There were some transmitter properties labeled "has_" (which implies a boolean) while returning a count. Renamed them and their instances to "_count" along with cleaning up some variables
Signed-off-by: Corey Shields <cshields@gmail.com>
Transmitter model has been refactored by changing the current schema
from Transmitter and Suggestion models to TransmitterEntry model and
two proxy models TransmitterSuggestion and Transmitter:
* TransmitterEntry model will hold all the entries and changes on
transmitter entries in db.
* TransmitterSuggestion model will be the proxy model of the unreviewed
transmitter entries.
* Transmitter model will be the proxy model of the latest approved and
reviewed transmitter entries.
There are also change on Transmitter model fields:
* alive field is now change to status field
* there are new fields: citation, user, reviewed and created
Signed-off-by: Corey Shields <cshields@gmail.com>
In django cache we are storing a full queryset of the satellites with their data count and last payload time. By trying to filter on this (sat_cache = sats_cache.filter(norad_cat_id=norad)) we cause django to re-evaluate the queries for that specific satellite. For CAS-4a this results in 2 queries that exceed 5 mins each.
This does not impact the /stats/ page as it iterates through the whole list of satellites in cache. This change mimics that behavior to find the satellite cache we care about in the template. Its a huge hack but its the only way we can show a count and bring the page view back for !237 quickly... This needs refactoring, big time..
I also pulled an unused has_telemetry_data which caused a db count
This leaves behind a query to pull the last payload to show who submitted the last payload, as without this query there is no connection between the cached satellite info and the actual observer (because the /stats/ page was not meant to make that connection). If this query continues to be prohibitive we may just need to remove the "last frame submitted by.." blob.