|
17 | 17 | SWIFT_TARGET_CLASSIFICATION_CHOICES, |
18 | 18 | SWIFT_URGENCY_CHOICES, |
19 | 19 | SWIFT_XRT_MODE_CHOICES) |
| 20 | + get_monitoring_unit_choices,) |
20 | 21 |
|
21 | 22 | logger = logging.getLogger(__name__) |
22 | 23 | logger.setLevel(logging.DEBUG) |
@@ -155,8 +156,11 @@ class SwiftObservationForm(BaseObservationForm): |
155 | 156 | help_text=('If number of visits more than one change next exposure' |
156 | 157 | 'time per visit and monitoring frequency, otherwise leave blank.'), |
157 | 158 | initial=1) |
158 | | - monitoring_freq = forms.CharField(required=False, label='Frequency of visits') |
159 | | - # TODO: only expose exp_time_per_visit if monitoring freqency is > 1 |
| 159 | + monitoring_freq = forms.IntegerField(required=False, label='Monitoring Frequency', initial=1) |
| 160 | + monitoring_units = forms.ChoiceField( |
| 161 | + required=False, |
| 162 | + choices=get_monitoring_unit_choices(), |
| 163 | + ) |
160 | 164 |
|
161 | 165 | # |
162 | 166 | # Swift Guest Investigator program parameters |
@@ -296,7 +300,11 @@ def layout(self): |
296 | 300 | Div( |
297 | 301 | 'num_of_visits', |
298 | 302 | 'exp_time_per_visit', |
299 | | - 'monitoring_freq', |
| 303 | + Div( |
| 304 | + Div(Field('monitoring_freq'), css_class='col-md-6',), |
| 305 | + Div(Field('monitoring_units'), css_class='col-md-6',), |
| 306 | + css_class='row', |
| 307 | + ), |
300 | 308 | ) |
301 | 309 | ), |
302 | 310 | AccordionGroup('Tiling', |
@@ -557,13 +565,14 @@ def _configure_too(self, observation_payload): |
557 | 565 | # |
558 | 566 | # Monitoring requests |
559 | 567 | # |
560 | | - self.swift_api.too.num_of_visits == observation_payload['num_of_visits'] # use assignment expression? |
| 568 | + self.swift_api.too.num_of_visits = observation_payload['num_of_visits'] # use assignment expression? |
561 | 569 | if self.swift_api.too.num_of_visits > 1: |
562 | 570 | self.swift_api.too.exp_time_per_visit = observation_payload['exp_time_per_visit'] |
563 | | - self.swift_api.too.monitoring_freq = observation_payload['monitoring_freq'] |
564 | | - # TODO: Units for monitoring_freq (days, hours, minutes, seconds, orbits, others, etc.) |
565 | | - # TODO: make ChoiceField for valid units (above) and (here) construct the formatted text |
566 | | - # for the monitoring_freq field (e.g. "1 orbit", "2 days", "3 hours", etc.) |
| 571 | + # construct monitoring_freq from monitoring_freq and monitoring_units e.g '1 hour' |
| 572 | + self.swift_api.too.monitoring_freq = f"{observation_payload['monitoring_freq']} {observation_payload['monitoring_units']}" |
| 573 | + else: |
| 574 | + self.swift_api.too.exp_time_per_visit = None |
| 575 | + self.swift_api.too.monitoring_freq = None |
567 | 576 |
|
568 | 577 | # |
569 | 578 | # Swift Guest Investigator program parameters |
|
0 commit comments