##// END OF EJS Templates
Update configs
Update configs

File last commit:

r8:9c1b6919a8a9
r9:2e29893b10f5
Show More
forms.py
106 lines | 3.5 KiB | text/x-python | PythonLexer
from django import forms
import django.utils.html
import django.utils.safestring
import django.template.defaulttags
# third party imports
import numpy
# Madrigal imports
import madrigal.metadata
import madrigal.ui.web
# madrigal imports
import madrigal._derive
import madrigal.metadata
import madrigal.ui.web
import madrigal.cedar
import madrigal.isprint
import madweb.forms
import datetime, time
def getExperimentList(instrumentId=None):
madDB = madrigal.metadata.MadrigalDB()
madWeb = madrigal.ui.web.MadrigalWeb(madDB)
if instrumentId:
kinstList = [int(instrumentId)]
else:
kinstList = [0]
startDate = datetime.datetime(1950,1,1)
startDT = datetime.datetime(startDate.year, startDate.month, startDate.day, 0, 0, 0)
now = datetime.datetime.now()
endDate = datetime.datetime(now.year, 12, 31, 23, 59, 59)
endDT = datetime.datetime(endDate.year, endDate.month, endDate.day, 23, 59, 59)
experiments = madWeb.getExperimentList(kinstList,startDT, endDT, True)
expListin = [('0', 'Select experiment: '),]
for exp in experiments:
expListin.append((exp[0], exp[2]))
# Using set
seen = set()
# using list comprehension
expList = [(a, b) for a, b in expListin
if not (b in seen or seen.add(b))]
return(expList)
def getInstrumentList():
madDB = madrigal.metadata.MadrigalDB()
madInstData = madrigal.metadata.MadrigalInstrumentData(madDB)
instruments = madInstData.getInstruments(0, True)
instList = [('0', "Select Instrument"), ]
for kinst, instDesc, siteID in instruments:
instList.append((str(kinst), instDesc))
return(instList)
class UpdataForm(forms.Form):
CHOICES=[('new','New Instrument/Experiment'),
('existing','Existing')]
choose = forms.ChoiceField(
choices=CHOICES,
widget=forms.RadioSelect(attrs={'class': 'custom-radio', 'onClick': 'updateRadio(this);'}),
initial='existing')
inst = forms.IntegerField(min_value=1, label='Instrument ID:', disabled=True, required=False)
exp = forms.CharField(max_length=40, label='Experiment Title:', disabled=True, required=False)
instruments = forms.ChoiceField(
widget = django.forms.Select(attrs={"onChange":'populateExp(this);'}),
choices=getInstrumentList(),
required=False,
label='Instruments:')
experiments = forms.ChoiceField(
choices=[],
required=False,
label='Experiments:')
permission = forms.ChoiceField(
choices=[('0', 'Public'),('1', 'Private')],
initial=0,
widget=forms.RadioSelect(attrs={'class': 'custom-radio'}))
description = forms.CharField(
widget=forms.Textarea(attrs={'cols': 40,'rows': 3, 'style': 'resize:none'}),
required=False,
label='Description')
optchar = forms.CharField(max_length=1, label='Optional Char:', required=False)
file = forms.FileField(
label='Select Files',
widget=forms.ClearableFileInput(attrs={'multiple': True}))
class ExpForm(forms.Form):
"""SingleExpInstForm is a Form class for the instrument select field in the Single Experiment interface.
Use this because its faster to create than the full SingleExpDefaultForm
"""
def __init__(self, *args, **kwargs):
super(ExpForm, self).__init__(*args, **kwargs)
self.fields['experiments'] = forms.ChoiceField(
choices=getExperimentList(args[0]['instrument']),
# initial=kwargs['exp'],
required=False, label='Experiments')