Removed most of the bare Exception catches and put proper errors to catch in their place.
Reworked a bit of the gridsquare calculation, any exceptions raised should now be handled within the function.
I am purposefully leaving the 2 W0703's we have for data demodulation alone for now, as that will be quite a rabbit hole. Otherwise,
fixes#316
Signed-off-by: Corey Shields <cshields@gmail.com>
Update to Django Rest Framework 3.12.2 with improved schema generation.
However, it is still not quite complete for what we need (and what we currently postprocess for). Instead of postprocessing, this commit introduces our own extended generator to add the missing fields.
Once this is vetted good, we can remove contrib/postprocess-openapi-schema.py
Also added better comments to api/views.py which will end up in schema docs
Signed-off-by: Corey Shields <cshields@gmail.com>
LatestTle model was a proxy model on Tle one, using it for API adds a
significant delay to respond on the API requests. For this reason
LatestTle model is removed and LatestTleSet model takes its place.
LatestTleSet is updated asynchronously and keeping references to
latest TLE sets of Tle model. This allows to retrieve the TLE sets
faster.
Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>
Adds 2 fields to transmitter model, coordination (fixed set of choices, defaulting to blank) and coordination_url. API, UI, and tests are included.
Also introduces a bad_transmitter property to transmitter that will return true if any 'Uncoordinated' or '..Rejected' status is selected.
Fixes#311
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>
The last dependency update changed the required import order apparently
so the 'isort' command failed.
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
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
Fix some spacing issues and import syntax introduced by my linting changes.
The inline pylint disable for C0412 clashes with isort, there is no combination there that works for both.
Signed-off-by: Corey Shields <cshields@gmail.com>
Ignoring cases of too many ancestors in API views.py as these are upstream, not much we can do about it.
Signed-off-by: Corey Shields <cshields@gmail.com>
broad-except, I added explicit exceptions where I felt safe doing so - but we do have a lot of broad exceptions accepted.
Signed-off-by: Corey Shields <cshields@gmail.com>
Linting W0613 led to the discovery that we filter on status entries that do not exist. Changing "functional" to "active" will fix https://db.satnogs.org/api/transmitters/?alive=true
fixes satnogs-db#298
Signed-off-by: Corey Shields <cshields@gmail.com>
cleaning up C0111 exposed that we have some helpers initially added when django cache was implemented, but have since been abandoned.
Removing them as they are unused and unneeded
Signed-off-by: Corey Shields <cshields@gmail.com>
We have a field in demoddata called "source" which stores the application source of the data (network, sids, manual). This causes a lot of confusion with the SiDS API format which has a "source" parameter (that we convert to "station")
As I'm working through documenting the API (and getting us ready for feature expansion), I'd like this field renamed to avoid future confusion.