Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions heroic_api/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@


class TelescopeFilter(django_filters.FilterSet):
site = django_filters.CharFilter(field_name='site__id')
observatory = django_filters.CharFilter(field_name='site__observatory__id')
site = django_filters.ModelMultipleChoiceFilter(queryset=Site.objects.all(), field_name='site__id', to_field_name='id')
observatory = django_filters.ModelMultipleChoiceFilter(queryset=Observatory.objects.all(), field_name='site__observatory__id', to_field_name='id')

class Meta:
model = Telescope
exclude = ['telescope_url']


class InstrumentFilter(django_filters.FilterSet):
site = django_filters.CharFilter(field_name='telescope__site__id')
observatory = django_filters.CharFilter(field_name='telescope__site__observatory__id')
telescope = django_filters.CharFilter(field_name='telescope__id')
site = django_filters.ModelMultipleChoiceFilter(queryset=Site.objects.all(), field_name='telescope__site__id', to_field_name='id')
observatory = django_filters.ModelMultipleChoiceFilter(queryset=Observatory.objects.all(), field_name='telescope__site__observatory__id', to_field_name='id')
telescope = django_filters.ModelMultipleChoiceFilter(queryset=Telescope.objects.all(), field_name='telescope__id', to_field_name='id')

class Meta:
model = Instrument
Expand Down Expand Up @@ -126,10 +126,10 @@ class Meta:


class TelescopePointingFilter(django_filters.FilterSet):
site = django_filters.CharFilter(field_name='telescope__site__id')
observatory = django_filters.CharFilter(field_name='telescope__site__observatory__id')
telescope = django_filters.CharFilter(field_name='telescope__id')
instrument = django_filters.CharFilter(field_name='instrument__id')
site = django_filters.ModelMultipleChoiceFilter(queryset=Site.objects.all(), field_name='telescope__site__id', to_field_name='id')
observatory = django_filters.ModelMultipleChoiceFilter(queryset=Observatory.objects.all(), field_name='telescope__site__observatory__id', to_field_name='id')
telescope = django_filters.ModelMultipleChoiceFilter(queryset=Telescope.objects.all(), field_name='telescope__id', to_field_name='id')
instrument = django_filters.ModelMultipleChoiceFilter(queryset=Instrument.objects.all(), field_name='instrument__id', to_field_name='id')
planned = django_filters.BooleanFilter(field_name='planned')
target = django_filters.CharFilter(field_name='target', lookup_expr='icontainer', label='Target name contains')
target_exact = django_filters.CharFilter(field_name='target', lookup_expr='exact', label='Target name exact')
Expand All @@ -154,6 +154,13 @@ class TelescopePointingFilter(django_filters.FilterSet):
label='Date Before',
widget=forms.TextInput(attrs={'class': 'input', 'type': 'date'})
)
ordering = django_filters.OrderingFilter(
fields=(
('date', 'date'),
('telescope', 'telescope'),
('instrument', 'instrument')
)
)

def filter_cone_search(self, queryset, name, value):
''' Cone search is expected in the form "ra,dec,radius" all in decimal degress.
Expand Down
4 changes: 3 additions & 1 deletion heroic_api/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@ def poll_rubin_schedule():
telescope = Telescope.objects.get(id=RUBIN_TELESCOPE_ID)
except Telescope.DoesNotExist:
logger.error(f"Cannot poll Rubin schedule: Rubin telescope {RUBIN_TELESCOPE_ID} is not defined")
return
try:
instrument = Instrument.objects.get(id=RUBIN_INSTRUMENT_ID)
except Instrument.DoesNotExist:
logger.error(f"Cannot poll Rubin schedule: Rubin instrument {RUBIN_INSTRUMENT_ID} is not defined")
return

# Get the schedule from 15 minutes in the past until 25 hours later
start = datetime.now() - timedelta(minutes=15)
logger.info(f'Getting the Rubin schedule starting at {start.isoformat()}')
logger.info(f'Getting the Rubin schedule starting at {start.strftime('%Y-%m-%d %H:%M:%S')}')
params = {'time': '25', 'start': start.strftime('%Y-%m-%d %H:%M:%S')}
response = requests.get(settings.RUBIN_SCHEDULE_URL, params=params)
response.raise_for_status()
Expand Down
2 changes: 1 addition & 1 deletion heroic_base/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@
),
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination",
"PAGE_SIZE": 100,
"PAGE_SIZE": 1000,
}

SPECTACULAR_SETTINGS = {
Expand Down
Loading